Functions
list_check ()
struct list_head *
list_check (const struct list_head *h
,
const char *abortstr
);
list_check_node ()
struct list_node *
list_check_node (const struct list_node *n
,
const char *abortstr
);
list_debug()
#define list_debug(h, loc) list_check((h), loc)
list_debug_node()
#define list_debug_node(n, loc) list_check_node((n), loc)
LIST_HEAD_INIT()
#define LIST_HEAD_INIT(name) { { &(name).n, &(name).n } }
LIST_HEAD()
#define LIST_HEAD(name)
list_head_init ()
void
list_head_init (struct list_head *h
);
list_node_init ()
void
list_node_init (struct list_node *n
);
list_add_after()
#define list_add_after(h, p, n) list_add_after_(h, p, n, LIST_LOC)
list_add_after_ ()
void
list_add_after_ (struct list_head *h
,
struct list_node *p
,
struct list_node *n
,
const char *abortstr
);
list_add()
#define list_add(h, n) list_add_(h, n, LIST_LOC)
list_add_ ()
void
list_add_ (struct list_head *h
,
struct list_node *n
,
const char *abortstr
);
list_add_before()
#define list_add_before(h, p, n) list_add_before_(h, p, n, LIST_LOC)
list_add_before_ ()
void
list_add_before_ (struct list_head *h
,
struct list_node *p
,
struct list_node *n
,
const char *abortstr
);
list_add_tail()
#define list_add_tail(h, n) list_add_tail_(h, n, LIST_LOC)
list_add_tail_ ()
void
list_add_tail_ (struct list_head *h
,
struct list_node *n
,
const char *abortstr
);
list_empty()
#define list_empty(h) list_empty_(h, LIST_LOC)
list_empty_ ()
bool
list_empty_ (const struct list_head *h
,
const char *abortstr
);
list_empty_nodebug()
#define list_empty_nodebug(h) list_empty(h)
list_empty_nocheck ()
bool
list_empty_nocheck (const struct list_head *h
);
list_del()
#define list_del(n) list_del_(n, LIST_LOC)
list_del_ ()
void
list_del_ (struct list_node *n
,
const char *abortstr
);
list_del_init()
#define list_del_init(n) list_del_init_(n, LIST_LOC)
list_del_init_ ()
void
list_del_init_ (struct list_node *n
,
const char *abortstr
);
list_del_from ()
void
list_del_from (struct list_head *h
,
struct list_node *n
);
Example:
list_del_init(&child->list);
parent->num_children--;
[), list_del(]
list_swap()
#define list_swap(o, n) list_swap_(o, n, LIST_LOC)
list_swap_ ()
void
list_swap_ (struct list_node *o
,
struct list_node *n
,
const char *abortstr
);
list_entry()
#define list_entry(n, type, member) container_of(n, type, member)
list_top()
#define list_top(h, type, member)
list_top_ ()
const void *
list_top_ (const struct list_head *h
,
size_t off
);
list_pop()
#define list_pop(h, type, member)
list_pop_ ()
const void *
list_pop_ (const struct list_head *h
,
size_t off
);
list_tail()
#define list_tail(h, type, member)
list_tail_ ()
const void *
list_tail_ (const struct list_head *h
,
size_t off
);
list_for_each()
#define list_for_each(h, i, member)
list_for_each_rev()
#define list_for_each_rev(h, i, member)
list_for_each_rev_safe()
#define list_for_each_rev_safe(h, i, nxt, member)
list_for_each_safe()
#define list_for_each_safe(h, i, nxt, member)
list_next()
#define list_next(h, i, member)
list_prev()
#define list_prev(h, i, member)
list_append_list()
#define list_append_list(t, f)
list_append_list_ ()
void
list_append_list_ (struct list_head *to
,
struct list_head *from
,
const char *abortstr
);
list_prepend_list()
#define list_prepend_list(t, f) list_prepend_list_(t, f, LIST_LOC)
list_prepend_list_ ()
void
list_prepend_list_ (struct list_head *to
,
struct list_head *from
,
const char *abortstr
);
list_for_each_off_dir_()
#define list_for_each_off_dir_(h, i, off, dir)
list_for_each_safe_off_dir_()
#define list_for_each_safe_off_dir_(h, i, nxt, off, dir)
list_for_each_off()
#define list_for_each_off(h, i, off)
list_for_each_rev_off()
#define list_for_each_rev_off(h, i, off)
list_for_each_safe_off()
#define list_for_each_safe_off(h, i, nxt, off)
list_for_each_rev_safe_off()
#define list_for_each_rev_safe_off(h, i, nxt, off)
list_entry_off()
#define list_entry_off(n, type, off)
list_head_off()
#define list_head_off(h, type, off)
list_tail_off()
#define list_tail_off(h, type, off)
list_add_off()
#define list_add_off(h, n, off)
list_del_off()
#define list_del_off(n, off)
list_del_from_off()
#define list_del_from_off(h, n, off)
list_node_to_off_ ()
void *
list_node_to_off_ (struct list_node *node
,
size_t off
);
list_node_from_off_ ()
struct list_node *
list_node_from_off_ (void *ptr
,
size_t off
);
list_off_()
#define list_off_(type, member)
list_off_var_()
#define list_off_var_(var, member)
list_typeof()
#define list_typeof(var) typeof(var)
list_entry_or_null ()
void *
list_entry_or_null (const struct list_head *h
,
const struct list_node *n
,
size_t off
);