This source file includes following definitions.
- ceph_frag_make
- ceph_frag_bits
- ceph_frag_value
- ceph_frag_mask
- ceph_frag_mask_shift
- ceph_frag_contains_value
- ceph_frag_make_child
- ceph_frag_is_leftmost
- ceph_frag_is_rightmost
- ceph_frag_next
1
2 #ifndef FS_CEPH_FRAG_H
3 #define FS_CEPH_FRAG_H
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 static inline __u32 ceph_frag_make(__u32 b, __u32 v)
23 {
24 return (b << 24) |
25 (v & (0xffffffu << (24-b)) & 0xffffffu);
26 }
27 static inline __u32 ceph_frag_bits(__u32 f)
28 {
29 return f >> 24;
30 }
31 static inline __u32 ceph_frag_value(__u32 f)
32 {
33 return f & 0xffffffu;
34 }
35 static inline __u32 ceph_frag_mask(__u32 f)
36 {
37 return (0xffffffu << (24-ceph_frag_bits(f))) & 0xffffffu;
38 }
39 static inline __u32 ceph_frag_mask_shift(__u32 f)
40 {
41 return 24 - ceph_frag_bits(f);
42 }
43
44 static inline bool ceph_frag_contains_value(__u32 f, __u32 v)
45 {
46 return (v & ceph_frag_mask(f)) == ceph_frag_value(f);
47 }
48
49 static inline __u32 ceph_frag_make_child(__u32 f, int by, int i)
50 {
51 int newbits = ceph_frag_bits(f) + by;
52 return ceph_frag_make(newbits,
53 ceph_frag_value(f) | (i << (24 - newbits)));
54 }
55 static inline bool ceph_frag_is_leftmost(__u32 f)
56 {
57 return ceph_frag_value(f) == 0;
58 }
59 static inline bool ceph_frag_is_rightmost(__u32 f)
60 {
61 return ceph_frag_value(f) == ceph_frag_mask(f);
62 }
63 static inline __u32 ceph_frag_next(__u32 f)
64 {
65 return ceph_frag_make(ceph_frag_bits(f),
66 ceph_frag_value(f) + (0x1000000 >> ceph_frag_bits(f)));
67 }
68
69
70
71
72
73 int ceph_frag_compare(__u32 a, __u32 b);
74
75 #endif