blob: 4e1d95faaa94f1562c7d81bd5b07632e727d0735 [file] [log] [blame]
Matthew Wilcox1366c372016-03-17 14:21:45 -07001#include <linux/gfp.h>
2#include <linux/types.h>
3#include <linux/radix-tree.h>
4#include <linux/rcupdate.h>
5
6struct item {
7 unsigned long index;
8};
9
10struct item *item_create(unsigned long index);
11int __item_insert(struct radix_tree_root *root, struct item *item);
12int item_insert(struct radix_tree_root *root, unsigned long index);
13int item_delete(struct radix_tree_root *root, unsigned long index);
14struct item *item_lookup(struct radix_tree_root *root, unsigned long index);
15
16void item_check_present(struct radix_tree_root *root, unsigned long index);
17void item_check_absent(struct radix_tree_root *root, unsigned long index);
18void item_gang_check_present(struct radix_tree_root *root,
19 unsigned long start, unsigned long nr,
20 int chunk, int hop);
21void item_full_scan(struct radix_tree_root *root, unsigned long start,
22 unsigned long nr, int chunk);
23void item_kill_tree(struct radix_tree_root *root);
24
25void tag_check(void);
26
27struct item *
28item_tag_set(struct radix_tree_root *root, unsigned long index, int tag);
29struct item *
30item_tag_clear(struct radix_tree_root *root, unsigned long index, int tag);
31int item_tag_get(struct radix_tree_root *root, unsigned long index, int tag);
32void tree_verify_min_height(struct radix_tree_root *root, int maxindex);
33void verify_tag_consistency(struct radix_tree_root *root, unsigned int tag);
34
35extern int nr_allocated;
36
37/* Normally private parts of lib/radix-tree.c */
38void *indirect_to_ptr(void *ptr);
39int root_tag_get(struct radix_tree_root *root, unsigned int tag);
40unsigned long radix_tree_maxindex(unsigned int height);