函数逻辑报告 |
Source Code:mm\mmap.c |
Create Date:2022-07-27 16:17:51 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:__split_vma() bypasses sysctl_max_map_count checking. We use this where it* has already been checked or doesn't make sense to fail.
函数原型:int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma, unsigned long addr, int new_below)
返回类型:int
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| struct mm_struct * | mm | |
| struct vm_area_struct * | vma | |
| unsigned long | addr | |
| int | new_below |
| 2646 | new等于vm_area_dup(vma) |
| 2652 | 否则 |
| 2657 | err等于vma_dup_policy(vma, new) |
| 2658 | 如果err则转到:out_free_vma |
| 2661 | err等于anon_vma_clone(new, vma) |
| 2662 | 如果err则转到:out_free_mpol |
| 2674 | 否则err等于vma_adjust(vma, Our start address within vm_mm. , addr, Offset (within vm_file) in PAGE_SIZEunits , new) |
| 2678 | 如果非err则返回:0 |
| 2686 | unlink_anon_vmas(new) |
| 2687 | out_free_mpol : |
| 2688 | mpol_put(vma_policy(new)) |
| 2689 | out_free_vma : |
| 2690 | vm_area_free(new) |
| 2691 | 返回:err |
| 名称 | 描述 |
|---|---|
| split_vma | Split a vma into two pieces at address 'addr', a new vma is allocated* either for the first part or the tail. |
| __do_munmap | 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 |
| madvise_behavior | We can potentially split a vm area into separate* areas, each area with its own behavior. |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |