Data Structures | |
struct | list_node_tag |
struct | linked_list_tag |
Defines | |
#define | LIST_IS_EMPTY(_x) (_x->first == NULL) |
Typedefs | |
typedef struct list_node_tag | list_node |
typedef struct linked_list_tag | linked_list |
Functions | |
linked_list * | alloc_linked_list (void) |
void | free_linked_list (linked_list *list) |
list_node * | alloc_list_node (int data_size) |
void | free_list_node (list_node *node) |
void | append_list_node (linked_list *list, list_node *node) |
void | prepend_list_node (linked_list *list, list_node *node) |
void | remove_list_node_link (linked_list *list, list_node *node) |
void | remove_list_node (linked_list *list, list_node *node) |
void | move_list_node (linked_list *src_list, linked_list *dst_list, list_node *node) |
void | insert_before_list_node (linked_list *list, list_node *node, list_node *new_node) |
void | insert_after_list_node (linked_list *list, list_node *node, list_node *new_node) |
#define LIST_IS_EMPTY | ( | _x | ) | (_x->first == NULL) |
This macro evaluates to 1 if list _x is empty
typedef struct list_node_tag list_node |
List node structure
typedef struct linked_list_tag linked_list |
Doubly-linked list structure
This structure represents a doubly-linked list.
linked_list* alloc_linked_list | ( | void | ) |
Allocate new doubly-linked list
This function allocates new doubly-linked list.
References linked_list_tag::first, linked_list_tag::last, and xmalloc().
Referenced by alloc_LIS_slots(), speck_decode(), and speck_encode().
void free_linked_list | ( | linked_list * | list | ) |
Release doubly-linked list
This function releases doubly-linked list with all its internal nodes. Data blocks associated with nodes are also released.
VOID
References linked_list_tag::first, free_list_node(), and list_node_tag::next.
Referenced by free_LIS_slots(), speck_decode(), and speck_encode().
list_node* alloc_list_node | ( | int | data_size | ) |
Allocate new list node
This function allocates new list node with associated data block of size data_size.
References list_node_tag::data, list_node_tag::next, list_node_tag::prev, and xmalloc().
Referenced by speck_decode_I(), speck_decode_S(), speck_encode_I(), speck_encode_S(), and speck_init().
void free_list_node | ( | list_node * | node | ) |
Release list node
This function releases list node and data block associated with it.
VOID
References list_node_tag::data.
Referenced by free_linked_list(), remove_list_node(), speck_decode_I(), speck_encode_I(), speck_process_S(), and speck_unprocess_S().
void append_list_node | ( | linked_list * | list, | |
list_node * | node | |||
) |
Append list node
This function appends new node to the list tail.
VOID
References linked_list_tag::first, linked_list_tag::last, list_node_tag::next, and list_node_tag::prev.
Referenced by insert_after_list_node(), move_list_node(), speck_decode_S(), speck_encode_S(), speck_process_S(), and speck_unprocess_S().
void prepend_list_node | ( | linked_list * | list, | |
list_node * | node | |||
) |
Prepend list node
This function prepends new node to the list head.
VOID
References linked_list_tag::first, linked_list_tag::last, list_node_tag::next, and list_node_tag::prev.
Referenced by insert_before_list_node(), speck_decode_S(), speck_encode_S(), speck_init(), speck_process_S(), and speck_unprocess_S().
void remove_list_node_link | ( | linked_list * | list, | |
list_node * | node | |||
) |
Remove list node
This function removes node links from the list.
VOID
References linked_list_tag::first, linked_list_tag::last, list_node_tag::next, and list_node_tag::prev.
Referenced by move_list_node(), remove_list_node(), speck_process_S(), and speck_unprocess_S().
void remove_list_node | ( | linked_list * | list, | |
list_node * | node | |||
) |
Remove list node
This function removes node from the list.
VOID
References free_list_node(), and remove_list_node_link().
Referenced by speck_process_S(), and speck_unprocess_S().
void move_list_node | ( | linked_list * | src_list, | |
linked_list * | dst_list, | |||
list_node * | node | |||
) |
Move node
This function moves node from src_list to dst_list.
VOID
References append_list_node(), and remove_list_node_link().
void insert_before_list_node | ( | linked_list * | list, | |
list_node * | node, | |||
list_node * | new_node | |||
) |
Insert node
This function inserts new_node to the list just before node.
VOID
References linked_list_tag::first, list_node_tag::next, prepend_list_node(), and list_node_tag::prev.
void insert_after_list_node | ( | linked_list * | list, | |
list_node * | node, | |||
list_node * | new_node | |||
) |
Insert node
This function inserts new_node to the list just after node.
VOID
References append_list_node(), linked_list_tag::last, list_node_tag::next, and list_node_tag::prev.