1 #ifndef _LINUX_INTERVAL_TREE_H 2 #define _LINUX_INTERVAL_TREE_H 3 4 #include <linux/rbtree.h> 5 6 struct 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 13 extern void 14 interval_tree_insert(struct interval_tree_node *node, struct rb_root *root); 15 16 extern void 17 interval_tree_remove(struct interval_tree_node *node, struct rb_root *root); 18 19 extern struct interval_tree_node * 20 interval_tree_iter_first(struct rb_root *root, 21 unsigned long start, unsigned long last); 22 23 extern struct interval_tree_node * 24 interval_tree_iter_next(struct interval_tree_node *node, 25 unsigned long start, unsigned long last); 26 27 #endif /* _LINUX_INTERVAL_TREE_H */ 28