函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:mm\vmalloc.c Create Date:2022-07-27 16:28:08
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:link_va

函数原型:static __always_inline void link_va(struct vmap_area *va, struct rb_root *root, struct rb_node *parent, struct rb_node **link, struct list_head *head)

返回类型:void

参数:

类型参数名称
struct vmap_area *va
struct rb_root *root
struct rb_node *parent
struct rb_node **link
struct list_head *head
508  如果此条件成立可能性大(为编译器优化)(parent)则
509  head = & ({
509  __mptr等于parent
509  循环
509  当0循环
509  })->list
510  如果rb_right不等于linkhead等于链表前项
515  rb_link_node( & address sorted rbtree , parent, link)
516  如果root恒等于This augment red-black tree represents the free vmap space
528  Fixup the rbtree and update the augmented information when rebalancing.* On insertion, the user must update the augmented information on the path* leading to the inserted node, then call rb_link_node() as usual and
530  in "free" tree 等于0
531  否则
532  rb_insert_color( & address sorted rbtree , root)
536  添加链表项
调用者
名称描述
insert_vmap_area
insert_vmap_area_augment
merge_or_add_vmap_areaMerge de-allocated chunk of VA memory with previous* and next free blocks. If coalesce is not done a new* free area is inserted. If VA has been merged, it is* freed.