| Function report | 
| Source Code: mm\userfaultfd.c | Create Date:2022-07-28 16:33:37 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name:mcopy_atomic_pte
Proto:static int mcopy_atomic_pte(struct mm_struct *dst_mm, pmd_t *dst_pmd, struct vm_area_struct *dst_vma, unsigned long dst_addr, unsigned long src_addr, struct page **pagep)
Type:int
Parameter:
| Type | Parameter | Name | 
|---|---|---|
| struct mm_struct * | dst_mm | |
| pmd_t * | dst_pmd | |
| struct vm_area_struct * | dst_vma | |
| unsigned long | dst_addr | |
| unsigned long | src_addr | |
| struct page ** | pagep | 
| 67 | If Not pagep Then | 
| 73 | page_kaddr = kmap_atomic(page) | 
| 74 | ret = copy_from_user(page_kaddr, (constvoid__user * )src_addr, PAGE_SIZE) | 
| 86 | Else | 
| 103 | If Flags, see mm.h. & VM_WRITE Then _dst_pte = pte_mkwrite(pte_mkdirty(_dst_pte)) | 
| 107 | If File we map to (can be NULL). Then | 
| 110 | offset = linear_page_index(dst_vma, dst_addr) | 
| 113 | If Value for the false possibility is greater at compile time(offset >= max_off) Then Go to out_release_uncharge_unlock | 
| 117 | If Not pte_none( * dst_pte) Then Go to out_release_uncharge_unlock | 
| 120 | inc_mm_counter(dst_mm, MM_ANONPAGES) | 
| 125 | set_pte_at(dst_mm, dst_addr, dst_pte, _dst_pte) | 
| 130 | pte_unmap_unlock(dst_pte, ptl) | 
| 131 | ret = 0 | 
| 132 | out : | 
| 133 | Return ret | 
| 135 | pte_unmap_unlock(dst_pte, ptl) | 
| 137 | out_release : | 
| 139 | Go to out | 
| Name | Describe | 
|---|---|
| mfill_atomic_pte | 
| Source code conversion tool public plug-in interface | X | 
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |