| Function report | 
| Source Code: mm\nommu.c | Create Date:2022-07-28 14:36:48 | 
| Last Modify:2020-03-17 21:26:27 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name:add a VMA into a process's mm_struct in the appropriate place in the list* and tree and add to the address space's page tree also if not an anonymous* page* - should be called with mm->mmap_sem held writelocked
Proto:static void add_vma_to_mm(struct mm_struct *mm, struct vm_area_struct *vma)
Type:void
Parameter:
| Type | Parameter | Name | 
|---|---|---|
| struct mm_struct * | mm | |
| struct vm_area_struct * | vma | 
| 601 | number of VMAs ++ | 
| 605 | If File we map to (can be NULL). Then | 
| 608 | i_mmap_lock_write(mapping) | 
| 610 | vma_interval_tree_insert(vma, & i_mmap) | 
| 620 | pvma = rb_entry(parent, structvm_area_struct, vm_rb) | 
| 624 | If Our start address within vm_mm. < Our start address within vm_mm. Then p = rb_left | 
| 626 | Else if Our start address within vm_mm. > Our start address within vm_mm. Then | 
| 629 | Else if The first byte after our end addresswithin vm_mm. < The first byte after our end addresswithin vm_mm. Then p = rb_left | 
| 639 | Else BUG() | 
| 643 | rb_link_node( & vm_rb, parent, p) | 
| 644 | rb_insert_color( & vm_rb, & mm_rb) | 
| 647 | prev = NULL | 
| 651 | __vma_link_list(mm, vma, prev) | 
| Name | Describe | 
|---|---|
| do_mmap | handle mapping creation for uClinux | 
| split_vma | split a vma into two pieces at address 'addr', a new vma is allocated either* for the first part or the tail. | 
| shrink_vma | shrink a VMA by removing the specified chunk from either the beginning or* the end | 
| Source code conversion tool public plug-in interface | X | 
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |