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 |