X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=rbtree.h;h=c6cfe4a9384d8041c978d7cef4b31cc587125e65;hp=344bc3495ddbd12548c32ebaf57cd3c6ee7e8be9;hb=53cd4eee737f5d9a37d71ef23b42f74c016fcd2e;hpb=44b5374f4d64a066643afbc91d7f3f03bb0b71f8 diff --git a/rbtree.h b/rbtree.h index 344bc349..c6cfe4a9 100644 --- a/rbtree.h +++ b/rbtree.h @@ -94,12 +94,12 @@ static inline struct page * rb_insert_page_cache(struct inode * inode, #ifndef _LINUX_RBTREE_H #define _LINUX_RBTREE_H -#include -#include +#include +#include struct rb_node { - unsigned long rb_parent_color; + intptr_t rb_parent_color; #define RB_RED 0 #define RB_BLACK 1 struct rb_node *rb_right; @@ -122,7 +122,7 @@ struct rb_root static inline void rb_set_parent(struct rb_node *rb, struct rb_node *p) { - rb->rb_parent_color = (rb->rb_parent_color & 3) | (unsigned long)p; + rb->rb_parent_color = (rb->rb_parent_color & 3) | (uintptr_t)p; } static inline void rb_set_color(struct rb_node *rb, int color) { @@ -140,19 +140,13 @@ extern void rb_insert_color(struct rb_node *, struct rb_root *); extern void rb_erase(struct rb_node *, struct rb_root *); /* Find logical next and previous nodes in a tree */ -extern struct rb_node *rb_next(struct rb_node *); -extern struct rb_node *rb_prev(struct rb_node *); extern struct rb_node *rb_first(struct rb_root *); -extern struct rb_node *rb_last(struct rb_root *); - -/* Fast replacement of a single node without remove/rebalance/add/rebalance */ -extern void rb_replace_node(struct rb_node *victim, struct rb_node *new, - struct rb_root *root); +extern struct rb_node *rb_next(const struct rb_node *); static inline void rb_link_node(struct rb_node * node, struct rb_node * parent, struct rb_node ** rb_link) { - node->rb_parent_color = (unsigned long )parent; + node->rb_parent_color = (uintptr_t)parent; node->rb_left = node->rb_right = NULL; *rb_link = node;