Lines Matching refs:parent

325 #define RB_SET(elm, parent, field) do {					\  argument
326 RB_PARENT(elm, field) = parent; \
408 struct type *parent, *gparent, *tmp; \
409 while ((parent = RB_PARENT(elm, field)) != NULL && \
410 RB_COLOR(parent, field) == RB_RED) { \
411 gparent = RB_PARENT(parent, field); \
412 if (parent == RB_LEFT(gparent, field)) { \
416 RB_SET_BLACKRED(parent, gparent, field);\
420 if (RB_RIGHT(parent, field) == elm) { \
421 RB_ROTATE_LEFT(head, parent, tmp, field);\
422 tmp = parent; \
423 parent = elm; \
426 RB_SET_BLACKRED(parent, gparent, field); \
432 RB_SET_BLACKRED(parent, gparent, field);\
436 if (RB_LEFT(parent, field) == elm) { \
437 RB_ROTATE_RIGHT(head, parent, tmp, field);\
438 tmp = parent; \
439 parent = elm; \
442 RB_SET_BLACKRED(parent, gparent, field); \
450 name##_RB_REMOVE_COLOR(struct name *head, struct type *parent, struct type *elm) \
455 if (RB_LEFT(parent, field) == elm) { \
456 tmp = RB_RIGHT(parent, field); \
458 RB_SET_BLACKRED(tmp, parent, field); \
459 RB_ROTATE_LEFT(head, parent, tmp, field);\
460 tmp = RB_RIGHT(parent, field); \
467 elm = parent; \
468 parent = RB_PARENT(elm, field); \
478 tmp = RB_RIGHT(parent, field); \
480 RB_COLOR(tmp, field) = RB_COLOR(parent, field);\
481 RB_COLOR(parent, field) = RB_BLACK; \
484 RB_ROTATE_LEFT(head, parent, tmp, field);\
489 tmp = RB_LEFT(parent, field); \
491 RB_SET_BLACKRED(tmp, parent, field); \
492 RB_ROTATE_RIGHT(head, parent, tmp, field);\
493 tmp = RB_LEFT(parent, field); \
500 elm = parent; \
501 parent = RB_PARENT(elm, field); \
511 tmp = RB_LEFT(parent, field); \
513 RB_COLOR(tmp, field) = RB_COLOR(parent, field);\
514 RB_COLOR(parent, field) = RB_BLACK; \
517 RB_ROTATE_RIGHT(head, parent, tmp, field);\
530 struct type *child, *parent, *old = elm; \
542 parent = RB_PARENT(elm, field); \
545 RB_PARENT(child, field) = parent; \
546 if (parent) { \
547 if (RB_LEFT(parent, field) == elm) \
548 RB_LEFT(parent, field) = child; \
550 RB_RIGHT(parent, field) = child; \
551 RB_AUGMENT(parent); \
555 parent = elm; \
568 if (parent) { \
569 left = parent; \
576 parent = RB_PARENT(elm, field); \
579 RB_PARENT(child, field) = parent; \
580 if (parent) { \
581 if (RB_LEFT(parent, field) == elm) \
582 RB_LEFT(parent, field) = child; \
584 RB_RIGHT(parent, field) = child; \
585 RB_AUGMENT(parent); \
590 name##_RB_REMOVE_COLOR(head, parent, child); \
599 struct type *parent = NULL; \
603 parent = tmp; \
604 comp = (cmp)(elm, parent); \
612 RB_SET(elm, parent, field); \
613 if (parent != NULL) { \
615 RB_LEFT(parent, field) = elm; \
617 RB_RIGHT(parent, field) = elm; \
618 RB_AUGMENT(parent); \
712 struct type *parent = NULL; \
714 parent = tmp; \
720 return (parent); \