Lines Matching refs:name
26 #define LIST_HEAD(t,name) \
27 t *name
30 #define LIST_FIELDS(t,name) \
31 t *name##_next, *name##_prev
40 #define LIST_INIT(name,item) \
44 _item->name##_prev = _item->name##_next = NULL; \
48 #define LIST_PREPEND(name,head,item) \
52 if ((_item->name##_next = *_head)) \
53 _item->name##_next->name##_prev = _item; \
54 _item->name##_prev = NULL; \
59 #define LIST_REMOVE(name,head,item) \
63 if (_item->name##_next) \
64 _item->name##_next->name##_prev = _item->name##_prev; \
65 if (_item->name##_prev) \
66 _item->name##_prev->name##_next = _item->name##_next; \
69 *_head = _item->name##_next; \
71 _item->name##_next = _item->name##_prev = NULL; \
75 #define LIST_FIND_HEAD(name,item,head) \
81 while (_item->name##_prev) \
82 _item = _item->name##_prev; \
88 #define LIST_FIND_TAIL(name,item,tail) \
94 while (_item->name##_next) \
95 _item = _item->name##_next; \
101 #define LIST_INSERT_AFTER(name,head,a,b) \
106 if ((_b->name##_next = *_head)) \
107 _b->name##_next->name##_prev = _b; \
108 _b->name##_prev = NULL; \
111 if ((_b->name##_next = _a->name##_next)) \
112 _b->name##_next->name##_prev = _b; \
113 _b->name##_prev = _a; \
114 _a->name##_next = _b; \
118 #define LIST_JUST_US(name,item) \
119 (!(item)->name##_prev && !(item)->name##_next) \
121 #define LIST_FOREACH(name,i,head) \
122 for ((i) = (head); (i); (i) = (i)->name##_next)
124 #define LIST_FOREACH_SAFE(name,i,n,head) \
125 for ((i) = (head); (i) && (((n) = (i)->name##_next), 1); (i) = (n))
127 #define LIST_FOREACH_BEFORE(name,i,p) \
128 for ((i) = (p)->name##_prev; (i); (i) = (i)->name##_prev)
130 #define LIST_FOREACH_AFTER(name,i,p) \
131 for ((i) = (p)->name##_next; (i); (i) = (i)->name##_next)
135 #define LIST_LOOP_BUT_ONE(name,i,head,p) \
136 for ((i) = (p)->name##_next ? (p)->name##_next : (head); \
138 (i) = (i)->name##_next ? (i)->name##_next : (head))