Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 #ifndef _LINUX_INTERVAL_TREE_H
0003 #define _LINUX_INTERVAL_TREE_H
0004 
0005 #include <linux/rbtree.h>
0006 
0007 struct interval_tree_node {
0008     struct rb_node rb;
0009     unsigned long start;    /* Start of interval */
0010     unsigned long last; /* Last location _in_ interval */
0011     unsigned long __subtree_last;
0012 };
0013 
0014 extern void
0015 interval_tree_insert(struct interval_tree_node *node,
0016              struct rb_root_cached *root);
0017 
0018 extern void
0019 interval_tree_remove(struct interval_tree_node *node,
0020              struct rb_root_cached *root);
0021 
0022 extern struct interval_tree_node *
0023 interval_tree_iter_first(struct rb_root_cached *root,
0024              unsigned long start, unsigned long last);
0025 
0026 extern struct interval_tree_node *
0027 interval_tree_iter_next(struct interval_tree_node *node,
0028             unsigned long start, unsigned long last);
0029 
0030 #endif  /* _LINUX_INTERVAL_TREE_H */