11366c37eSMatthew Wilcox #include <linux/gfp.h> 21366c37eSMatthew Wilcox #include <linux/types.h> 31366c37eSMatthew Wilcox #include <linux/radix-tree.h> 41366c37eSMatthew Wilcox #include <linux/rcupdate.h> 51366c37eSMatthew Wilcox 61366c37eSMatthew Wilcox struct item { 71366c37eSMatthew Wilcox unsigned long index; 81366c37eSMatthew Wilcox }; 91366c37eSMatthew Wilcox 101366c37eSMatthew Wilcox struct item *item_create(unsigned long index); 111366c37eSMatthew Wilcox int __item_insert(struct radix_tree_root *root, struct item *item); 121366c37eSMatthew Wilcox int item_insert(struct radix_tree_root *root, unsigned long index); 131366c37eSMatthew Wilcox int item_delete(struct radix_tree_root *root, unsigned long index); 141366c37eSMatthew Wilcox struct item *item_lookup(struct radix_tree_root *root, unsigned long index); 151366c37eSMatthew Wilcox 161366c37eSMatthew Wilcox void item_check_present(struct radix_tree_root *root, unsigned long index); 171366c37eSMatthew Wilcox void item_check_absent(struct radix_tree_root *root, unsigned long index); 181366c37eSMatthew Wilcox void item_gang_check_present(struct radix_tree_root *root, 191366c37eSMatthew Wilcox unsigned long start, unsigned long nr, 201366c37eSMatthew Wilcox int chunk, int hop); 211366c37eSMatthew Wilcox void item_full_scan(struct radix_tree_root *root, unsigned long start, 221366c37eSMatthew Wilcox unsigned long nr, int chunk); 231366c37eSMatthew Wilcox void item_kill_tree(struct radix_tree_root *root); 241366c37eSMatthew Wilcox 251366c37eSMatthew Wilcox void tag_check(void); 261366c37eSMatthew Wilcox 271366c37eSMatthew Wilcox struct item * 281366c37eSMatthew Wilcox item_tag_set(struct radix_tree_root *root, unsigned long index, int tag); 291366c37eSMatthew Wilcox struct item * 301366c37eSMatthew Wilcox item_tag_clear(struct radix_tree_root *root, unsigned long index, int tag); 311366c37eSMatthew Wilcox int item_tag_get(struct radix_tree_root *root, unsigned long index, int tag); 321366c37eSMatthew Wilcox void tree_verify_min_height(struct radix_tree_root *root, int maxindex); 331366c37eSMatthew Wilcox void verify_tag_consistency(struct radix_tree_root *root, unsigned int tag); 341366c37eSMatthew Wilcox 351366c37eSMatthew Wilcox extern int nr_allocated; 361366c37eSMatthew Wilcox 371366c37eSMatthew Wilcox /* Normally private parts of lib/radix-tree.c */ 381366c37eSMatthew Wilcox void *indirect_to_ptr(void *ptr); 391366c37eSMatthew Wilcox int root_tag_get(struct radix_tree_root *root, unsigned int tag); 401366c37eSMatthew Wilcox unsigned long radix_tree_maxindex(unsigned int height); 41