Classes | Defines | Functions | Variables

rbtree.h File Reference

#include <linux/kernel.h>
#include <linux/stddef.h>
Include dependency graph for rbtree.h:
This graph shows which files directly or indirectly include this file:

Classes

struct  rb_node
struct  rb_root

Defines

#define RB_RED   0
#define RB_BLACK   1
#define rb_parent(r)   ((struct rb_node *)((r)->rb_parent_color & ~3))
#define rb_color(r)   ((r)->rb_parent_color & 1)
#define rb_is_red(r)   (!rb_color(r))
#define rb_is_black(r)   rb_color(r)
#define rb_set_red(r)   do { (r)->rb_parent_color &= ~1; } while (0)
#define rb_set_black(r)   do { (r)->rb_parent_color |= 1; } while (0)
#define RB_ROOT   (struct rb_root) { NULL, }
#define rb_entry(ptr, type, member)   container_of(ptr, type, member)
#define RB_EMPTY_ROOT(root)   ((root)->rb_node == NULL)
#define RB_EMPTY_NODE(node)   (rb_parent(node) == node)
#define RB_CLEAR_NODE(node)   (rb_set_parent(node, node))

Functions

struct rb_node __attribute__ ((aligned(sizeof(long))))
void rb_insert_color (struct rb_node *, struct rb_root *)
void rb_erase (struct rb_node *, struct rb_root *)
struct rb_noderb_next (struct rb_node *)
struct rb_noderb_prev (struct rb_node *)
struct rb_noderb_first (struct rb_root *)
struct rb_noderb_last (struct rb_root *)
void rb_replace_node (struct rb_node *victim, struct rb_node *newn, struct rb_root *root)

Variables

unsigned long rb_parent_color
struct rb_noderb_right
struct rb_noderb_left
struct rb_root __attribute__

Define Documentation

#define RB_BLACK   1
#define RB_CLEAR_NODE (   node  )     (rb_set_parent(node, node))
#define rb_color (   r  )     ((r)->rb_parent_color & 1)
#define RB_EMPTY_NODE (   node  )     (rb_parent(node) == node)
#define RB_EMPTY_ROOT (   root  )     ((root)->rb_node == NULL)
#define rb_entry (   ptr,
  type,
  member 
)    container_of(ptr, type, member)
#define rb_is_black (   r  )     rb_color(r)
#define rb_is_red (   r  )     (!rb_color(r))
#define rb_parent (   r  )     ((struct rb_node *)((r)->rb_parent_color & ~3))
#define RB_RED   0
#define RB_ROOT   (struct rb_root) { NULL, }
#define rb_set_black (   r  )     do { (r)->rb_parent_color |= 1; } while (0)
#define rb_set_red (   r  )     do { (r)->rb_parent_color &= ~1; } while (0)

Function Documentation

struct rb_node __attribute__ ( (aligned(sizeof(long)))   ) 
void rb_erase ( struct rb_node ,
struct rb_root  
)

Here is the caller graph for this function:

struct rb_node* rb_first ( struct rb_root  )  [read]

Here is the caller graph for this function:

void rb_insert_color ( struct rb_node ,
struct rb_root  
)
struct rb_node* rb_last ( struct rb_root  )  [read]
struct rb_node* rb_next ( struct rb_node  )  [read]
struct rb_node* rb_prev ( struct rb_node  )  [read]
void rb_replace_node ( struct rb_node victim,
struct rb_node newn,
struct rb_root root 
)

Variable Documentation

struct rb_root __attribute__
struct rb_node* rb_left
unsigned long rb_parent_color
struct rb_node* rb_right