25 #ifndef __LIBUBOX_SAFE_LIST_H
26 #define __LIBUBOX_SAFE_LIST_H
41 int (*cb)(
void *ctx,
struct safe_list *list),
48 #define INIT_SAFE_LIST(_head) \
50 INIT_LIST_HEAD(_head.list); \
54 #define SAFE_LIST_INIT(_name) { LIST_HEAD_INIT(_name.list), NULL }
55 #define SAFE_LIST(_name) struct safe_list _name = SAFE_LIST_INIT(_name)
static bool list_empty(const struct list_head *head)
static bool safe_list_empty(struct safe_list *head)
void safe_list_add(struct safe_list *list, struct safe_list *head)
int safe_list_for_each(struct safe_list *list, int(*cb)(void *ctx, struct safe_list *list), void *ctx)
void safe_list_add_first(struct safe_list *list, struct safe_list *head)
void safe_list_del(struct safe_list *list)
struct safe_list_iterator ** head
struct safe_list_iterator * i