Lines Matching refs:field

80  *		In the "*foo_t" type, you must have a field of
338 * void queue_enter(q, elt, type, field)
342 * <field> is the chain field in (*<type>)
344 #define queue_enter(head, elt, type, field) \
353 ((type)__prev)->field.next = (queue_entry_t)(elt);\
355 (elt)->field.prev = __prev; \
356 (elt)->field.next = head; \
365 * void queue_enter_first(q, elt, type, field)
369 * <field> is the chain field in (*<type>)
371 #define queue_enter_first(head, elt, type, field) \
380 ((type)__next)->field.prev = (queue_entry_t)(elt);\
382 (elt)->field.next = __next; \
383 (elt)->field.prev = head; \
392 * void queue_insert_before(q, elt, cur, type, field)
397 * <field> is the chain field in (*<type>)
399 #define queue_insert_before(head, elt, cur, type, field) \
404 (elt)->field.next = (head); \
406 (elt)->field.prev = (head); \
409 __prev = (elt)->field.prev = (head)->prev; \
410 ((type)__prev)->field.next = (queue_entry_t)(elt);\
414 (elt)->field.next = (queue_entry_t)(cur); \
417 (elt)->field.prev = (head); \
420 __prev = (elt)->field.prev = (cur)->field.prev; \
421 ((type)__prev)->field.next = (queue_entry_t)(elt);\
423 (cur)->field.prev = (queue_entry_t)(elt); \
432 * void queue_insert_after(q, elt, cur, type, field)
437 * <field> is the chain field in (*<type>)
439 #define queue_insert_after(head, elt, cur, type, field) \
444 (elt)->field.prev = (head); \
446 (elt)->field.next = (head); \
449 __next = (elt)->field.next = (head)->next; \
450 ((type)__next)->field.prev = (queue_entry_t)(elt);\
454 (elt)->field.prev = (queue_entry_t)(cur); \
457 (elt)->field.next = (head); \
460 __next = (elt)->field.next = (cur)->field.next; \
461 ((type)__next)->field.prev = (queue_entry_t)(elt);\
463 (cur)->field.next = (queue_entry_t)(elt); \
473 #define queue_field(head, thing, type, field) \
474 (((head) == (thing)) ? (head) : &((type)(thing))->field)
481 * void queue_remove(q, qe, type, field)
484 #define queue_remove(head, elt, type, field) \
488 __next = (elt)->field.next; \
489 __prev = (elt)->field.prev; \
494 ((type)__next)->field.prev = __prev; \
499 ((type)__prev)->field.next = __next; \
501 (elt)->field.next = NULL; \
502 (elt)->field.prev = NULL; \
511 * queue_remove_first(head, entry, type, field)
514 #define queue_remove_first(head, entry, type, field) \
519 __next = (entry)->field.next; \
524 ((type)(__next))->field.prev = (head); \
527 (entry)->field.next = NULL; \
528 (entry)->field.prev = NULL; \
537 * queue_remove_last(head, entry, type, field)
540 #define queue_remove_last(head, entry, type, field) \
545 __prev = (entry)->field.prev; \
550 ((type)(__prev))->field.next = (head); \
553 (entry)->field.next = NULL; \
554 (entry)->field.prev = NULL; \
560 #define queue_assign(to, from, type, field) \
562 ((type)((from)->prev))->field.next = (to); \
563 ((type)((from)->next))->field.prev = (to); \
572 * queue_new_head(old, new, type, field)
576 * <field> is the chain field in (*<type>)
578 #define queue_new_head(old, new, type, field) \
582 ((type)((new)->next))->field.prev = (new); \
583 ((type)((new)->prev))->field.next = (new); \
596 * queue_iterate(q, elt, type, field)
600 * <field> is the chain field in (*<type>)
602 #define queue_iterate(head, elt, type, field) \
605 (elt) = (type) queue_next(&(elt)->field))