#ifndef TBCORE_H
#define TBCORE_H
-#ifndef __WIN32__
+#ifndef _WIN32
#include <pthread.h>
#define SEP_CHAR ':'
#define FD int
#define FD_ERR INVALID_HANDLE_VALUE
#endif
-#ifndef __WIN32__
+#ifndef _WIN32
#define LOCK_T pthread_mutex_t
#define LOCK_INIT(x) pthread_mutex_init(&(x), NULL)
#define LOCK(x) pthread_mutex_lock(&(x))
#define UNLOCK(x) ReleaseMutex(x)
#endif
+#ifndef _MSC_VER
+#define BSWAP32(v) __builtin_bswap32(v)
+#define BSWAP64(v) __builtin_bswap64(v)
+#else
+#define BSWAP32(v) _byteswap_ulong(v)
+#define BSWAP64(v) _byteswap_uint64(v)
+#endif
+
#define WDLSUFFIX ".rtbw"
#define DTZSUFFIX ".rtbz"
#define WDLDIR "RTBWDIR"
ubyte num;
ubyte symmetric;
ubyte has_pawns;
-} __attribute__((__may_alias__));
+}
+#ifndef _WIN32
+__attribute__((__may_alias__))
+#endif
+;
struct TBEntry_piece {
char *data;