summaryrefslogtreecommitdiff
path: root/include/endian.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/endian.h')
-rw-r--r--include/endian.h19
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);
}