Lines Matching refs:list

182 static inline void sys_slist_init(sys_slist_t *list)  in sys_slist_init()  argument
184 list->head = NULL; in sys_slist_init()
185 list->tail = NULL; in sys_slist_init()
197 static inline bool sys_slist_is_empty(sys_slist_t *list) in sys_slist_is_empty() argument
199 return (!list->head); in sys_slist_is_empty()
209 static inline sys_snode_t *sys_slist_peek_head(sys_slist_t *list) in sys_slist_peek_head() argument
211 return list->head; in sys_slist_peek_head()
221 static inline sys_snode_t *sys_slist_peek_tail(sys_slist_t *list) in sys_slist_peek_tail() argument
223 return list->tail; in sys_slist_peek_tail()
258 static inline void sys_slist_prepend(sys_slist_t *list, in sys_slist_prepend() argument
261 node->next = list->head; in sys_slist_prepend()
262 list->head = node; in sys_slist_prepend()
264 if (!list->tail) { in sys_slist_prepend()
265 list->tail = list->head; in sys_slist_prepend()
275 static inline void sys_slist_append(sys_slist_t *list, in sys_slist_append() argument
280 if (!list->tail) { in sys_slist_append()
281 list->tail = node; in sys_slist_append()
282 list->head = node; in sys_slist_append()
284 list->tail->next = node; in sys_slist_append()
285 list->tail = node; in sys_slist_append()
299 static inline void sys_slist_append_list(sys_slist_t *list, in sys_slist_append_list() argument
302 if (!list->tail) { in sys_slist_append_list()
303 list->head = (sys_snode_t *)head; in sys_slist_append_list()
304 list->tail = (sys_snode_t *)tail; in sys_slist_append_list()
306 list->tail->next = (sys_snode_t *)head; in sys_slist_append_list()
307 list->tail = (sys_snode_t *)tail; in sys_slist_append_list()
319 static inline void sys_slist_merge_slist(sys_slist_t *list, in sys_slist_merge_slist() argument
322 sys_slist_append_list(list, list_to_append->head, in sys_slist_merge_slist()
334 static inline void sys_slist_insert(sys_slist_t *list, in sys_slist_insert() argument
339 sys_slist_prepend(list, node); in sys_slist_insert()
341 sys_slist_append(list, node); in sys_slist_insert()
357 static inline sys_snode_t *sys_slist_get_not_empty(sys_slist_t *list) in sys_slist_get_not_empty() argument
359 sys_snode_t *node = list->head; in sys_slist_get_not_empty()
361 list->head = node->next; in sys_slist_get_not_empty()
362 if (list->tail == node) { in sys_slist_get_not_empty()
363 list->tail = list->head; in sys_slist_get_not_empty()
376 static inline sys_snode_t *sys_slist_get(sys_slist_t *list) in sys_slist_get() argument
378 return sys_slist_is_empty(list) ? NULL : sys_slist_get_not_empty(list); in sys_slist_get()
389 static inline void sys_slist_remove(sys_slist_t *list, in sys_slist_remove() argument
394 list->head = node->next; in sys_slist_remove()
397 if (list->tail == node) { in sys_slist_remove()
398 list->tail = list->head; in sys_slist_remove()
404 if (list->tail == node) { in sys_slist_remove()
405 list->tail = prev_node; in sys_slist_remove()
420 static inline bool sys_slist_find_and_remove(sys_slist_t *list, in sys_slist_find_and_remove() argument
426 SYS_SLIST_FOR_EACH_NODE(list, test) { in sys_slist_find_and_remove()
428 sys_slist_remove(list, prev, node); in sys_slist_find_and_remove()