函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:vma is the first one with address < vma->vm_start. Have to extend vma.

函数原型:int expand_downwards(struct vm_area_struct *vma, unsigned long address)

返回类型:int

参数:

类型参数名称
struct vm_area_struct *vma
unsigned longaddress
2411  mm等于The address space we belong to.
2413  error等于0
2415  address与等于PAGE_MASK
2416  如果address小于mmap_min_addr则返回:负EPERM
2420  prev等于linked list of VM areas per task, sorted by address
2422  如果prev且非Flags, see mm.h. 按位与general info on the segment 的值且Flags, see mm.h. 按位与VM_WRITE按位或currently active flags 按位或VM_EXEC的值则
2424  如果addressThe first byte after our end addresswithin vm_mm. 小于stack_guard_gap则返回:负ENOMEM
2429  如果此条件成立可能性小(为编译器优化)(anon_vma_prepare(vma))则返回:负ENOMEM
2437  anon_vma_lock_write(Serialized by page_table_lock )
2440  如果address小于Our start address within vm_mm.
2443  size等于The first byte after our end addresswithin vm_mm. address
2444  grow等于Our start address within vm_mm. address右移PAGE_SHIFT determines the page size
2446  error等于负ENOMEM
2449  如果非error
2476  anon_vma_unlock_write(Serialized by page_table_lock )
2477  khugepaged_enter_vma_merge(vma, Flags, see mm.h. )
2478  validate_mm(mm)
2479  返回:error
调用者
名称描述
expand_stack