1 #ifndef _LINUX_UNALIGNED_BE_BYTESHIFT_H
2 #define _LINUX_UNALIGNED_BE_BYTESHIFT_H
4 static inline u16
__get_unaligned_be16(const u8
*p
)
6 return p
[0] << 8 | p
[1];
9 static inline u32
__get_unaligned_be32(const u8
*p
)
11 return p
[0] << 24 | p
[1] << 16 | p
[2] << 8 | p
[3];
14 static inline u64
__get_unaligned_be64(const u8
*p
)
16 return (u64
)__get_unaligned_be32(p
) << 32 |
17 __get_unaligned_be32(p
+ 4);
20 static inline void __put_unaligned_be16(u16 val
, u8
*p
)
26 static inline void __put_unaligned_be32(u32 val
, u8
*p
)
28 __put_unaligned_be16(val
>> 16, p
);
29 __put_unaligned_be16(val
, p
+ 2);
32 static inline void __put_unaligned_be64(u64 val
, u8
*p
)
34 __put_unaligned_be32(val
>> 32, p
);
35 __put_unaligned_be32(val
, p
+ 4);
38 static inline u16
get_unaligned_be16(const void *p
)
40 return __get_unaligned_be16((const u8
*)p
);
43 static inline u32
get_unaligned_be32(const void *p
)
45 return __get_unaligned_be32((const u8
*)p
);
48 static inline u64
get_unaligned_be64(const void *p
)
50 return __get_unaligned_be64((const u8
*)p
);
53 static inline void put_unaligned_be16(u16 val
, void *p
)
55 __put_unaligned_be16(val
, p
);
58 static inline void put_unaligned_be32(u32 val
, void *p
)
60 __put_unaligned_be32(val
, p
);
63 static inline void put_unaligned_be64(u64 val
, void *p
)
65 __put_unaligned_be64(val
, p
);
68 #endif /* _LINUX_UNALIGNED_BE_BYTESHIFT_H */