From 22d9575fd038721cc7462911275336f1b5255381 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Wed, 4 Jul 2018 16:12:14 +0200 Subject: linux: Add rbtree_postorder_for_each_entry_safe() Update #3465. --- cpukit/include/linux/rbtree.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'cpukit') 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 */ -- cgit v1.2.3