X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-psi;a=blobdiff_plain;f=src%2Fbuiltin.c;h=0eedec2960b104a20d7949b8dd3d8bbc8ea6b695;hp=e4e2e9bdd4348cdec0e7eaad857a754269aab5e4;hb=1df8639baf324038edd00ad15501ea3abb502cac;hpb=a7ac1c0a3c855321f21682c127a4b707de33a303 diff --git a/src/builtin.c b/src/builtin.c index e4e2e9b..0eedec2 100644 --- a/src/builtin.c +++ b/src/builtin.c @@ -178,3 +178,43 @@ static bool COUNTER__(struct psi_cpp *cpp, struct psi_token *target, return true; } + +#ifdef __APPLE__ +#include +# define bswap_16(u) _OSSwapInt16(u) +# define bswap_32(u) _OSSwapInt32(u) +# define bswap_64(u) _OSSwapInt64(u) +#elif defined(__FreeBSD__) +# include +# define bswap_16(u) bswap16(u) +# define bswap_32(u) bswap32(u) +# define bswap_64(u) bswap64(u) +#elif defined(__OpenBSD__) +# include +# define bswap_16(u) swap16(u) +# define bswap_32(u) swap32(u) +# define bswap_64(u) swap64(u) +#elif defined(__NetBSD__) +# include +# include +# define bswap_16(u) bswap16(u) +# define bswap_32(u) bswap32(u) +# define bswap_64(u) bswap64(u) +#else +# include +#endif + +uint16_t psi_swap16(uint16_t u) +{ + return bswap_16(u); +} + +uint32_t psi_swap32(uint32_t u) +{ + return bswap_32(u); +} + +uint64_t psi_swap64(uint64_t u) +{ + return bswap_64(u); +}