函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:unmap_single_vma

函数原型:static void unmap_single_vma(struct mmu_gather *tlb, struct vm_area_struct *vma, unsigned long start_addr, unsigned long end_addr, struct zap_details *details)

返回类型:void

参数:

类型参数名称
struct mmu_gather *tlb
struct vm_area_struct *vma
unsigned longstart_addr
unsigned longend_addr
struct zap_details *details
1266  start等于两数取大(Our start address within vm_mm. , start_addr)
1269  如果start大于等于The first byte after our end addresswithin vm_mm. 则返回
1271  end等于两数取小(The first byte after our end addresswithin vm_mm. , end_addr)
1272  如果end小于等于Our start address within vm_mm. 则返回
1275  如果File we map to (can be NULL). Called in context of a munmap of a vma.
1278  如果此条件成立可能性小(为编译器优化)(Flags, see mm.h. & Page-ranges managed without "struct page", just pure PFN )则untrack_pfn(vma, 0, 0)
1281  如果start不等于end
1299  否则unmap_page_range(tlb, vma, start, end, details)
调用者
名称描述
unmap_vmasmap_vmas - unmap a range of memory covered by a list of vma's*@tlb: address of the caller's struct mmu_gather*@vma: the starting vma*@start_addr: virtual address at which to start unmapping*@end_addr: virtual address at which to end unmapping
zap_page_rangezap_page_range - remove user pages in a given range*@vma: vm_area_struct holding the applicable pages*@start: starting address of pages to zap*@size: number of bytes to zap* Caller must protect the VMA list
zap_page_range_singlezap_page_range_single - remove user pages in a given range*@vma: vm_area_struct holding the applicable pages*@address: starting address of pages to zap*@size: number of bytes to zap*@details: details of shared cache invalidation