lkml.org 
[lkml]   [2010]   [Aug]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH/RFCv4 1/6] lib: rbtree: rb_root_init() function added
    Added a rb_root_init() function which initialises a rb_root
    structure as a red-black tree with at most one element. The
    rationale is that using rb_root_init(root, node) is more
    straightforward and cleaner then first initialising and
    empty tree followed by an insert operation.

    Signed-off-by: Michal Nazarewicz <m.nazarewicz@samsung.com>
    Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
    ---
    include/linux/rbtree.h | 11 +++++++++++
    1 files changed, 11 insertions(+), 0 deletions(-)

    diff --git a/include/linux/rbtree.h b/include/linux/rbtree.h
    index 7066acb..5b6dc66 100644
    --- a/include/linux/rbtree.h
    +++ b/include/linux/rbtree.h
    @@ -130,6 +130,17 @@ static inline void rb_set_color(struct rb_node *rb, int color)
    }

    #define RB_ROOT (struct rb_root) { NULL, }
    +
    +static inline void rb_root_init(struct rb_root *root, struct rb_node *node)
    +{
    + root->rb_node = node;
    + if (node) {
    + node->rb_parent_color = RB_BLACK; /* black, no parent */
    + node->rb_left = NULL;
    + node->rb_right = NULL;
    + }
    +}
    +
    #define rb_entry(ptr, type, member) container_of(ptr, type, member)

    #define RB_EMPTY_ROOT(root) ((root)->rb_node == NULL)
    --
    1.7.1



    \
     
     \ /
      Last update: 2010-08-20 11:55    [W:0.030 / U:32.864 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site