函数逻辑报告 |
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 插件可实现:逻辑报告 代码生成和批量转换代码 |