diff options
Diffstat (limited to 'roms/openbios/utils/ofclient/endian.h')
-rw-r--r-- | roms/openbios/utils/ofclient/endian.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/roms/openbios/utils/ofclient/endian.h b/roms/openbios/utils/ofclient/endian.h new file mode 100644 index 000000000..4d20e7171 --- /dev/null +++ b/roms/openbios/utils/ofclient/endian.h @@ -0,0 +1,18 @@ + +#define __bswap32(x) \ + ((((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >> 8) | \ + (((x) & 0x0000ff00) << 8) | (((x) & 0x000000ff) << 24)) + +static int little_endian(void) +{ + static short one=1; + return *(char *)&one==1; +} + +static unsigned int ntohl(unsigned int netlong) +{ + if(little_endian()) + return __bswap32(netlong); + + return netlong; +} |