VSF Documented
list.h File Reference
#include <linux/types.h>

Go to the source code of this file.

Data Structures

struct  list_head
 

Macros

#define LIST_HEAD_INIT(__NAME)
 
#define LIST_HEAD(__NAME)
 
#define list_entry(ptr, type, member)
 
#define list_first_entry(ptr, type, member)
 
#define list_last_entry(ptr, type, member)
 
#define list_next_entry(pos, member)
 
#define list_next_entry_circular(pos, head, member)
 
#define list_prev_entry(pos, member)
 
#define list_prev_entry_circular(pos, head, member)
 
#define list_first_entry_or_null(ptr, type, member)
 
#define list_entry_is_head(pos, head, member)
 
#define list_prepare_entry(pos, head, member)
 
#define list_for_each(pos, head)
 
#define list_for_each_continue(pos, head)
 
#define list_for_each_prev(pos, head)
 
#define list_for_each_safe(pos, n, head)
 
#define list_for_each_prev_safe(pos, n, head)
 
#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)
 
#define list_for_each_entry_from_reverse(pos, head, 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)
 

Macro Definition Documentation

◆ LIST_HEAD_INIT

#define LIST_HEAD_INIT ( __NAME)
Value:
{ &(__NAME), &(__NAME) }

◆ LIST_HEAD

#define LIST_HEAD ( __NAME)
Value:
struct list_head __NAME = LIST_HEAD_INIT(__NAME)
#define LIST_HEAD_INIT(__NAME)
Definition list.h:10
Definition list.h:77

◆ list_entry

#define list_entry ( ptr,
type,
member )
Value:
vsf_container_of(ptr, type, member)
#define vsf_container_of(__ptr, __type, __member)
Definition __type.h:164
vk_av_control_type_t type
Definition vsf_audio.h:170

◆ list_first_entry

#define list_first_entry ( ptr,
type,
member )
Value:
list_entry((ptr)->next, type, member)
#define list_entry(ptr, type, member)
Definition list.h:13
vsf_msgt_node_offset_t next
Definition vsf_msg_tree.h:192

◆ list_last_entry

#define list_last_entry ( ptr,
type,
member )
Value:
list_entry((ptr)->prev, type, member)

◆ list_next_entry

#define list_next_entry ( pos,
member )
Value:
list_entry((pos)->member.next, typeof(*(pos)), member)

◆ list_next_entry_circular

#define list_next_entry_circular ( pos,
head,
member )
Value:
(list_is_last(&(pos)->member, head) ? list_first_entry(head, typeof(*(pos)), member) : list_next_entry(pos, member))
struct esp_netif_obj * head
Definition esp_netif_port.c:117
#define list_first_entry(ptr, type, member)
Definition list.h:14
#define list_next_entry(pos, member)
Definition list.h:16

◆ list_prev_entry

#define list_prev_entry ( pos,
member )
Value:
list_entry((pos)->member.prev, typeof(*(pos)), member)

◆ list_prev_entry_circular

#define list_prev_entry_circular ( pos,
head,
member )
Value:
(list_is_first(&(pos)->member, head) ? list_last_entry(head, typeof(*(pos)), member) : list_prev_entry(pos, member))
#define list_last_entry(ptr, type, member)
Definition list.h:15
#define list_prev_entry(pos, member)
Definition list.h:19

◆ list_first_entry_or_null

#define list_first_entry_or_null ( ptr,
type,
member )
Value:
({ \
struct list_head *head__ = (ptr); \
struct list_head *pos__ = READ_ONCE(head__->next); \
pos__ != head__ ? list_entry(pos__, type, member) : NULL; \
})
#define NULL
Definition lvgl.h:26
struct list_head * next
Definition list.h:78

◆ list_entry_is_head

#define list_entry_is_head ( pos,
head,
member )
Value:
(&pos->member == (head))

◆ list_prepare_entry

#define list_prepare_entry ( pos,
head,
member )
Value:
((pos) ? : list_entry(head, typeof(*pos), member))

◆ list_for_each

#define list_for_each ( pos,
head )
Value:
for (pos = (head)->next; !list_is_head(pos, (head)); pos = pos->next)

◆ list_for_each_continue

#define list_for_each_continue ( pos,
head )
Value:
for (pos = pos->next; !list_is_head(pos, (head)); pos = pos->next)

◆ list_for_each_prev

#define list_for_each_prev ( pos,
head )
Value:
for (pos = (head)->prev; !list_is_head(pos, (head)); pos = pos->prev)

◆ list_for_each_safe

#define list_for_each_safe ( pos,
n,
head )
Value:
for (pos = (head)->next, n = pos->next; !list_is_head(pos, (head)); pos = n, n = pos->next)

◆ list_for_each_prev_safe

#define list_for_each_prev_safe ( pos,
n,
head )
Value:
for (pos = (head)->prev, n = pos->prev; !list_is_head(pos, (head)); pos = n, n = pos->prev)

◆ list_for_each_entry

#define list_for_each_entry ( pos,
head,
member )
Value:
for (pos = list_first_entry(head, typeof(*pos), member); \
!list_entry_is_head(pos, head, member); \
pos = list_next_entry(pos, member))
#define list_entry_is_head(pos, head, member)
Definition list.h:27

◆ list_for_each_entry_reverse

#define list_for_each_entry_reverse ( pos,
head,
member )
Value:
for (pos = list_last_entry(head, typeof(*pos), member); \
!list_entry_is_head(pos, head, member); \
pos = list_prev_entry(pos, member))

◆ list_for_each_entry_continue

#define list_for_each_entry_continue ( pos,
head,
member )
Value:
for (pos = list_next_entry(pos, member); \
!list_entry_is_head(pos, head, member); \
pos = list_next_entry(pos, member))

◆ list_for_each_entry_continue_reverse

#define list_for_each_entry_continue_reverse ( pos,
head,
member )
Value:
for (pos = list_prev_entry(pos, member); \
!list_entry_is_head(pos, head, member); \
pos = list_prev_entry(pos, member))

◆ list_for_each_entry_from

#define list_for_each_entry_from ( pos,
head,
member )
Value:
for (; !list_entry_is_head(pos, head, member); pos = list_next_entry(pos, member))

◆ list_for_each_entry_from_reverse

#define list_for_each_entry_from_reverse ( pos,
head,
member )
Value:
for (; !list_entry_is_head(pos, head, member); pos = list_prev_entry(pos, member))

◆ list_for_each_entry_safe

#define list_for_each_entry_safe ( pos,
n,
head,
member )
Value:
for (pos = list_first_entry(head, typeof(*pos), member), \
n = list_next_entry(pos, member); \
!list_entry_is_head(pos, head, member); \
pos = n, n = list_next_entry(n, member))

◆ list_for_each_entry_safe_continue

#define list_for_each_entry_safe_continue ( pos,
n,
head,
member )
Value:
for (pos = list_next_entry(pos, member), n = list_next_entry(pos, member); \
!list_entry_is_head(pos, head, member); \
pos = n, n = list_next_entry(n, member))

◆ list_for_each_entry_safe_from

#define list_for_each_entry_safe_from ( pos,
n,
head,
member )
Value:
for (n = list_next_entry(pos, member); \
!list_entry_is_head(pos, head, member); \
pos = n, n = list_next_entry(n, member))

◆ list_for_each_entry_safe_reverse

#define list_for_each_entry_safe_reverse ( pos,
n,
head,
member )
Value:
for (pos = list_last_entry(head, typeof(*pos), member), \
n = list_prev_entry(pos, member); \
!list_entry_is_head(pos, head, member); \
pos = n, n = list_prev_entry(n, member))
Generated from commit: vsfteam/vsf@ceb53fd