*参照元 [#sb1b9402]
#backlinks

*説明 [#nafba36f]
-パス: [[linux-2.6.33/mm/vmalloc.c]]

-FIXME: これは何?
--説明


**引数 [#j1847322]
-struct vmap_area *va
--
--[[linux-2.6.33/vmap_area]]


**返り値 [#yc2aea14]
-なし


**参考 [#d206c5b1]


*実装 [#ra8032cb]
 static void __insert_vmap_area(struct vmap_area *va)
 {
 	struct rb_node **p = &vmap_area_root.rb_node;
 	struct rb_node *parent = NULL;
 	struct rb_node *tmp;
 
-
--[[linux-2.6.33/rb_node]]
-
--[[linux-2.6.33/vmap_area_root(global)]]

 	while (*p) {
 		struct vmap_area *tmp;
 
 		parent = *p;
 		tmp = rb_entry(parent, struct vmap_area, rb_node);
-
--[[linux-2.6.33/rb_entry()]]

 		if (va->va_start < tmp->va_end)
 			p = &(*p)->rb_left;
 		else if (va->va_end > tmp->va_start)
 			p = &(*p)->rb_right;
 		else
 			BUG();
-
--[[linux-2.6.33/BUG()]]

 	}
 
 	rb_link_node(&va->rb_node, parent, p);
 	rb_insert_color(&va->rb_node, &vmap_area_root);
 
-
--[[linux-2.6.33/rb_link_node()]]
-
--[[linux-2.6.33/rb_insert_color()]]

 	/* address-sort this list so it is usable like the vmlist */
 	tmp = rb_prev(&va->rb_node);
-
--[[linux-2.6.33/rb_prev()]]

 	if (tmp) {
 		struct vmap_area *prev;
 		prev = rb_entry(tmp, struct vmap_area, rb_node);
 		list_add_rcu(&va->list, &prev->list);
-
--[[linux-2.6.33/list_add_rcu()]]

 	} else
 		list_add_rcu(&va->list, &vmap_area_list);
 }


*コメント [#hb751266]


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS