linux list

Posted gr-nick

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux list相关的知识,希望对你有一定的参考价值。

linux list

1. container_of

#define container_of(ptr, type, member)                 /
({                                                        /
    const typeof( ((type *)0)->member ) *__mptr = (ptr);/
    (type *)( (char *)__mptr - offsetof(type,member) ); /
})

通过成员指针得到容器指针。

2. struct list_head

struct list_head {
    struct list_head *next, *prev;
};

3. list_entry

#define list_entry(ptr, type, member) /
    container_of(ptr, type, member)

4. list_for_each

#define list_for_each(pos, head) \  
    for (pos = (head)->next, prefetch(pos->next); pos != (head); \  
        pos = pos->next, prefetch(pos->next)) 

5. list_for_each_entry

    #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))

以上是关于linux list的主要内容,如果未能解决你的问题,请参考以下文章