diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-09-12 16:53:41 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-09-19 13:16:06 +0200 |
commit | 78b85286f073092b53ec405b9d9eebd3f49b44f6 (patch) | |
tree | 6344d499b3fad5bc6a06b2a53d649b8858788dd9 /cpukit/libfs/src/jffs2/src/compat-rbtree.c | |
parent | JFFS2: Import from eCos (diff) | |
download | rtems-78b85286f073092b53ec405b9d9eebd3f49b44f6.tar.bz2 |
JFFS2: Update Linux compatibility layer
Modify compatbility layer for RTEMS. Add support for Linux 3.11 based
JFFS2.
Diffstat (limited to 'cpukit/libfs/src/jffs2/src/compat-rbtree.c')
-rw-r--r-- | cpukit/libfs/src/jffs2/src/compat-rbtree.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/cpukit/libfs/src/jffs2/src/compat-rbtree.c b/cpukit/libfs/src/jffs2/src/compat-rbtree.c index 5bc1cc53e2..a73cdc256c 100644 --- a/cpukit/libfs/src/jffs2/src/compat-rbtree.c +++ b/cpukit/libfs/src/jffs2/src/compat-rbtree.c @@ -119,8 +119,9 @@ RB_LEFT(tmp) = (elm); \ RB_PARENT(elm) = (tmp); \ RB_AUGMENT(tmp); \ - if ((RB_PARENT(tmp))) \ + if ((RB_PARENT(tmp))) { \ RB_AUGMENT(RB_PARENT(tmp)); \ + } \ } while (0) #define RB_ROTATE_RIGHT(head, elm, tmp) do { \ @@ -139,8 +140,9 @@ RB_RIGHT(tmp) = (elm); \ RB_PARENT(elm) = (tmp); \ RB_AUGMENT(tmp); \ - if ((RB_PARENT(tmp))) \ + if ((RB_PARENT(tmp))) { \ RB_AUGMENT(RB_PARENT(tmp)); \ + } \ } while(0) /* Note args swapped to match Linux */ @@ -384,6 +386,18 @@ struct rb_node *rb_first(struct rb_root *root) return n; } +struct rb_node *rb_last(struct rb_root *root) +{ + struct rb_node *n; + + n = root->rb_node; + if (!n) + return 0; + while (n->rb_right) + n = n->rb_right; + return n; +} + void rb_replace_node(struct rb_node *victim, struct rb_node *new, struct rb_root *root) { |