• Home
  • Raw
  • Download

Lines Matching refs:head

64 #define LL_PREPEND(head, add)                                                  \  argument
66 (add)->next = head; \
67 head = add; \
82 #define LL_APPEND(head, add) \ argument
84 __typeof(head) _tmp; \
86 if (head) { \
87 _tmp = head; \
92 (head) = (add); \
96 #define LL_DELETE(head, del) \ argument
98 __typeof(head) _tmp; \
99 if ((head) == (del)) \
100 (head) = (head)->next; \
102 _tmp = head; \
110 #define LL_FOREACH(head, el) for (el = head; el; el = el->next) argument
112 #define LL_FOREACH_SAFE(head, el, tmp) \ argument
113 for ((el) = (head); (el) && (tmp = (el)->next, 1); (el) = tmp)
115 #define LL_SEARCH_SCALAR(head, out, field, val) \ argument
117 LL_FOREACH (head, out) \
122 #define LL_SEARCH_SCALAR_WITH_CAST(head, out, nout, field, val) \ argument
124 LL_FOREACH (head, out) { \
132 #define LL_SEARCH(head, out, elt, cmp) \ argument
134 LL_FOREACH (head, out) \
142 #define DL_PREPEND(head, add) \ argument
144 (add)->next = head; \
145 if (head) { \
146 (add)->prev = (head)->prev; \
147 (head)->prev = (add); \
150 (head) = (add); \
153 #define DL_APPEND(head, add) \ argument
155 if (head) { \
156 (add)->prev = (head)->prev; \
157 (head)->prev->next = (add); \
158 (head)->prev = (add); \
161 (head) = (add); \
162 (head)->prev = (head); \
163 (head)->next = NULL; \
167 #define DL_INSERT(head, next_node, add) \ argument
169 if (head == next_node) \
170 DL_PREPEND(head, add); \
172 DL_APPEND(head, add); \
195 #define DL_DELETE(head, del) \ argument
197 assert((head) != NULL); \
200 (head) = NULL; \
201 } else if ((del) == (head)) { \
203 (head) = (del)->next; \
209 (head)->prev = (del)->prev; \
220 #define DL_FOREACH(head, el) \ argument
221 DL_FOREACH_INTERNAL (head, el, MAKE_NAME(_dl_foreach_))
222 #define DL_FOREACH_INTERNAL(head, el, tmp) \ argument
224 for ((el) = (head); (el) && (tmp = (el)->next, 1); (el) = tmp)