diff --git a/include/misc/byteorder.h b/include/misc/byteorder.h index 7f1aca2692a..2664e6ebfee 100644 --- a/include/misc/byteorder.h +++ b/include/misc/byteorder.h @@ -33,10 +33,16 @@ #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ #define sys_le16_to_cpu(val) (val) #define sys_cpu_to_le16(val) (val) +#define sys_le32_to_cpu(val) (val) +#define sys_cpu_to_le32(val) (val) #elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ #define bswap_16(x) ((uint16_t) ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8))) #define sys_le16_to_cpu(val) bswap_16(val) #define sys_cpu_to_le16(val) bswap_16(val) +#define bswap_32(x) ((uint32_t) ((((x) >> 24) & 0xff) | (((x) >> 8) & 0xff00) \ + | (((x) & 0xff00) << 8) | (((x) & 0xff) << 24))) +#define sys_le32_to_cpu(val) bswap_32(val) +#define sys_cpu_to_le32(val) bswap_32(val) #else #error "Unknown byte order" #endif