at v4.14-rc7 792 B view raw
1#ifndef _LINUX_INTERVAL_TREE_H 2#define _LINUX_INTERVAL_TREE_H 3 4#include <linux/rbtree.h> 5 6struct interval_tree_node { 7 struct rb_node rb; 8 unsigned long start; /* Start of interval */ 9 unsigned long last; /* Last location _in_ interval */ 10 unsigned long __subtree_last; 11}; 12 13extern void 14interval_tree_insert(struct interval_tree_node *node, 15 struct rb_root_cached *root); 16 17extern void 18interval_tree_remove(struct interval_tree_node *node, 19 struct rb_root_cached *root); 20 21extern struct interval_tree_node * 22interval_tree_iter_first(struct rb_root_cached *root, 23 unsigned long start, unsigned long last); 24 25extern struct interval_tree_node * 26interval_tree_iter_next(struct interval_tree_node *node, 27 unsigned long start, unsigned long last); 28 29#endif /* _LINUX_INTERVAL_TREE_H */