26#ifndef _KERN_RBTREE_I_H
27#define _KERN_RBTREE_I_H
65#define STARPU_RBTREE_COLOR_MASK ((uintptr_t) 0x1)
66#define STARPU_RBTREE_PARENT_MASK (~((uintptr_t) 0x3))
71#define STARPU_RBTREE_COLOR_RED 0
72#define STARPU_RBTREE_COLOR_BLACK 1
78#define STARPU_RBTREE_SLOT_INDEX_MASK ((uintptr_t) 0x1)
79#define STARPU_RBTREE_SLOT_PARENT_MASK (~STARPU_RBTREE_SLOT_INDEX_MASK)
86 return ((uintptr_t)node & (~STARPU_RBTREE_PARENT_MASK)) == 0;
94 return index == (index & 1);
123 return (uintptr_t)parent | index;
struct starpu_rbtree_node * starpu_rbtree_postwalk_deepest(const struct starpu_rbtree *tree)
static int starpu_rbtree_check_index(int index)
Definition rbtree_i.h:92
static int starpu_rbtree_slot_index(uintptr_t slot)
Definition rbtree_i.h:137
static struct starpu_rbtree_node * starpu_rbtree_slot_parent(uintptr_t slot)
Definition rbtree_i.h:129
struct starpu_rbtree_node * starpu_rbtree_walk(struct starpu_rbtree_node *node, int direction)
struct starpu_rbtree_node * starpu_rbtree_nearest(struct starpu_rbtree_node *parent, int index, int direction)
static int starpu_rbtree_d2i(int diff)
Definition rbtree_i.h:103
static uintptr_t starpu_rbtree_slot(struct starpu_rbtree_node *parent, int index)
Definition rbtree_i.h:119
static int starpu_rbtree_check_alignment(const struct starpu_rbtree_node *node)
Definition rbtree_i.h:84
void starpu_rbtree_insert_rebalance(struct starpu_rbtree *tree, struct starpu_rbtree_node *parent, int index, struct starpu_rbtree_node *node)
static struct starpu_rbtree_node * starpu_rbtree_parent(const struct starpu_rbtree_node *node)
Definition rbtree_i.h:111
struct starpu_rbtree_node * starpu_rbtree_firstlast(const struct starpu_rbtree *tree, int direction)
#define STARPU_RBTREE_SLOT_INDEX_MASK
Definition rbtree_i.h:78
struct starpu_rbtree_node * starpu_rbtree_postwalk_unlink(struct starpu_rbtree_node *node)