Go to the documentation of this file.
25 #define LIST_HEAD_INIT(name) { &(name), &(name) }
27 #define LIST_HEAD(name) \
28 struct list_head name = LIST_HEAD_INIT(name)
30 #define INIT_LIST_HEAD(ptr) do { \
31 (ptr)->next = (ptr); (ptr)->prev = (ptr); \
97 entry->
next = (
void *) 0x1010;
98 entry->
prev = (
void *) 0x1010;
140 return head->
next == head;
190 #define list_entry(ptr, type, member) \
191 ((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member)))
198 #define list_for_each(pos, head) \
199 for (pos = (head)->next; pos != (head); \
206 #define list_for_each_prev(pos, head) \
207 for (pos = (head)->prev; pos != (head); \
216 #define list_for_each_safe(pos, n, head) \
217 for (pos = (head)->next, n = pos->next; pos != (head); \
218 pos = n, n = pos->next)
226 #define list_for_each_entry(pos, head, member) \
227 for (pos = list_entry((head)->next, typeof(*pos), member); \
228 &pos->member != (head); \
229 pos = list_entry(pos->member.next, typeof(*pos), member))
238 #define list_for_each_entry_safe(pos, n, head, member) \
239 for (pos = list_entry((head)->next, typeof(*pos), member), \
240 n = list_entry(pos->member.next, typeof(*pos), member); \
241 &pos->member != (head); \
242 pos = n, n = list_entry(n->member.next, typeof(*n), member))
static void list_add_tail(struct list_head *new, struct list_head *head)
static void list_move_tail(struct list_head *list, struct list_head *head)
#define INIT_LIST_HEAD(ptr)
static void __list_del(struct list_head *prev, struct list_head *next)
static int list_empty(struct list_head *head)
static void list_del_init(struct list_head *entry)
static void list_del(struct list_head *entry)
static void list_splice(struct list_head *list, struct list_head *head)
static void __list_splice(struct list_head *list, struct list_head *head)
static void list_move(struct list_head *list, struct list_head *head)
static void list_splice_init(struct list_head *list, struct list_head *head)
static void list_add(struct list_head *new, struct list_head *head)
static void __list_add(struct list_head *new, struct list_head *prev, struct list_head *next)