|
| #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) 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_prev_entry(pos, member) list_entry((pos)->member.prev, typeof(*(pos)), member) |
| |
| #define | list_entry_or_null(ptr, type, member) |
| |
| #define | list_first_entry_or_null(ptr, type, member) list_entry_or_null(ptr, type, member) |
| |
| #define | list_last_entry_or_null(ptr, type, member) |
| |
| #define | list_for_each(pos, head) for (pos = (head)->next; pos != (head); pos = pos->next) |
| |
| #define | list_for_each_safe(pos, n, head) |
| |
| #define | list_for_each_entry(pos, head, member) |
| |
| #define | list_for_each_entry_safe(pos, n, head, member) |
| |
| #define | list_for_each_entry_reverse(pos, head, member) |
| |
| #define | list_entry_is_head(pos, head, member) (&(pos)->member == (head)) |
| |
| #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) |
| |
| #define | list_for_each_entry_from_reverse(pos, head, member) |
| |
| #define | list_add(new, head) _Generic((head), struct list_head*: linux_list_add, default: list_add)((new), (head)) |
| |