函数逻辑报告 |
Source Code:mm\mremap.c |
Create Date:2022-07-27 16:22:14 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:vma_to_resize
函数原型:static struct vm_area_struct *vma_to_resize(unsigned long addr, unsigned long old_len, unsigned long new_len, unsigned long *p)
返回类型:struct vm_area_struct
参数:
类型 | 参数 | 名称 |
---|---|---|
unsigned long | addr | |
unsigned long | old_len | |
unsigned long | new_len | |
unsigned long * | p |
440 | 如果非vma或Our start address within vm_mm. 大于addr则返回:错误号 |
451 | 如果非old_len且非Flags, see mm.h. 按位与VM_SHARED按位或VM_MAYSHARE的值的值则 |
452 | pr_warn_once("%s (%d): attempted to duplicate a private mapping with mremap. This is not supported.\n", comm, pid) |
453 | 返回:错误号 |
456 | 如果is_vm_hugetlb_page(vma)则返回:错误号 |
469 | 如果pgoff加new_len右移PAGE_SHIFT determines the page size 位的值小于pgoff则返回:错误号 |
472 | 如果Flags, see mm.h. 按位与Cannot expand with mremap() 按位或Page-ranges managed without "struct page", just pure PFN 的值则返回:错误号 |
475 | 如果Flags, see mm.h. 按位与VM_LOCKED则 |
478 | lock_limit等于rlimit(RLIMIT_MEMLOCK) |
480 | 如果locked大于lock_limit且非操作权限检查则返回:错误号 |
484 | 如果非Return true if the calling process may expand its vm space by the passed* number of pages则返回:错误号 |
488 | 如果Flags, see mm.h. 按位与Is a VM accounted object 则 |
490 | 如果security_vm_enough_memory_mm(mm, charged)则返回:错误号 |
495 | 返回:vma |
名称 | 描述 |
---|---|
mremap_to | |
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 插件可实现:逻辑报告 代码生成和批量转换代码 |