Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / include / linux / interval_tree.h
diff --git a/kernel/include/linux/interval_tree.h b/kernel/include/linux/interval_tree.h
new file mode 100644 (file)
index 0000000..724556a
--- /dev/null
@@ -0,0 +1,27 @@
+#ifndef _LINUX_INTERVAL_TREE_H
+#define _LINUX_INTERVAL_TREE_H
+
+#include <linux/rbtree.h>
+
+struct interval_tree_node {
+       struct rb_node rb;
+       unsigned long start;    /* Start of interval */
+       unsigned long last;     /* Last location _in_ interval */
+       unsigned long __subtree_last;
+};
+
+extern void
+interval_tree_insert(struct interval_tree_node *node, struct rb_root *root);
+
+extern void
+interval_tree_remove(struct interval_tree_node *node, struct rb_root *root);
+
+extern struct interval_tree_node *
+interval_tree_iter_first(struct rb_root *root,
+                        unsigned long start, unsigned long last);
+
+extern struct interval_tree_node *
+interval_tree_iter_next(struct interval_tree_node *node,
+                       unsigned long start, unsigned long last);
+
+#endif /* _LINUX_INTERVAL_TREE_H */