Data Structures | |
struct | _slist_node_t |
struct | _slist_t |
Defines | |
#define | _snode_local_new(_n) slist_node_t _n = malloc(sizeof(struct _slist_node_t)) |
#define | snode_del free |
#define | slist_insert_head(_l, _v) |
#define | slist_insert_tail(_l, _v) |
#define | slist_remove_head(_l) |
#define | slist_forward(_l, _t, _f) |
#define | slist_flush(_l) |
Typedefs | |
typedef struct _slist_node_t * | slist_node_t |
typedef struct _slist_t * | slist_t |
Functions | |
void | slist_init (slist_t) |
slist_t | slist_new () |
void | slist_del (slist_t) |
#define _snode_local_new | ( | _n | ) | slist_node_t _n = malloc(sizeof(struct _slist_node_t)) |
For internal use only.
#define snode_del free |
For internal use only.
#define slist_insert_head | ( | _l, | |||
_v | ) |
Value:
do {\ _snode_local_new(n);\ n->value=(word_t)(_v);\ n->next=(_l)->head;\ if((_l)->tail==NULL) {\ (_l)->tail=n;\ }\ (_l)->head=n;\ } while(0)
#define slist_insert_tail | ( | _l, | |||
_v | ) |
Value:
do {\ _snode_local_new(n);\ n->value=(word_t)(_v);\ n->next=NULL;\ if((_l)->tail!=NULL) {\ (_l)->tail->next=n;\ } else {\ (_l)->head=n;\ }\ (_l)->tail=n;\ } while(0)
#define slist_remove_head | ( | _l | ) |
Value:
do {\ slist_node_t n=(_l)->head;\ (_l)->head = (_l)->head->next;\ snode_del(n);\ } while(0)
#define slist_forward | ( | _l, | |||
_t, | |||||
_f | ) |
Value:
do {\ slist_node_t n=list_head(_l);\ while(n!=NULL) {\ _f(node_value(_t,n));\ n=n->next;\ }\ } while(0)
#define slist_flush | ( | _l | ) |
Value:
do {\ slist_node_t q,n=list_head(_l);\ while(n!=NULL) {\ q=n->next;\ free(n);\ n=q;\ }\ } while(0)
typedef struct _slist_node_t* slist_node_t |
void slist_init | ( | slist_t | ) | [inline] |
slist_t slist_new | ( | ) |
void slist_del | ( | slist_t | ) |