Lines Matching refs:list
24 #define LIST_INITIAL_VALUE(list) { &(list), &(list) } argument
27 static inline void list_initialize(struct list_node *list) { in list_initialize() argument
28 list->prev = list->next = list; in list_initialize()
42 static inline void list_add_head(struct list_node *list, struct list_node *item) { in list_add_head() argument
43 item->next = list->next; in list_add_head()
44 item->prev = list; in list_add_head()
45 list->next->prev = item; in list_add_head()
46 list->next = item; in list_add_head()
51 static inline void list_add_tail(struct list_node *list, struct list_node *item) { in list_add_tail() argument
52 item->prev = list->prev; in list_add_tail()
53 item->next = list; in list_add_tail()
54 list->prev->next = item; in list_add_tail()
55 list->prev = item; in list_add_tail()
66 static inline struct list_node *list_remove_head(struct list_node *list) { in list_remove_head() argument
67 if (list->next != list) { in list_remove_head()
68 struct list_node *item = list->next; in list_remove_head()
76 #define list_remove_head_type(list, type, element) ({\ argument
77 struct list_node *__nod = list_remove_head(list);\
86 static inline struct list_node *list_remove_tail(struct list_node *list) { in list_remove_tail() argument
87 if (list->prev != list) { in list_remove_tail()
88 struct list_node *item = list->prev; in list_remove_tail()
96 #define list_remove_tail_type(list, type, element) ({\ argument
97 struct list_node *__nod = list_remove_tail(list);\
106 static inline struct list_node *list_peek_head(struct list_node *list) { in list_peek_head() argument
107 if (list->next != list) { in list_peek_head()
108 return list->next; in list_peek_head()
114 #define list_peek_head_type(list, type, element) ({\ argument
115 struct list_node *__nod = list_peek_head(list);\
124 static inline struct list_node *list_peek_tail(struct list_node *list) { in list_peek_tail() argument
125 if (list->prev != list) { in list_peek_tail()
126 return list->prev; in list_peek_tail()
132 #define list_peek_tail_type(list, type, element) ({\ argument
133 struct list_node *__nod = list_peek_tail(list);\
142 static inline struct list_node *list_prev(struct list_node *list, struct list_node *item) { in list_prev() argument
143 if (item->prev != list) in list_prev()
149 #define list_prev_type(list, item, type, element) ({\ argument
150 struct list_node *__nod = list_prev(list, item);\
159 static inline struct list_node *list_prev_wrap(struct list_node *list, struct list_node *item) { in list_prev_wrap() argument
160 if (item->prev != list) in list_prev_wrap()
162 else if (item->prev->prev != list) in list_prev_wrap()
168 #define list_prev_wrap_type(list, item, type, element) ({\ argument
169 struct list_node *__nod = list_prev_wrap(list, item);\
178 static inline struct list_node *list_next(struct list_node *list, struct list_node *item) { in list_next() argument
179 if (item->next != list) in list_next()
185 #define list_next_type(list, item, type, element) ({\ argument
186 struct list_node *__nod = list_next(list, item);\
195 static inline struct list_node *list_next_wrap(struct list_node *list, struct list_node *item) { in list_next_wrap() argument
196 if (item->next != list) in list_next_wrap()
198 else if (item->next->next != list) in list_next_wrap()
204 #define list_next_wrap_type(list, item, type, element) ({\ argument
205 struct list_node *__nod = list_next_wrap(list, item);\
215 #define list_for_every(list, node) \ argument
216 for(node = (list)->next; node != (list); node = node->next)
220 #define list_for_every_safe(list, node, temp_node) \ argument
221 for(node = (list)->next, temp_node = (node)->next;\
222 node != (list);\
226 #define list_for_every_entry(list, entry, type, member) \ argument
227 for((entry) = containerof((list)->next, type, member);\
228 &(entry)->member != (list);\
233 #define list_for_every_entry_safe(list, entry, temp_entry, type, member) \ argument
234 for(entry = containerof((list)->next, type, member),\
236 &(entry)->member != (list);\
239 static inline bool list_is_empty(struct list_node *list) { in list_is_empty() argument
240 return (list->next == list) ? true : false; in list_is_empty()
243 static inline size_t list_length(struct list_node *list) { in list_length() argument
245 struct list_node *node = list; in list_length()
246 list_for_every(list, node) { in list_length()