Files | |
| file | ub_llist.h |
| Doubly linked list. | |
Data Structures | |
| struct | ub_list_node |
| ub_list node structure More... | |
| struct | ub_list |
| Link ub_list structure. More... | |
Functions | |
| void | ub_list_init (struct ub_list *ub_list) |
| Initialize ub_list. More... | |
| void | ub_list_clear (struct ub_list *ub_list, ub_list_node_clear_h node_clear, void *arg) |
| Clear the ub_list without freeing any nodes. More... | |
| void | ub_list_append (struct ub_list *ub_list, struct ub_list_node *node) |
| Append a node at the end of the ub_list. More... | |
| void | ub_list_prepend (struct ub_list *ub_list, struct ub_list_node *node) |
| Append a node at the start of the ub_list. More... | |
| void | ub_list_insert_before (struct ub_list *ub_list, struct ub_list_node *refnode, struct ub_list_node *node) |
| Append a node before a reference node. More... | |
| void | ub_list_insert_after (struct ub_list *ub_list, struct ub_list_node *refnode, struct ub_list_node *node) |
| Append a node after a reference node. More... | |
| void | ub_list_unlink (struct ub_list *ub_list, struct ub_list_node *node) |
| Remove a node from the ub_list. More... | |
| void | ub_list_sort (struct ub_list *ub_list, ub_list_sort_h *sh, void *arg) |
| Sort entries in the ub_list based on comparator. More... | |
| struct ub_list_node * | ub_list_apply (const struct ub_list *ub_list, bool fwd, ub_list_apply_h *ah, void *arg) |
| Apply function to nodes in the ub_list. More... | |
| struct ub_list_node * | ub_list_head (const struct ub_list *ub_list) |
| Get first entry of the ub_list. More... | |
| struct ub_list_node * | ub_list_tail (const struct ub_list *ub_list) |
| Get last entry of the ub_list. More... | |
| uint32_t | ub_list_count (const struct ub_list *ub_list) |
| Get number of entries. More... | |
| static void * | ub_list_nodedata (const struct ub_list_node *node) |
| Get data of node. More... | |
| static bool | ub_list_isempty (const struct ub_list *ub_list) |
| Check if ub_list is empty. More... | |
Typedefs | |
| typedef void() | ub_list_node_clear_h(struct ub_list_node *node, void *arg) |
| function to clean up node More... | |
| typedef bool() | ub_list_sort_h(struct ub_list_node *node1, struct ub_list_node *node2, void *arg) |
| Comparator function handler for nodes. More... | |
| typedef bool() | ub_list_apply_h(struct ub_list_node *node, void *arg) |
| Apply function handler for nodes. More... | |
Macros | |
| #define | UB_LIST_NODE_INIT {NULL, NULL, NULL} |
| Initialize members of ub_list node. More... | |
| #define | UB_LIST_INIT {NULL, NULL, 0} |
| Initialize ub_list. More... | |
| #define | UB_LIST_FOREACH_ITER(ub_list, node) (node) = ub_list_head((ub_list)); (node); (node) = (node)->next |
| Traverse the ub_list. More... | |
| #define UB_LIST_NODE_INIT {NULL, NULL, NULL} |
Initialize members of ub_list node.
| #define UB_LIST_INIT {NULL, NULL, 0} |
Initialize ub_list.
| #define UB_LIST_FOREACH_ITER | ( | ub_list, | |
| node | |||
| ) | (node) = ub_list_head((ub_list)); (node); (node) = (node)->next |
Traverse the ub_list.
| typedef void() ub_list_node_clear_h(struct ub_list_node *node, void *arg) |
function to clean up node
| node | node to be applied |
| arg | clean up argument |
| typedef bool() ub_list_sort_h(struct ub_list_node *node1, struct ub_list_node *node2, void *arg) |
Comparator function handler for nodes.
| node1 | first node |
| node2 | second node |
| arg | Comparison argument |
| typedef bool() ub_list_apply_h(struct ub_list_node *node, void *arg) |
Apply function handler for nodes.
| node | node to be applied |
| arg | Apply argument |
| void ub_list_init | ( | struct ub_list * | ub_list | ) |
| void ub_list_clear | ( | struct ub_list * | ub_list, |
| ub_list_node_clear_h | node_clear, | ||
| void * | arg | ||
| ) |
| void ub_list_append | ( | struct ub_list * | ub_list, |
| struct ub_list_node * | node | ||
| ) |
| void ub_list_prepend | ( | struct ub_list * | ub_list, |
| struct ub_list_node * | node | ||
| ) |
| void ub_list_insert_before | ( | struct ub_list * | ub_list, |
| struct ub_list_node * | refnode, | ||
| struct ub_list_node * | node | ||
| ) |
| void ub_list_insert_after | ( | struct ub_list * | ub_list, |
| struct ub_list_node * | refnode, | ||
| struct ub_list_node * | node | ||
| ) |
| void ub_list_unlink | ( | struct ub_list * | ub_list, |
| struct ub_list_node * | node | ||
| ) |
| void ub_list_sort | ( | struct ub_list * | ub_list, |
| ub_list_sort_h * | sh, | ||
| void * | arg | ||
| ) |
| struct ub_list_node* ub_list_apply | ( | const struct ub_list * | ub_list, |
| bool | fwd, | ||
| ub_list_apply_h * | ah, | ||
| void * | arg | ||
| ) |
| struct ub_list_node* ub_list_head | ( | const struct ub_list * | ub_list | ) |
| struct ub_list_node* ub_list_tail | ( | const struct ub_list * | ub_list | ) |
| uint32_t ub_list_count | ( | const struct ub_list * | ub_list | ) |
|
inlinestatic |
Get data of node.
| node | Node entry |