list_for_each_entry

686阅读 0评论2011-08-26 checl1987_EE
分类:LINUX

在Linux内核源码中,经常要对链表进行操作,其中一个很重要的宏是list_for_each_entry:
意思大体如下:
假设只有两个结点,则第一个member代表head,
list_for_each_entry的作用就是循环遍历head(建立好的list)中每一个pos中的member(list)子项。
/**
 * list_for_each_entry - iterate over list of given type
 * @pos: the type * to use as a loop cursor.
 * @head: the head for your list.
 * @member: the name of the list_struct within the struct.
 */
#define list_for_each_entry(pos, head, member) \
for (pos = list_entry((head)->next, typeof(*pos), member); \
    prefetch(pos->member.next), &pos->member != (head); \
    pos = list_entry(pos->member.next, typeof(*pos), member))

上一篇:linux2.6中的原子 
下一篇:linux kernel !! usage