diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-07-04 16:12:14 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-07-16 07:22:11 +0200 |
commit | 22d9575fd038721cc7462911275336f1b5255381 (patch) | |
tree | 1935a51bcbdeaa869f78ef5e8d2b48d96321729c /cpukit/include/linux | |
parent | linux: Simplify <linux/rbtree.h> (diff) | |
download | rtems-22d9575fd038721cc7462911275336f1b5255381.tar.bz2 |
linux: Add rbtree_postorder_for_each_entry_safe()
Update #3465.
Diffstat (limited to 'cpukit/include/linux')
-rw-r--r-- | cpukit/include/linux/rbtree.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/cpukit/include/linux/rbtree.h b/cpukit/include/linux/rbtree.h index e1da2c7b9a..53c777e8c1 100644 --- a/cpukit/include/linux/rbtree.h +++ b/cpukit/include/linux/rbtree.h @@ -122,4 +122,20 @@ static inline struct rb_node *rb_parent( struct rb_node *node ) return _RBTree_Parent( node ); } +#define rbtree_postorder_for_each_entry_safe( node, next, root, field ) \ + for ( \ + node = _RBTree_Postorder_first( \ + (RBTree_Control *) root, \ + (size_t) ( (char *) &node->field - (char *) node ) \ + ); \ + node != NULL && ( \ + next = _RBTree_Postorder_next( \ + &node->field, \ + (size_t) ( (char *) &node->field - (char *) node ) \ + ), \ + node != NULL \ + ); \ + node = next \ + ) + #endif /* _LINUX_RBTREE_H */ |