#ifndef __CRTL_EASY_BYTESWAP_H
#define __CRTL_EASY_BYTESWAP_H 1
#include #ifdef __x86_64__
#define CRTL_WORDSIZE64
#else
#define CRTL_WORDSIZE32
#endif
static inline uint16_t crtl_swab16(uint16_t x){
return ((x & (uint16_t)0x00ffU) << 8) | ((x & (uint16_t)0xff00U) >> 8);
}
static inline uint32_t crtl_swab32(uint32_t x){
return ((x & (uint32_t)0x000000ffUL) << 24) | ((x & (uint32_t)0x0000ff00UL) << 8) |
((x & (uint32_t)0x00ff0000UL) >> 8) | ((x & (uint32_t)0xff000000UL) >> 24);
}
static inline uint64_t crtl_swab64(uint64_t x){
return (uint64_t)((x & (uint64_t)0x00000000000000ffULL) << 56) |
(uint64_t)((x & (uint64_t)0x000000000000ff00ULL) << 40) |
(uint64_t)((x & (uint64_t)0x0000000000ff0000ULL)