X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=src%2Fbuiltin.c;fp=src%2Fbuiltin.c;h=0eedec2960b104a20d7949b8dd3d8bbc8ea6b695;hb=036752dbbcb77494de9935ac459ea5cf0ea34b4b;hp=e4e2e9bdd4348cdec0e7eaad857a754269aab5e4;hpb=5d02bb1fe8eb1396c316235cb887e1c570946275;p=m6w6%2Fext-psi 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); +}