VSF Documented
|
#include <linux/types.h>
Go to the source code of this file.
Data Structures | |
struct | list_head |
Macros | |
#define | LIST_HEAD_INIT(__NAME) { &(__NAME), &(__NAME) } |
#define | LIST_HEAD(__NAME) struct list_head __NAME = LIST_HEAD_INIT(__NAME) |
#define | list_entry(ptr, type, member) vsf_container_of(ptr, type, member) |
#define | list_first_entry(ptr, type, member) list_entry((ptr)->next, type, member) |
#define | list_last_entry(ptr, type, member) list_entry((ptr)->prev, type, member) |
#define | list_next_entry(pos, member) list_entry((pos)->member.next, typeof(*(pos)), member) |
#define | list_next_entry_circular(pos, head, member) (list_is_last(&(pos)->member, head) ? list_first_entry(head, typeof(*(pos)), member) : list_next_entry(pos, member)) |
#define | list_prev_entry(pos, member) list_entry((pos)->member.prev, typeof(*(pos)), member) |
#define | list_prev_entry_circular(pos, head, member) (list_is_first(&(pos)->member, head) ? list_last_entry(head, typeof(*(pos)), member) : list_prev_entry(pos, member)) |
#define | list_first_entry_or_null(ptr, type, member) |
#define | list_entry_is_head(pos, head, member) (&pos->member == (head)) |
#define | list_prepare_entry(pos, head, member) ((pos) ? : list_entry(head, typeof(*pos), member)) |
#define | list_for_each(pos, head) for (pos = (head)->next; !list_is_head(pos, (head)); pos = pos->next) |
#define | list_for_each_continue(pos, head) for (pos = pos->next; !list_is_head(pos, (head)); pos = pos->next) |
#define | list_for_each_prev(pos, head) for (pos = (head)->prev; !list_is_head(pos, (head)); pos = pos->prev) |
#define | list_for_each_safe(pos, n, head) for (pos = (head)->next, n = pos->next; !list_is_head(pos, (head)); pos = n, n = pos->next) |
#define | list_for_each_prev_safe(pos, n, head) for (pos = (head)->prev, n = pos->prev; !list_is_head(pos, (head)); pos = n, n = pos->prev) |
#define | list_for_each_entry(pos, head, member) |
#define | list_for_each_entry_reverse(pos, head, member) |
#define | list_for_each_entry_continue(pos, head, member) |
#define | list_for_each_entry_continue_reverse(pos, head, member) |
#define | list_for_each_entry_from(pos, head, member) for (; !list_entry_is_head(pos, head, member); pos = list_next_entry(pos, member)) |
#define | list_for_each_entry_from_reverse(pos, head, member) for (; !list_entry_is_head(pos, head, member); pos = list_prev_entry(pos, member)) |
#define | list_for_each_entry_safe(pos, n, head, member) |
#define | list_for_each_entry_safe_continue(pos, n, head, member) |
#define | list_for_each_entry_safe_from(pos, n, head, member) |
#define | list_for_each_entry_safe_reverse(pos, n, head, member) |
#define LIST_HEAD_INIT | ( | __NAME | ) | { &(__NAME), &(__NAME) } |
#define LIST_HEAD | ( | __NAME | ) | struct list_head __NAME = LIST_HEAD_INIT(__NAME) |
#define list_entry | ( | ptr, | |
type, | |||
member | |||
) | vsf_container_of(ptr, type, member) |
#define list_first_entry | ( | ptr, | |
type, | |||
member | |||
) | list_entry((ptr)->next, type, member) |
#define list_last_entry | ( | ptr, | |
type, | |||
member | |||
) | list_entry((ptr)->prev, type, member) |
#define list_next_entry | ( | pos, | |
member | |||
) | list_entry((pos)->member.next, typeof(*(pos)), member) |
#define list_next_entry_circular | ( | pos, | |
head, | |||
member | |||
) | (list_is_last(&(pos)->member, head) ? list_first_entry(head, typeof(*(pos)), member) : list_next_entry(pos, member)) |
#define list_prev_entry | ( | pos, | |
member | |||
) | list_entry((pos)->member.prev, typeof(*(pos)), member) |
#define list_prev_entry_circular | ( | pos, | |
head, | |||
member | |||
) | (list_is_first(&(pos)->member, head) ? list_last_entry(head, typeof(*(pos)), member) : list_prev_entry(pos, member)) |
#define list_first_entry_or_null | ( | ptr, | |
type, | |||
member | |||
) |
#define list_prepare_entry | ( | pos, | |
head, | |||
member | |||
) | ((pos) ? : list_entry(head, typeof(*pos), member)) |
#define list_for_each | ( | pos, | |
head | |||
) | for (pos = (head)->next; !list_is_head(pos, (head)); pos = pos->next) |
#define list_for_each_continue | ( | pos, | |
head | |||
) | for (pos = pos->next; !list_is_head(pos, (head)); pos = pos->next) |
#define list_for_each_prev | ( | pos, | |
head | |||
) | for (pos = (head)->prev; !list_is_head(pos, (head)); pos = pos->prev) |
#define list_for_each_safe | ( | pos, | |
n, | |||
head | |||
) | for (pos = (head)->next, n = pos->next; !list_is_head(pos, (head)); pos = n, n = pos->next) |
#define list_for_each_prev_safe | ( | pos, | |
n, | |||
head | |||
) | for (pos = (head)->prev, n = pos->prev; !list_is_head(pos, (head)); pos = n, n = pos->prev) |
#define list_for_each_entry | ( | pos, | |
head, | |||
member | |||
) |
#define list_for_each_entry_reverse | ( | pos, | |
head, | |||
member | |||
) |
#define list_for_each_entry_continue | ( | pos, | |
head, | |||
member | |||
) |
#define list_for_each_entry_continue_reverse | ( | pos, | |
head, | |||
member | |||
) |
#define list_for_each_entry_from | ( | pos, | |
head, | |||
member | |||
) | for (; !list_entry_is_head(pos, head, member); pos = list_next_entry(pos, member)) |
#define list_for_each_entry_from_reverse | ( | pos, | |
head, | |||
member | |||
) | for (; !list_entry_is_head(pos, head, member); pos = list_prev_entry(pos, member)) |
#define list_for_each_entry_safe | ( | pos, | |
n, | |||
head, | |||
member | |||
) |
#define list_for_each_entry_safe_continue | ( | pos, | |
n, | |||
head, | |||
member | |||
) |
#define list_for_each_entry_safe_from | ( | pos, | |
n, | |||
head, | |||
member | |||
) |
#define list_for_each_entry_safe_reverse | ( | pos, | |
n, | |||
head, | |||
member | |||
) |