函数逻辑报告 |
Source Code:mm\mmap.c |
Create Date:2022-07-27 16:17:59 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:Munmap 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 <jeremy@goop.org>
函数原型:int __do_munmap(struct mm_struct *mm, unsigned long start, size_t len, struct list_head *uf, bool downgrade)
返回类型:int
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| struct mm_struct * | mm | |
| unsigned long | start | |
| size_t | len | |
| struct list_head * | uf | |
| bool | downgrade |
| 2731 | arch_unmap(mm, start, end) |
| 2735 | 如果非vma则返回:0 |
| 2741 | 如果Our start address within vm_mm. 大于等于end则返回:0 |
| 2751 | 如果start大于Our start address within vm_mm. 则 |
| 2759 | 如果end小于The first byte after our end addresswithin vm_mm. 且 number of VMAs 大于等于sysctl_max_map_count则返回:负ENOMEM |
| 2770 | 如果last且end大于Our start address within vm_mm. 则 |
| 2777 | 如果此条件成立可能性小(为编译器优化)(uf)则 |
| 2795 | 如果 Pages that have PG_mlocked set 则 |
| 2797 | 当tmp且Our start address within vm_mm. 小于end循环 |
| 2798 | 如果Flags, see mm.h. 按位与VM_LOCKED则 |
| 2799 | Pages that have PG_mlocked set 减等于vma_pages(tmp) |
| 2800 | munlock_vma_pages_all(tmp) |
| 2818 | 返回:如果downgrade则1否则0 |
| 名称 | 描述 |
|---|---|
| SYSCALL_DEFINE1 | |
| do_munmap | |
| __vm_munmap | |
| SYSCALL_DEFINE5 | Expand (or shrink) an existing mapping, potentially moving it at the* same time (controlled by the MREMAP_MAYMOVE flag and available VM space)* MREMAP_FIXED option added 5-Dec-1999 by Benjamin LaHaise* This option implies MREMAP_MAYMOVE. |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |