the entry is* in an undefined state.*/staticinlinevoid__list_del_entry(structlist_head*entry){if(!__list_del_entry_valid(entry))return;__list_del(entry->prev,entry->next);}
1.struct list_head { 2. struct list_head *next, *prev; 3.}; list_head很简单,其实就是一个双向链表,但是我们也许会奇怪,这样的双向链表能干什么,它里面连最起码的一个泛化指针(void*)都没有,也就是说我们不可能通过它来获得其他对象的引用,那有什么用呢?也许,让我们来定义list_head,我们也许会这样定...
19. static inline void __list_del_entry(struct list_head *entry) 20. { 21. if (!__list_del_entry_valid(entry)) 22. return; 23. __list_del(entry->prev, entry->next); 24. } 利用list_del(struct list_head *entry) 接口就可以删除链表中的任意节点了,但需注意,前提条件是这个节点是已...
staticinlinevoid__list_del(structlist_head*prev,structlist_head*next) { next->prev=prev; prev->next=next; } staticinlinevoid__list_del_entry(structlist_head*entry) { __list_del(entry->prev,entry->next); } staticinlinevoidlist_del(structlist_head*entry) { __list_del(entry->prev,entr...
typedefstructpage{structlist_headlist;//...structpage*next_hash;//...structlist_headlru; }; 数据结构之间的连接操作都通过list_head执行。 接着内核定义了如下的一个函数: memlist_entry(cur, struct page, list); 这个函数将list_head的指针curr换算成了宿主结构的其实地址,也就是其宿主page结构的指针...
Linux中的list_entry和container_of 转自http://hi.baidu.com/mynana/blog/item/1da1ba99239ceb006f068c48.html list_entry宏是用来根据list_head指针查找链表所嵌入的结构体的地址,具体实现是依赖宏container_of: #define list_entry(ptr, type, member)container_of(ptr, type, member)...
list_entry - 例子 如果我们有test_list结构: struct test_list{ int testdata; struct list_head list;}; struct test_list a; a.testdata = 5; struct test_list *pos = list_entry(&(a.testdata),struct test_list,testdata); 结果:
struct list_head list;}; struct test_list a; a.testdata = 5; struct test_list *pos = list_entry(&(a.testdata),struct test_list,testdata); 结果: pos = &a; 可测试: pos->testdata = 5 list_entry - 解释 &((type *)0)->member: ...
* Insert a new entry after the specified head. * This is good for implementing stacks. */ static inline void list_add(struct list_head *new, struct list_head *head) { __list_add(new, head, head->next); } /** * list_add_tail - add a new entry ...
linux中的list,目录队列的操作,相关函数宏、函数分析定义、初始化list_head的方法list_entry(ptr,type,member)list_for_each_entry(pos,head,member)队列的操作,相关