Lines Matching refs: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
255 * begins with the link pointer
259 gen_node * link;
357 #define DECL_DLIST_LINK(entrytype, link) \
361 } link
363 #define INIT_DLIST(listhead, link) \
365 (listhead).link.f = &(listhead); \
366 (listhead).link.b = &(listhead); \
369 #define HEAD_DLIST(listhead, link) \
371 (&(listhead) != (listhead).link.f) \
372 ? (listhead).link.f \
376 #define TAIL_DLIST(listhead, link) \
378 (&(listhead) != (listhead).link.b) \
379 ? (listhead).link.b \
383 #define NEXT_DLIST(listhead, entry, link) \
385 (&(listhead) != (entry)->link.f) \
386 ? (entry)->link.f \
390 #define PREV_DLIST(listhead, entry, link) \
392 (&(listhead) != (entry)->link.b) \
393 ? (entry)->link.b \
397 #define LINK_DLIST(listhead, pentry, link) \
399 (pentry)->link.f = (listhead).link.f; \
400 (pentry)->link.b = &(listhead); \
401 (listhead).link.f->link.b = (pentry); \
402 (listhead).link.f = (pentry); \
405 #define LINK_TAIL_DLIST(listhead, pentry, link) \
407 (pentry)->link.b = (listhead).link.b; \
408 (pentry)->link.f = &(listhead); \
409 (listhead).link.b->link.f = (pentry); \
410 (listhead).link.b = (pentry); \
413 #define UNLINK_DLIST(ptounlink, link) \
415 (ptounlink)->link.b->link.f = (ptounlink)->link.f; \
416 (ptounlink)->link.f->link.b = (ptounlink)->link.b; \
417 MAYBE_Z_LISTS((ptounlink)->link.b); \
418 MAYBE_Z_LISTS((ptounlink)->link.f); \
421 #define ITER_DLIST_BEGIN(listhead, iter, link, entrytype) \
425 for ((iter) = (listhead).link.f; \
427 && ((i_dl_nextiter = (iter)->link.f), TRUE); \
433 #define REV_ITER_DLIST_BEGIN(listhead, iter, link, entrytype) \
437 for ((iter) = (listhead).link.b; \
439 && ((i_dl_nextiter = (iter)->link.b), TRUE); \