summaryrefslogtreecommitdiffstats
path: root/cpukit/libfs/src/jffs2/src/compat-rbtree.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2013-09-12 16:53:41 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-09-19 13:16:06 +0200
commit78b85286f073092b53ec405b9d9eebd3f49b44f6 (patch)
tree6344d499b3fad5bc6a06b2a53d649b8858788dd9 /cpukit/libfs/src/jffs2/src/compat-rbtree.c
parentJFFS2: Import from eCos (diff)
downloadrtems-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.c18
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)
{