| 函数逻辑报告 | 
| Source Code: mm\mremap.c | Create Date:2022-07-27 16:21:51 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| 首页 | 函数Tree | 
| 注解内核,赢得工具 | 下载SCCT | English | 
函数名称:move_ptes
函数原型:static void move_ptes(struct vm_area_struct *vma, pmd_t *old_pmd, unsigned long old_addr, unsigned long old_end, struct vm_area_struct *new_vma, pmd_t *new_pmd, unsigned long new_addr, bool need_rmap_locks)
返回类型:void
参数:
| 类型 | 参数 | 名称 | 
|---|---|---|
| struct vm_area_struct * | vma | |
| pmd_t * | old_pmd | |
| unsigned long | old_addr | |
| unsigned long | old_end | |
| struct vm_area_struct * | new_vma | |
| pmd_t * | new_pmd | |
| unsigned long | new_addr | |
| bool | need_rmap_locks | 
| 123 | bool force_flush = false | 
| 144 | 如果need_rmap_locks则take_rmap_locks(vma) | 
| 152 | new_pte等于pte_offset_map(new_pmd, new_addr) | 
| 153 | new_ptl等于pte_lockptr(mm, new_pmd) | 
| 164 | pte等于ptep_get_and_clear(mm, old_addr, old_pte) | 
| 176 | 如果pte_present(pte)则force_flush = true | 
| 179 | pte等于move_soft_dirty_pte(pte) | 
| 180 | set_pte_at(mm, new_addr, new_pte, pte) | 
| 183 | arch_leave_lazy_mmu_mode() | 
| 184 | 如果force_flush则flush_tlb_range(vma, old_end - len, old_end) | 
| 189 | pte_unmap_unlock(old_pte - 1, old_ptl) | 
| 190 | 如果need_rmap_locks则drop_rmap_locks(vma) | 
| 名称 | 描述 | 
|---|---|
| move_page_tables | 
| 源代码转换工具 开放的插件接口 | X | 
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |