netfilter
firewalling, NAT, and packet mangling for linux
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
list.h File Reference
This graph shows which files directly or indirectly include this file:

Data Structures

struct  nl_list_head
 

Macros

#define nl_container_of(ptr, type, member)
 
#define nl_list_entry(ptr, type, member)   nl_container_of(ptr, type, member)
 
#define nl_list_at_tail(pos, head, member)   ((pos)->member.next == (head))
 
#define nl_list_at_head(pos, head, member)   ((pos)->member.prev == (head))
 
#define NL_LIST_HEAD(name)   struct nl_list_head name = { &(name), &(name) }
 
#define nl_list_first_entry(head, type, member)   nl_list_entry((head)->next, type, member)
 
#define nl_list_for_each_entry(pos, head, member)
 
#define nl_list_for_each_entry_safe(pos, n, head, member)
 
#define nl_list_prepare_entry(pos, head, member)   ((pos) ? : nl_list_entry(head, typeof(*pos), member))
 
#define nl_list_for_each_entry_continue(pos, head, member)
 
#define nl_init_list_head(head)   do { (head)->next = (head); (head)->prev = (head); } while (0)
 

Macro Definition Documentation

#define nl_container_of (   ptr,
  type,
  member 
)
Value:
({ \
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
(type *)( (char *)__mptr - ((size_t) &((type *)0)->member));})
struct expr
#define nl_init_list_head (   head)    do { (head)->next = (head); (head)->prev = (head); } while (0)
#define nl_list_at_head (   pos,
  head,
  member 
)    ((pos)->member.prev == (head))

Referenced by nl_cache_get_prev().

#define nl_list_at_tail (   pos,
  head,
  member 
)    ((pos)->member.next == (head))

Referenced by nl_cache_get_next().

#define nl_list_entry (   ptr,
  type,
  member 
)    nl_container_of(ptr, type, member)
#define nl_list_first_entry (   head,
  type,
  member 
)    nl_list_entry((head)->next, type, member)

Referenced by rtnl_route_parse().

#define nl_list_for_each_entry_continue (   pos,
  head,
  member 
)
Value:
for (pos = nl_list_entry(pos->member.next, typeof(*pos), member); \
&(pos)->member != (head); \
pos = nl_list_entry(pos->member.next, typeof(*pos), member))
u8 pos
Definition: ip_set_hash_gen.h:187
#define nl_list_for_each_entry_safe (   pos,
  n,
  head,
  member 
)
Value:
for (pos = nl_list_entry((head)->next, typeof(*pos), member), \
n = nl_list_entry(pos->member.next, typeof(*pos), member); \
&(pos)->member != (head); \
pos = n, n = nl_list_entry(n->member.next, typeof(*n), member))
u8 pos
Definition: ip_set_hash_gen.h:187

Referenced by nl_cache_clear(), nl_cache_foreach_filter(), and nl_cache_resync().

#define NL_LIST_HEAD (   name)    struct nl_list_head name = { &(name), &(name) }
#define nl_list_prepare_entry (   pos,
  head,
  member 
)    ((pos) ? : nl_list_entry(head, typeof(*pos), member))