函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:mm\mmap.c Create Date:2022-07-27 16:17:46
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:Create a list of vma's touched by the unmap, removing them from the mm's* vma list as we go..

函数原型:static void detach_vmas_to_be_unmapped(struct mm_struct *mm, struct vm_area_struct *vma, struct vm_area_struct *prev, unsigned long end)

返回类型:void

参数:

类型参数名称
struct mm_struct *mm
struct vm_area_struct *vma
struct vm_area_struct *prev
unsigned longend
2608  struct vm_area_struct * tail_vma = NULL
2610  insertion_point等于如果prevlinked list of VM areas per task, sorted by address 否则 list of VMAs
2611  linked list of VM areas per task, sorted by address = NULL
2612  循环
2613  vma_rb_erase(vma, & mm_rb)
2614  number of VMAs 自减
2615  tail_vma等于vma
2616  vma等于linked list of VM areas per task, sorted by address
2617 vmaOur start address within vm_mm. 小于end循环
2618  insertion_point等于vma
2619  如果vma
2620  linked list of VM areas per task, sorted by address 等于prev
2621  Update augmented rbtree rb_subtree_gap values after vma->vm_start or* in the rbtree.
2622  否则 highest vma end address 等于如果prevvm_end_gap(prev)否则0
2624  linked list of VM areas per task, sorted by address = NULL
2627  vmacache_invalidate(mm)
调用者
名称描述
__do_munmapMunmap is split into 2 main parts -- this part which finds* what needs doing, and the areas themselves, which do the* work. This now handles partial unmappings.* Jeremy Fitzhardinge