Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7fe1e133 authored by David Woodhouse's avatar David Woodhouse
Browse files

[RBTREE] Add accessor macros for colour and parent fields of rb_node



This is in preparation for merging those fields into a single
'unsigned long', because using a whole machine-word for a single bit
of colour information is wasteful.

Signed-off-by: default avatarDavid Woodhouse <dwmw2@infradead.org>
parent f4ffaa45
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -107,6 +107,15 @@ struct rb_node
	struct rb_node *rb_left;
};

#define rb_parent(r)		((r)->rb_parent)
#define rb_set_parent(r,p)	do { (r)->rb_parent = p; } while (0)
#define rb_colour(r)		((r)->rb_colour)
#define rb_is_red(r)		((r)->colour == RB_RED)
#define rb_is_black(r)		((r)->colour == RB_BLACK)
#define rb_set_red(r)		do { (r)->colour = RB_RED; } while (0)
#define rb_set_black(r)		do { (r)->colour = RB_BLACK; } while (0)
#define rb_set_colour(r,c)	do { (r)->colour = (c); } while (0)

struct rb_root
{
	struct rb_node *rb_node;