Branch data Line data Source code
1 : : #ifndef _LINUX_UNALIGNED_PACKED_STRUCT_H
2 : : #define _LINUX_UNALIGNED_PACKED_STRUCT_H
3 : :
4 : : #include <linux/kernel.h>
5 : :
6 : : struct __una_u16 { u16 x; } __packed;
7 : : struct __una_u32 { u32 x; } __packed;
8 : : struct __una_u64 { u64 x; } __packed;
9 : :
10 : : static inline u16 __get_unaligned_cpu16(const void *p)
11 : : {
12 : : const struct __una_u16 *ptr = (const struct __una_u16 *)p;
13 : 0 : return ptr->x;
14 : : }
15 : :
16 : : static inline u32 __get_unaligned_cpu32(const void *p)
17 : : {
18 : : const struct __una_u32 *ptr = (const struct __una_u32 *)p;
19 : 0 : return ptr->x;
20 : : }
21 : :
22 : : static inline u64 __get_unaligned_cpu64(const void *p)
23 : : {
24 : : const struct __una_u64 *ptr = (const struct __una_u64 *)p;
25 : 0 : return ptr->x;
26 : : }
27 : :
28 : : static inline void __put_unaligned_cpu16(u16 val, void *p)
29 : : {
30 : : struct __una_u16 *ptr = (struct __una_u16 *)p;
31 : 0 : ptr->x = val;
32 : : }
33 : :
34 : : static inline void __put_unaligned_cpu32(u32 val, void *p)
35 : : {
36 : : struct __una_u32 *ptr = (struct __una_u32 *)p;
37 : 0 : ptr->x = val;
38 : : }
39 : :
40 : : static inline void __put_unaligned_cpu64(u64 val, void *p)
41 : : {
42 : : struct __una_u64 *ptr = (struct __una_u64 *)p;
43 : 0 : ptr->x = val;
44 : : }
45 : :
46 : : #endif /* _LINUX_UNALIGNED_PACKED_STRUCT_H */
|