Root/
1 | #ifndef _TOOLS_LE_BYTESHIFT_H |
2 | #define _TOOLS_LE_BYTESHIFT_H |
3 | |
4 | #include <linux/types.h> |
5 | |
6 | static inline __u16 __get_unaligned_le16(const __u8 *p) |
7 | { |
8 | return p[0] | p[1] << 8; |
9 | } |
10 | |
11 | static inline __u32 __get_unaligned_le32(const __u8 *p) |
12 | { |
13 | return p[0] | p[1] << 8 | p[2] << 16 | p[3] << 24; |
14 | } |
15 | |
16 | static inline __u64 __get_unaligned_le64(const __u8 *p) |
17 | { |
18 | return (__u64)__get_unaligned_le32(p + 4) << 32 | |
19 | __get_unaligned_le32(p); |
20 | } |
21 | |
22 | static inline void __put_unaligned_le16(__u16 val, __u8 *p) |
23 | { |
24 | *p++ = val; |
25 | *p++ = val >> 8; |
26 | } |
27 | |
28 | static inline void __put_unaligned_le32(__u32 val, __u8 *p) |
29 | { |
30 | __put_unaligned_le16(val >> 16, p + 2); |
31 | __put_unaligned_le16(val, p); |
32 | } |
33 | |
34 | static inline void __put_unaligned_le64(__u64 val, __u8 *p) |
35 | { |
36 | __put_unaligned_le32(val >> 32, p + 4); |
37 | __put_unaligned_le32(val, p); |
38 | } |
39 | |
40 | static inline __u16 get_unaligned_le16(const void *p) |
41 | { |
42 | return __get_unaligned_le16((const __u8 *)p); |
43 | } |
44 | |
45 | static inline __u32 get_unaligned_le32(const void *p) |
46 | { |
47 | return __get_unaligned_le32((const __u8 *)p); |
48 | } |
49 | |
50 | static inline __u64 get_unaligned_le64(const void *p) |
51 | { |
52 | return __get_unaligned_le64((const __u8 *)p); |
53 | } |
54 | |
55 | static inline void put_unaligned_le16(__u16 val, void *p) |
56 | { |
57 | __put_unaligned_le16(val, p); |
58 | } |
59 | |
60 | static inline void put_unaligned_le32(__u32 val, void *p) |
61 | { |
62 | __put_unaligned_le32(val, p); |
63 | } |
64 | |
65 | static inline void put_unaligned_le64(__u64 val, void *p) |
66 | { |
67 | __put_unaligned_le64(val, p); |
68 | } |
69 | |
70 | #endif /* _TOOLS_LE_BYTESHIFT_H */ |
71 |
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