diff options
Diffstat (limited to 'include/endian.h')
-rw-r--r-- | include/endian.h | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/include/endian.h b/include/endian.h index 41ca1711..528cef31 100644 --- a/include/endian.h +++ b/include/endian.h @@ -1,6 +1,10 @@ #ifndef _ENDIAN_H #define _ENDIAN_H +#if __STDC_VERSION__ >= 199901L || defined(__cplusplus) +#define __inline inline +#endif + #define __LITTLE_ENDIAN 1234 #define __BIG_ENDIAN 4321 #define __PDP_ENDIAN 3412 @@ -20,26 +24,17 @@ #include <stdint.h> -#if __STDC_VERSION__ >= 199901L -inline -#endif -static uint16_t __bswap16(uint16_t __x) +static __inline uint16_t __bswap16(uint16_t __x) { return __x<<8 | __x>>8; } -#if __STDC_VERSION__ >= 199901L -inline -#endif -static uint32_t __bswap32(uint32_t __x) +static __inline uint32_t __bswap32(uint32_t __x) { return __x>>24 | __x>>8&0xff00 | __x<<8&0xff0000 | __x<<24; } -#if __STDC_VERSION__ >= 199901L -inline -#endif -static uint64_t __bswap64(uint64_t __x) +static __inline uint64_t __bswap64(uint64_t __x) { return __bswap32(__x)+0ULL<<32 | __bswap32(__x>>32); } |