]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/blob - repair/btree.h
libxfs: refactor manage_zones()
[thirdparty/xfsprogs-dev.git] / repair / btree.h
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3 * Copyright (c) 2007 Silicon Graphics, Inc.
4 * All Rights Reserved.
5 */
6
7 #ifndef _BTREE_H
8 #define _BTREE_H
9
10
11 struct btree_root;
12
13 void
14 btree_init(
15 struct btree_root **root);
16
17 void
18 btree_destroy(
19 struct btree_root *root);
20
21 int
22 btree_is_empty(
23 struct btree_root *root);
24
25 void *
26 btree_lookup(
27 struct btree_root *root,
28 unsigned long key);
29
30 void *
31 btree_find(
32 struct btree_root *root,
33 unsigned long key,
34 unsigned long *actual_key);
35
36 void *
37 btree_peek_prev(
38 struct btree_root *root,
39 unsigned long *key);
40
41 void *
42 btree_peek_next(
43 struct btree_root *root,
44 unsigned long *key);
45
46 void *
47 btree_lookup_next(
48 struct btree_root *root,
49 unsigned long *key);
50
51 void *
52 btree_lookup_prev(
53 struct btree_root *root,
54 unsigned long *key);
55
56 int
57 btree_insert(
58 struct btree_root *root,
59 unsigned long key,
60 void *value);
61
62 void *
63 btree_delete(
64 struct btree_root *root,
65 unsigned long key);
66
67 int
68 btree_update_key(
69 struct btree_root *root,
70 unsigned long old_key,
71 unsigned long new_key);
72
73 int
74 btree_update_value(
75 struct btree_root *root,
76 unsigned long key,
77 void *new_value);
78
79 void
80 btree_clear(
81 struct btree_root *root);
82
83 #ifdef BTREE_STATS
84 void
85 btree_print_stats(
86 struct btree_root *root,
87 FILE *f);
88 #endif
89
90 #endif /* _BTREE_H */