From ea76b6988ccafaa6a4d4ed90f2489d0e49e1f180 Mon Sep 17 00:00:00 2001 From: Benjamin Barenblat Date: Sat, 5 Sep 2015 09:32:30 -0400 Subject: Imported Upstream version 0.40.24 --- g_src/endian.h | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100755 g_src/endian.h (limited to 'g_src/endian.h') diff --git a/g_src/endian.h b/g_src/endian.h new file mode 100755 index 0000000..b56dee4 --- /dev/null +++ b/g_src/endian.h @@ -0,0 +1,42 @@ +#ifndef ENDIAN_H +#define ENDIAN_H + +inline unsigned short byteswap(unsigned short x) +{ +#if defined(__ppc__) || defined(__ppc64__) + return (x << 8 | x >> 8); +#else + return x; +#endif +} + +inline unsigned long byteswap(unsigned long x) +{ +#if defined(__ppc__) || defined(__ppc64__) + return + ( (x << 24) & 0xFF000000) | + ( (x << 8) & 0x00FF0000) | + ( (x >> 8) & 0x0000FF00) | + ( (x >> 24) & 0x000000FF) ; +#else + return x; +#endif +} + +inline unsigned int byteswap(unsigned int x) +{ +#if defined(__ppc__) || defined(__ppc64__) + return + ( (x << 24) & 0xFF000000) | + ( (x << 8) & 0x00FF0000) | + ( (x >> 8) & 0x0000FF00) | + ( (x >> 24) & 0x000000FF) ; +#else + return x; +#endif +} + +inline short byteswap(short x) { return byteswap( (unsigned short) x ); } +inline long byteswap(long x) { return byteswap( (unsigned long) x ); } +inline int byteswap(int x) { return byteswap( (unsigned int) x ); } +#endif -- cgit v1.2.3