Lines Matching refs:parent

355 #define RB_SET(elm, parent, field) do {					\  argument
356 RB_UP(elm, field) = parent; \
467 struct type *child, *parent; \
468 while ((parent = RB_PARENT(elm, field)) != NULL) { \
469 if (RB_LEFT(parent, field) == elm) { \
470 if (RB_RED_LEFT(parent, field)) { \
471 RB_FLIP_LEFT(parent, field); \
474 RB_FLIP_RIGHT(parent, field); \
475 if (RB_RED_RIGHT(parent, field)) { \
476 elm = parent; \
485 RB_FLIP_LEFT(parent, field); \
488 RB_ROTATE_RIGHT(head, parent, elm, field); \
490 if (RB_RED_RIGHT(parent, field)) { \
491 RB_FLIP_RIGHT(parent, field); \
494 RB_FLIP_LEFT(parent, field); \
495 if (RB_RED_LEFT(parent, field)) { \
496 elm = parent; \
505 RB_FLIP_RIGHT(parent, field); \
508 RB_ROTATE_LEFT(head, parent, elm, field); \
518 struct type *parent, struct type *elm) \
521 if (RB_LEFT(parent, field) == elm && \
522 RB_RIGHT(parent, field) == elm) { \
523 RB_BITS(parent, field) &= ~RB_RED_MASK; \
524 elm = parent; \
525 parent = RB_PARENT(elm, field); \
526 if (parent == NULL) \
530 if (RB_LEFT(parent, field) == elm) { \
531 if (!RB_RED_LEFT(parent, field)) { \
532 RB_FLIP_LEFT(parent, field); \
535 if (RB_RED_RIGHT(parent, field)) { \
536 RB_FLIP_RIGHT(parent, field); \
537 elm = parent; \
540 sib = RB_RIGHT(parent, field); \
543 elm = parent; \
548 RB_FLIP_LEFT(parent, field); \
550 RB_FLIP_LEFT(parent, field); \
555 RB_FLIP_RIGHT(parent, field); \
559 RB_ROTATE_LEFT(head, parent, sib, field); \
561 if (!RB_RED_RIGHT(parent, field)) { \
562 RB_FLIP_RIGHT(parent, field); \
565 if (RB_RED_LEFT(parent, field)) { \
566 RB_FLIP_LEFT(parent, field); \
567 elm = parent; \
570 sib = RB_LEFT(parent, field); \
573 elm = parent; \
578 RB_FLIP_RIGHT(parent, field); \
580 RB_FLIP_RIGHT(parent, field); \
585 RB_FLIP_LEFT(parent, field); \
589 RB_ROTATE_RIGHT(head, parent, sib, field); \
592 } while ((parent = RB_PARENT(elm, field)) != NULL); \
599 struct type *child, *old, *parent, *right; \
602 parent = RB_PARENT(elm, field); \
612 parent = elm = right; \
618 parent = RB_PARENT(elm, field); \
619 RB_LEFT(parent, field) = child; \
627 RB_SET_PARENT(child, parent, field); \
628 if (parent != NULL) \
629 name##_RB_REMOVE_COLOR(head, parent, child); \
630 while (parent != NULL) { \
631 RB_AUGMENT(parent); \
632 parent = RB_PARENT(parent, field); \
643 struct type *parent = NULL; \
647 parent = tmp; \
648 comp = (cmp)(elm, parent); \
656 RB_SET(elm, parent, field); \
657 if (parent == NULL) \
660 RB_LEFT(parent, field) = elm; \
662 RB_RIGHT(parent, field) = elm; \
763 struct type *parent = NULL; \
765 parent = tmp; \
771 return (parent); \