Blame view

include/linux/interval_tree.h 831 Bytes
b24413180   Greg Kroah-Hartman   License cleanup: ...
1
  /* SPDX-License-Identifier: GPL-2.0 */
fff3fd8a1   Michel Lespinasse   rbtree: add prio ...
2
3
4
5
6
7
8
9
10
11
12
13
14
  #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
f808c13fd   Davidlohr Bueso   lib/interval_tree...
15
16
  interval_tree_insert(struct interval_tree_node *node,
  		     struct rb_root_cached *root);
fff3fd8a1   Michel Lespinasse   rbtree: add prio ...
17
18
  
  extern void
f808c13fd   Davidlohr Bueso   lib/interval_tree...
19
20
  interval_tree_remove(struct interval_tree_node *node,
  		     struct rb_root_cached *root);
fff3fd8a1   Michel Lespinasse   rbtree: add prio ...
21
22
  
  extern struct interval_tree_node *
f808c13fd   Davidlohr Bueso   lib/interval_tree...
23
  interval_tree_iter_first(struct rb_root_cached *root,
fff3fd8a1   Michel Lespinasse   rbtree: add prio ...
24
25
26
27
28
29
30
  			 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 */