Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
064106a9 HH |
2 | #ifndef _LINUX_UNALIGNED_ACCESS_OK_H |
3 | #define _LINUX_UNALIGNED_ACCESS_OK_H | |
4 | ||
5 | #include <linux/kernel.h> | |
6 | #include <asm/byteorder.h> | |
7 | ||
e3bde956 | 8 | static __always_inline u16 get_unaligned_le16(const void *p) |
064106a9 HH |
9 | { |
10 | return le16_to_cpup((__le16 *)p); | |
11 | } | |
12 | ||
e3bde956 | 13 | static __always_inline u32 get_unaligned_le32(const void *p) |
064106a9 HH |
14 | { |
15 | return le32_to_cpup((__le32 *)p); | |
16 | } | |
17 | ||
e3bde956 | 18 | static __always_inline u64 get_unaligned_le64(const void *p) |
064106a9 HH |
19 | { |
20 | return le64_to_cpup((__le64 *)p); | |
21 | } | |
22 | ||
e3bde956 | 23 | static __always_inline u16 get_unaligned_be16(const void *p) |
064106a9 HH |
24 | { |
25 | return be16_to_cpup((__be16 *)p); | |
26 | } | |
27 | ||
e3bde956 | 28 | static __always_inline u32 get_unaligned_be32(const void *p) |
064106a9 HH |
29 | { |
30 | return be32_to_cpup((__be32 *)p); | |
31 | } | |
32 | ||
e3bde956 | 33 | static __always_inline u64 get_unaligned_be64(const void *p) |
064106a9 HH |
34 | { |
35 | return be64_to_cpup((__be64 *)p); | |
36 | } | |
37 | ||
e3bde956 | 38 | static __always_inline void put_unaligned_le16(u16 val, void *p) |
064106a9 HH |
39 | { |
40 | *((__le16 *)p) = cpu_to_le16(val); | |
41 | } | |
42 | ||
e3bde956 | 43 | static __always_inline void put_unaligned_le32(u32 val, void *p) |
064106a9 HH |
44 | { |
45 | *((__le32 *)p) = cpu_to_le32(val); | |
46 | } | |
47 | ||
e3bde956 | 48 | static __always_inline void put_unaligned_le64(u64 val, void *p) |
064106a9 HH |
49 | { |
50 | *((__le64 *)p) = cpu_to_le64(val); | |
51 | } | |
52 | ||
e3bde956 | 53 | static __always_inline void put_unaligned_be16(u16 val, void *p) |
064106a9 HH |
54 | { |
55 | *((__be16 *)p) = cpu_to_be16(val); | |
56 | } | |
57 | ||
e3bde956 | 58 | static __always_inline void put_unaligned_be32(u32 val, void *p) |
064106a9 HH |
59 | { |
60 | *((__be32 *)p) = cpu_to_be32(val); | |
61 | } | |
62 | ||
e3bde956 | 63 | static __always_inline void put_unaligned_be64(u64 val, void *p) |
064106a9 HH |
64 | { |
65 | *((__be64 *)p) = cpu_to_be64(val); | |
66 | } | |
67 | ||
68 | #endif /* _LINUX_UNALIGNED_ACCESS_OK_H */ |