hc
2024-11-01 2f529f9b558ca1c1bd74be7437a84e4711743404
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/* SPDX-License-Identifier: GPL-2.0 */
#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_cached *root);
 
extern void
interval_tree_remove(struct interval_tree_node *node,
            struct rb_root_cached *root);
 
extern struct interval_tree_node *
interval_tree_iter_first(struct rb_root_cached *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 */