^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) #ifndef _PPC_BOOT_SWAB_H_
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) #define _PPC_BOOT_SWAB_H_
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) static inline u16 swab16(u16 x)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) return ((x & (u16)0x00ffU) << 8) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) ((x & (u16)0xff00U) >> 8);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) static inline u32 swab32(u32 x)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) return ((x & (u32)0x000000ffUL) << 24) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) ((x & (u32)0x0000ff00UL) << 8) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) ((x & (u32)0x00ff0000UL) >> 8) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) ((x & (u32)0xff000000UL) >> 24);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) static inline u64 swab64(u64 x)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) return (u64)((x & (u64)0x00000000000000ffULL) << 56) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) (u64)((x & (u64)0x000000000000ff00ULL) << 40) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) (u64)((x & (u64)0x0000000000ff0000ULL) << 24) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) (u64)((x & (u64)0x00000000ff000000ULL) << 8) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) (u64)((x & (u64)0x000000ff00000000ULL) >> 8) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) (u64)((x & (u64)0x0000ff0000000000ULL) >> 24) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) (u64)((x & (u64)0x00ff000000000000ULL) >> 40) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) (u64)((x & (u64)0xff00000000000000ULL) >> 56);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) #endif /* _PPC_BOOT_SWAB_H_ */