Lines Matching defs:link

13  * The name of the next link field is passed as an argument to allow
14 * membership in several lists at once using multiple next link fields.
16 * When possible, placing the link field first in the entry structure
100 * because both link chains are circular. The beginning/end is marked
118 * an entry's link pointer when it is unlinked, as the stale pointer
253 * begins with the link pointer
257 gen_node * link;
355 #define DECL_DLIST_LINK(entrytype, link) \
359 } link
361 #define INIT_DLIST(listhead, link) \
363 (listhead).link.f = &(listhead); \
364 (listhead).link.b = &(listhead); \
367 #define HEAD_DLIST(listhead, link) \
369 (&(listhead) != (listhead).link.f) \
370 ? (listhead).link.f \
374 #define TAIL_DLIST(listhead, link) \
376 (&(listhead) != (listhead).link.b) \
377 ? (listhead).link.b \
381 #define NEXT_DLIST(listhead, entry, link) \
383 (&(listhead) != (entry)->link.f) \
384 ? (entry)->link.f \
388 #define PREV_DLIST(listhead, entry, link) \
390 (&(listhead) != (entry)->link.b) \
391 ? (entry)->link.b \
395 #define LINK_DLIST(listhead, pentry, link) \
397 (pentry)->link.f = (listhead).link.f; \
398 (pentry)->link.b = &(listhead); \
399 (listhead).link.f->link.b = (pentry); \
400 (listhead).link.f = (pentry); \
403 #define LINK_TAIL_DLIST(listhead, pentry, link) \
405 (pentry)->link.b = (listhead).link.b; \
406 (pentry)->link.f = &(listhead); \
407 (listhead).link.b->link.f = (pentry); \
408 (listhead).link.b = (pentry); \
411 #define UNLINK_DLIST(ptounlink, link) \
413 (ptounlink)->link.b->link.f = (ptounlink)->link.f; \
414 (ptounlink)->link.f->link.b = (ptounlink)->link.b; \
415 MAYBE_Z_LISTS((ptounlink)->link.b); \
416 MAYBE_Z_LISTS((ptounlink)->link.f); \
419 #define ITER_DLIST_BEGIN(listhead, iter, link, entrytype) \
423 for ((iter) = (listhead).link.f; \
425 && ((i_dl_nextiter = (iter)->link.f), TRUE); \
431 #define REV_ITER_DLIST_BEGIN(listhead, iter, link, entrytype) \
435 for ((iter) = (listhead).link.b; \
437 && ((i_dl_nextiter = (iter)->link.b), TRUE); \