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 |