8#ifndef INCLUDED_UHD_UTILS_BYTESWAP_IPP
9#define INCLUDED_UHD_UTILS_BYTESWAP_IPP
20 return _byteswap_ushort(x);
25 return _byteswap_ulong(x);
30 return _byteswap_uint64(x);
33#elif defined(__GNUC__) && __GNUC__ >= 4 && __GNUC_MINOR__ >= 3
37 return (x >> 8) | (x << 8);
42 return __builtin_bswap32(x);
47 return __builtin_bswap64(x);
50#elif defined(UHD_PLATFORM_MACOS)
51# include <libkern/OSByteOrder.h>
55 return OSSwapInt16(x);
60 return OSSwapInt32(x);
65 return OSSwapInt64(x);
68#elif defined(UHD_PLATFORM_LINUX)
90 return (x >> 8) | (x << 8);
95 return (uint32_t(
uhd::byteswap(uint16_t(x & 0xfffful))) << 16)
101 return (uint64_t(
uhd::byteswap(uint32_t(x & 0xffffffffull))) << 32)
#define UHD_INLINE
Definition config.h:53
Definition build_info.hpp:13
T ntohx(T)
network to host: short, long, or long-long
Definition byteswap.ipp:112
uint16_t byteswap(uint16_t)
perform a byteswap on a 16 bit integer
Definition byteswap.ipp:88
T htowx(T)
host to worknet: short, long, or long-long
Definition byteswap.ipp:139
T wtohx(T)
worknet to host: short, long, or long-long
Definition byteswap.ipp:130
T htonx(T)
host to network: short, long, or long-long
Definition byteswap.ipp:121