static inline void rb_set_parent(struct rb_node *rb, struct rb_node *p)
{
- rb->__rb_parent_color = rb_color(rb) | (unsigned long)p;
+ rb->__rb_parent_color = rb_color(rb) | (uintptr_t)p;
}
static inline void rb_set_parent_color(struct rb_node *rb,
struct rb_node *p, int color)
{
- rb->__rb_parent_color = (unsigned long)p | color;
+ rb->__rb_parent_color = (uintptr_t)p | color;
}
static inline void rb_set_black(struct rb_node *rb)
{
struct rb_node *child = node->rb_right, *tmp = node->rb_left;
struct rb_node *parent, *rebalance;
- unsigned long pc;
+ uintptr_t pc;
if (!tmp) {
/*
rb_set_parent_color(child2, parent, RB_BLACK);
rebalance = NULL;
} else {
- unsigned long pc2 = successor->__rb_parent_color;
+ uintptr_t pc2 = successor->__rb_parent_color;
successor->__rb_parent_color = pc;
rebalance = __rb_is_black(pc2) ? parent : NULL;
}
#define _LINUX_RBTREE_H
#include "util.h"
+#include <stdint.h>
struct rb_node {
- unsigned long __rb_parent_color;
+ uintptr_t __rb_parent_color;
struct rb_node *rb_right;
struct rb_node *rb_left;
};
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;