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, struct rb_root *root); 15 16extern void 17interval_tree_remove(struct interval_tree_node *node, struct rb_root *root); 18 19extern struct interval_tree_node * 20interval_tree_iter_first(struct rb_root *root, 21 unsigned long start, unsigned long last); 22 23extern struct interval_tree_node * 24interval_tree_iter_next(struct interval_tree_node *node, 25 unsigned long start, unsigned long last); 26 27#endif /* _LINUX_INTERVAL_TREE_H */ 28