Root/
1 | extern struct btree_geo btree_geo128; |
2 | |
3 | struct btree_head128 { struct btree_head h; }; |
4 | |
5 | static inline void btree_init_mempool128(struct btree_head128 *head, |
6 | mempool_t *mempool) |
7 | { |
8 | btree_init_mempool(&head->h, mempool); |
9 | } |
10 | |
11 | static inline int btree_init128(struct btree_head128 *head) |
12 | { |
13 | return btree_init(&head->h); |
14 | } |
15 | |
16 | static inline void btree_destroy128(struct btree_head128 *head) |
17 | { |
18 | btree_destroy(&head->h); |
19 | } |
20 | |
21 | static inline void *btree_lookup128(struct btree_head128 *head, u64 k1, u64 k2) |
22 | { |
23 | u64 key[2] = {k1, k2}; |
24 | return btree_lookup(&head->h, &btree_geo128, (unsigned long *)&key); |
25 | } |
26 | |
27 | static inline void *btree_get_prev128(struct btree_head128 *head, |
28 | u64 *k1, u64 *k2) |
29 | { |
30 | u64 key[2] = {*k1, *k2}; |
31 | void *val; |
32 | |
33 | val = btree_get_prev(&head->h, &btree_geo128, |
34 | (unsigned long *)&key); |
35 | *k1 = key[0]; |
36 | *k2 = key[1]; |
37 | return val; |
38 | } |
39 | |
40 | static inline int btree_insert128(struct btree_head128 *head, u64 k1, u64 k2, |
41 | void *val, gfp_t gfp) |
42 | { |
43 | u64 key[2] = {k1, k2}; |
44 | return btree_insert(&head->h, &btree_geo128, |
45 | (unsigned long *)&key, val, gfp); |
46 | } |
47 | |
48 | static inline int btree_update128(struct btree_head128 *head, u64 k1, u64 k2, |
49 | void *val) |
50 | { |
51 | u64 key[2] = {k1, k2}; |
52 | return btree_update(&head->h, &btree_geo128, |
53 | (unsigned long *)&key, val); |
54 | } |
55 | |
56 | static inline void *btree_remove128(struct btree_head128 *head, u64 k1, u64 k2) |
57 | { |
58 | u64 key[2] = {k1, k2}; |
59 | return btree_remove(&head->h, &btree_geo128, (unsigned long *)&key); |
60 | } |
61 | |
62 | static inline void *btree_last128(struct btree_head128 *head, u64 *k1, u64 *k2) |
63 | { |
64 | u64 key[2]; |
65 | void *val; |
66 | |
67 | val = btree_last(&head->h, &btree_geo128, (unsigned long *)&key[0]); |
68 | if (val) { |
69 | *k1 = key[0]; |
70 | *k2 = key[1]; |
71 | } |
72 | |
73 | return val; |
74 | } |
75 | |
76 | static inline int btree_merge128(struct btree_head128 *target, |
77 | struct btree_head128 *victim, |
78 | gfp_t gfp) |
79 | { |
80 | return btree_merge(&target->h, &victim->h, &btree_geo128, gfp); |
81 | } |
82 | |
83 | void visitor128(void *elem, unsigned long opaque, unsigned long *__key, |
84 | size_t index, void *__func); |
85 | |
86 | typedef void (*visitor128_t)(void *elem, unsigned long opaque, |
87 | u64 key1, u64 key2, size_t index); |
88 | |
89 | static inline size_t btree_visitor128(struct btree_head128 *head, |
90 | unsigned long opaque, |
91 | visitor128_t func2) |
92 | { |
93 | return btree_visitor(&head->h, &btree_geo128, opaque, |
94 | visitor128, func2); |
95 | } |
96 | |
97 | static inline size_t btree_grim_visitor128(struct btree_head128 *head, |
98 | unsigned long opaque, |
99 | visitor128_t func2) |
100 | { |
101 | return btree_grim_visitor(&head->h, &btree_geo128, opaque, |
102 | visitor128, func2); |
103 | } |
104 | |
105 | #define btree_for_each_safe128(head, k1, k2, val) \ |
106 | for (val = btree_last128(head, &k1, &k2); \ |
107 | val; \ |
108 | val = btree_get_prev128(head, &k1, &k2)) |
109 | |
110 |
Branches:
ben-wpan
ben-wpan-stefan
javiroman/ks7010
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.11
jz-3.12
jz-3.13
jz-3.15
jz-3.16
jz-3.18-dt
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-clk
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9