45 #define ES_LIST_HEAD_INIT(name) { &(name), &(name) } 47 #define ES_LIST_HEAD(name) \ 48 struct es_list_head name = ES_LIST_HEAD_INIT(name) 50 #define ES_INIT_LIST_HEAD(ptr) do { \ 51 (ptr)->next = (ptr); (ptr)->prev = (ptr); \ 54 #define ES_LIST_FIRST(name) (name)->next 55 #define ES_LIST_LAST(name) (name)->prev 65 next->
prev = new_item;
68 prev->
next = new_item;
137 return head->
next == head;
168 #define ES_LIST_ENTRY(ptr, type, member) \ 169 ((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member))) 176 #define ES_LIST_FOR_EACH(pos, head) \ 177 for (pos = (head)->next; pos != (head); pos = pos->next) 184 #define ES_LIST_FOR_REVERSE_EACH(pos, head) \ 185 for (pos = (head)->prev; pos != (head); pos = pos->prev) 193 #define ES_LIST_FOR_EACH_SAFE(pos, n, head) \ 194 for (pos = (head)->next, n = pos->next; pos != (head); \ 195 pos = n, n = pos->next) static void es_list_del(struct es_list_head *entry)
#define ES_INIT_LIST_HEAD(ptr)
static void __list_add(struct es_list_head *new_item, struct es_list_head *prev, struct es_list_head *next)
static void __list_del(struct es_list_head *prev, struct es_list_head *next)
struct es_list_head * prev
static void es_list_del_init(struct es_list_head *entry)
static void es_list_splice(struct es_list_head *list, struct es_list_head *head)
static void es_list_add_tail(struct es_list_head *new_item, struct es_list_head *head)
static void es_list_add(struct es_list_head *new_item, struct es_list_head *head)
static int es_list_empty(struct es_list_head *head)
struct es_list_head * next