#ifndef L2SU_ENDIAN_H_INCLUDED #define L2SU_ENDIAN_H_INCLUDED #include #include "config.h" uint64_t l2__bswap_64_int(uint64_t in); uint32_t l2__bswap_32_int(uint32_t in); uint16_t l2__bswap_16_int(uint16_t in); #ifdef __GNUC__ #define l2__bswap_64 __builtin_bswap64 #define l2__bswap_32 __builtin_bswap32 #define l2__bswap_16 __builtin_bswap16 #else #define l2__bswap_64 l2__bswap_64_int #define l2__bswap_32 l2__bswap_32_int #define l2__bswap_16 l2__bswap_16_int #endif #if defined(L2SU_ENDIAN_LITTLE) #define l2_htobe64 l2__bswap_64 #define l2_betoh64 l2__bswap_64 #define l2_htobe32 l2__bswap_32 #define l2_betoh32 l2__bswap_32 #define l2_htobe16 l2__bswap_16 #define l2_betoh16 l2__bswap_16 #elif defined(L2SU_ENDIAN_BIG) #define l2_htobe64 #define l2_betoh64 #define l2_htobe32 #define l2_betoh32 #define l2_htobe16 #define l2_betoh16 #else #error "middle endian unsupported" #endif #endif /* include guard */