函数逻辑报告 | 
Source Code:mm\mmap.c | 
Create Date:2022-07-27 16:15:27 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| 首页 | 函数Tree | 
| 注解内核,赢得工具 | 下载SCCT | English | 
函数名称:find_vma_links
函数原型:static int find_vma_links(struct mm_struct *mm, unsigned long addr, unsigned long end, struct vm_area_struct **pprev, struct rb_node ***rb_link, struct rb_node **rb_parent)
返回类型:int
参数:
| 类型 | 参数 | 名称 | 
|---|---|---|
| struct mm_struct * | mm | |
| unsigned long | addr | |
| unsigned long | end | |
| struct vm_area_struct ** | pprev | |
| struct rb_node *** | rb_link | |
| struct rb_node ** | rb_parent | 
| 533 | rb_prev = __rb_parent = NULL | 
| 538 | __rb_parent等于__rb_link | 
| 539 | vma_tmp等于rb_entry(__rb_parent, structvm_area_struct, vm_rb) | 
| 543 | 如果Our start address within vm_mm. 小于end则返回:负ENOMEM | 
| 546 | 否则 | 
| 547 | rb_prev等于__rb_parent | 
| 552 | * pprev = NULL | 
| 556 | rb_parent等于__rb_parent | 
| 557 | 返回:0 | 
| 名称 | 描述 | 
|---|---|
| __insert_vm_struct | Helper for vma_adjust() in the split_vma insert case: insert a vma into the* mm's list and rbtree. It has already been inserted into the interval tree. | 
| mmap_region | |
| do_brk_flags | his is really a simplified "do_mmap". it only handles* anonymous maps. eventually we may be able to do some* brk-specific accounting here. | 
| insert_vm_struct | Insert vm structure into process list sorted by address* and into the inode's i_mmap tree. If vm_file is non-NULL* then i_mmap_rwsem is taken here. | 
| copy_vma | Copy the vma structure to a new location in the same mm,* prior to moving page table entries, to effect an mremap move. | 
| 源代码转换工具 开放的插件接口  | X | 
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码  |