|  | 
| #define | SYS_SLIST_FOR_EACH_NODE(__sl,  __sn)   	Z_GENLIST_FOR_EACH_NODE(slist, __sl, __sn) | 
|  | Provide the primitive to iterate on a list Note: the loop is unsafe and thus __sn should not be removed. 
 | 
|  | 
| #define | SYS_SLIST_ITERATE_FROM_NODE(__sl,  __sn)   	Z_GENLIST_ITERATE_FROM_NODE(slist, __sl, __sn) | 
|  | Provide the primitive to iterate on a list, from a node in the list Note: the loop is unsafe and thus __sn should not be removed. 
 | 
|  | 
| #define | SYS_SLIST_FOR_EACH_NODE_SAFE(__sl,  __sn,  __sns)   	Z_GENLIST_FOR_EACH_NODE_SAFE(slist, __sl, __sn, __sns) | 
|  | Provide the primitive to safely iterate on a list Note: __sn can be removed, it will not break the loop. 
 | 
|  | 
| #define | SYS_SLIST_CONTAINER(__ln,  __cn,  __n)   	Z_GENLIST_CONTAINER(__ln, __cn, __n) | 
|  | Provide the primitive to resolve the container of a list node Note: it is safe to use with NULL pointer nodes. 
 | 
|  | 
| #define | SYS_SLIST_PEEK_HEAD_CONTAINER(__sl,  __cn,  __n)   	Z_GENLIST_PEEK_HEAD_CONTAINER(slist, __sl, __cn, __n) | 
|  | Provide the primitive to peek container of the list head. 
 | 
|  | 
| #define | SYS_SLIST_PEEK_TAIL_CONTAINER(__sl,  __cn,  __n)   	Z_GENLIST_PEEK_TAIL_CONTAINER(slist, __sl, __cn, __n) | 
|  | Provide the primitive to peek container of the list tail. 
 | 
|  | 
| #define | SYS_SLIST_PEEK_NEXT_CONTAINER(__cn,  __n)   	Z_GENLIST_PEEK_NEXT_CONTAINER(slist, __cn, __n) | 
|  | Provide the primitive to peek the next container. 
 | 
|  | 
| #define | SYS_SLIST_FOR_EACH_CONTAINER(__sl,  __cn,  __n)   	Z_GENLIST_FOR_EACH_CONTAINER(slist, __sl, __cn, __n) | 
|  | Provide the primitive to iterate on a list under a container Note: the loop is unsafe and thus __cn should not be detached. 
 | 
|  | 
| #define | SYS_SLIST_FOR_EACH_CONTAINER_SAFE(__sl,  __cn,  __cns,  __n)   	Z_GENLIST_FOR_EACH_CONTAINER_SAFE(slist, __sl, __cn, __cns, __n) | 
|  | Provide the primitive to safely iterate on a list under a container Note: __cn can be detached, it will not break the loop. 
 | 
|  | 
| #define | SYS_SLIST_STATIC_INIT(ptr_to_list)   {NULL, NULL} | 
|  | Statically initialize a single-linked list. 
 | 
|  | 
|  | 
| static void | sys_slist_init (sys_slist_t *list) | 
|  | Initialize a list. 
 | 
|  | 
| static sys_snode_t * | sys_slist_peek_head (const sys_slist_t *list) | 
|  | Peek the first node from the list. 
 | 
|  | 
| static sys_snode_t * | sys_slist_peek_tail (const sys_slist_t *list) | 
|  | Peek the last node from the list. 
 | 
|  | 
| static bool | sys_slist_is_empty (const sys_slist_t *list) | 
|  | Test if the given list is empty. 
 | 
|  | 
| static sys_snode_t * | sys_slist_peek_next_no_check (const sys_snode_t *node) | 
|  | Peek the next node from current node, node is not NULL. 
 | 
|  | 
| static sys_snode_t * | sys_slist_peek_next (const sys_snode_t *node) | 
|  | Peek the next node from current node. 
 | 
|  | 
| static void | sys_slist_prepend (sys_slist_t *list, sys_snode_t *node) | 
|  | Prepend a node to the given list. 
 | 
|  | 
| static void | sys_slist_append (sys_slist_t *list, sys_snode_t *node) | 
|  | Append a node to the given list. 
 | 
|  | 
| static void | sys_slist_append_list (sys_slist_t *list, void *head, void *tail) | 
|  | Append a list to the given list. 
 | 
|  | 
| static void | sys_slist_merge_slist (sys_slist_t *list, sys_slist_t *list_to_append) | 
|  | merge two slists, appending the second one to the first 
 | 
|  | 
| static void | sys_slist_insert (sys_slist_t *list, sys_snode_t *prev, sys_snode_t *node) | 
|  | Insert a node to the given list. 
 | 
|  | 
| static sys_snode_t * | sys_slist_get_not_empty (sys_slist_t *list) | 
|  | Fetch and remove the first node of the given list. 
 | 
|  | 
| static sys_snode_t * | sys_slist_get (sys_slist_t *list) | 
|  | Fetch and remove the first node of the given list. 
 | 
|  | 
| static void | sys_slist_remove (sys_slist_t *list, sys_snode_t *prev_node, sys_snode_t *node) | 
|  | Remove a node. 
 | 
|  | 
| static bool | sys_slist_find_and_remove (sys_slist_t *list, sys_snode_t *node) | 
|  | Find and remove a node from a list. 
 | 
|  | 
| static bool | sys_slist_find (const sys_slist_t *list, const sys_snode_t *node, sys_snode_t **prev) | 
|  | Find if a node is already linked in a singly linked list. 
 | 
|  | 
| static size_t | sys_slist_len (const sys_slist_t *list) | 
|  | Compute the size of the given list in O(n) time. 
 | 
|  |