Branch data Line data Source code
1 : : /* SPDX-License-Identifier: GPL-2.0 */
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 : :
8 : 9 : static __always_inline u16 get_unaligned_le16(const void *p)
9 : : {
10 [ + - # # : 9 : return le16_to_cpup((__le16 *)p);
# # # # #
# # # # #
# # # # ]
11 : : }
12 : :
13 : 3 : static __always_inline u32 get_unaligned_le32(const void *p)
14 : : {
15 [ # # # # : 3 : return le32_to_cpup((__le32 *)p);
# # # # #
# ]
16 : : }
17 : :
18 : 0 : static __always_inline u64 get_unaligned_le64(const void *p)
19 : : {
20 [ # # # # : 0 : return le64_to_cpup((__le64 *)p);
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# ]
21 : : }
22 : :
23 : 192 : static __always_inline u16 get_unaligned_be16(const void *p)
24 : : {
25 [ - + + # : 192 : return be16_to_cpup((__be16 *)p);
# # ]
26 : : }
27 : :
28 : 576 : static __always_inline u32 get_unaligned_be32(const void *p)
29 : : {
30 [ - + - + : 558 : return be32_to_cpup((__be32 *)p);
- + - - ]
31 : : }
32 : :
33 : 36 : static __always_inline u64 get_unaligned_be64(const void *p)
34 : : {
35 [ - + # # ]: 36 : return be64_to_cpup((__be64 *)p);
36 : : }
37 : :
38 : 0 : static __always_inline void put_unaligned_le16(u16 val, void *p)
39 : : {
40 [ # # # # : 0 : *((__le16 *)p) = cpu_to_le16(val);
# # # # ]
41 : 0 : }
42 : :
43 : 476880 : static __always_inline void put_unaligned_le32(u32 val, void *p)
44 : : {
45 [ # # # # : 476880 : *((__le32 *)p) = cpu_to_le32(val);
# # # # #
# # # # #
# # ]
46 : 0 : }
47 : :
48 : 342 : static __always_inline void put_unaligned_le64(u64 val, void *p)
49 : : {
50 [ # # # # : 342 : *((__le64 *)p) = cpu_to_le64(val);
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# ]
51 : : }
52 : :
53 : 2935 : static __always_inline void put_unaligned_be16(u16 val, void *p)
54 : : {
55 [ + - ]: 2935 : *((__be16 *)p) = cpu_to_be16(val);
56 : 0 : }
57 : :
58 : 3013 : static __always_inline void put_unaligned_be32(u32 val, void *p)
59 : : {
60 [ - - - - ]: 2995 : *((__be32 *)p) = cpu_to_be32(val);
61 : 18 : }
62 : :
63 : 18 : static __always_inline void put_unaligned_be64(u64 val, void *p)
64 : : {
65 [ - - # # : 18 : *((__be64 *)p) = cpu_to_be64(val);
# # # # ]
66 : 0 : }
67 : :
68 : : #endif /* _LINUX_UNALIGNED_ACCESS_OK_H */
|