#include <linux/mm.h>
#include <linux/fs.h>
#include <linux/rmap.h>
#include <linux/interval_tree_generic.h>
static inline unsigned long vma_start_pgoff(struct vm_area_struct *v)
{ … }
static inline unsigned long vma_last_pgoff(struct vm_area_struct *v)
{ … }
INTERVAL_TREE_DEFINE(…)
void vma_interval_tree_insert_after(struct vm_area_struct *node,
struct vm_area_struct *prev,
struct rb_root_cached *root)
{ … }
static inline unsigned long avc_start_pgoff(struct anon_vma_chain *avc)
{ … }
static inline unsigned long avc_last_pgoff(struct anon_vma_chain *avc)
{ … }
INTERVAL_TREE_DEFINE(…)
void anon_vma_interval_tree_insert(struct anon_vma_chain *node,
struct rb_root_cached *root)
{ … }
void anon_vma_interval_tree_remove(struct anon_vma_chain *node,
struct rb_root_cached *root)
{ … }
struct anon_vma_chain *
anon_vma_interval_tree_iter_first(struct rb_root_cached *root,
unsigned long first, unsigned long last)
{ … }
struct anon_vma_chain *
anon_vma_interval_tree_iter_next(struct anon_vma_chain *node,
unsigned long first, unsigned long last)
{ … }
#ifdef CONFIG_DEBUG_VM_RB
void anon_vma_interval_tree_verify(struct anon_vma_chain *node)
{ … }
#endif