1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _LINUX_UNALIGNED_PACKED_STRUCT_H
3 #define _LINUX_UNALIGNED_PACKED_STRUCT_H
5 #include <linux/kernel.h>
7 struct __una_u16
{ u16 x
; } __packed
;
8 struct __una_u32
{ u32 x
; } __packed
;
9 struct __una_u64
{ u64 x
; } __packed
;
11 static inline u16
__get_unaligned_cpu16(const void *p
)
13 const struct __una_u16
*ptr
= (const struct __una_u16
*)p
;
17 static inline u32
__get_unaligned_cpu32(const void *p
)
19 const struct __una_u32
*ptr
= (const struct __una_u32
*)p
;
23 static inline u64
__get_unaligned_cpu64(const void *p
)
25 const struct __una_u64
*ptr
= (const struct __una_u64
*)p
;
29 static inline void __put_unaligned_cpu16(u16 val
, void *p
)
31 struct __una_u16
*ptr
= (struct __una_u16
*)p
;
35 static inline void __put_unaligned_cpu32(u32 val
, void *p
)
37 struct __una_u32
*ptr
= (struct __una_u32
*)p
;
41 static inline void __put_unaligned_cpu64(u64 val
, void *p
)
43 struct __una_u64
*ptr
= (struct __una_u64
*)p
;
47 #endif /* _LINUX_UNALIGNED_PACKED_STRUCT_H */