Go to the source code of this file.
Classes | |
struct | dl_list |
Defines | |
#define | dl_list_entry(item, type, member) ((type *) ((char *) item - offsetof(type, member))) |
#define | dl_list_first(list, type, member) |
#define | dl_list_for_each(item, list, type, member) |
#define | dl_list_for_each_safe(item, n, list, type, member) |
Functions | |
static void | dl_list_add (struct dl_list *list, struct dl_list *item) |
static void | dl_list_add_tail (struct dl_list *list, struct dl_list *item) |
static void | dl_list_del (struct dl_list *item) |
static int | dl_list_empty (struct dl_list *list) |
static void | dl_list_init (struct dl_list *list) |
static unsigned int | dl_list_len (struct dl_list *list) |
#define dl_list_entry | ( | item, | |
type, | |||
member | |||
) | ((type *) ((char *) item - offsetof(type, member))) |
#define dl_list_first | ( | list, | |
type, | |||
member | |||
) |
(dl_list_empty((list)) ? NULL : \ dl_list_entry((list)->next, type, member))
#define dl_list_for_each | ( | item, | |
list, | |||
type, | |||
member | |||
) |
for (item = dl_list_entry((list)->next, type, member); \ &item->member != (list); \ item = dl_list_entry(item->member.next, type, member))
#define dl_list_for_each_safe | ( | item, | |
n, | |||
list, | |||
type, | |||
member | |||
) |
for (item = dl_list_entry((list)->next, type, member), \ n = dl_list_entry(item->member.next, type, member); \ &item->member != (list); \ item = n, n = dl_list_entry(n->member.next, type, member))
static void dl_list_add | ( | struct dl_list * | list, |
struct dl_list * | item | ||
) | [inline, static] |
static void dl_list_add_tail | ( | struct dl_list * | list, |
struct dl_list * | item | ||
) | [inline, static] |
static void dl_list_del | ( | struct dl_list * | item | ) | [inline, static] |
static int dl_list_empty | ( | struct dl_list * | list | ) | [inline, static] |
static void dl_list_init | ( | struct dl_list * | list | ) | [inline, static] |
static unsigned int dl_list_len | ( | struct dl_list * | list | ) | [inline, static] |