summaryrefslogtreecommitdiff
path: root/libusb/os/threads_windows.c
diff options
context:
space:
mode:
authorPete Batard <pbatard@gmail.com>2010-08-16 23:48:00 +0100
committerPete Batard <pbatard@gmail.com>2010-08-16 23:48:00 +0100
commit2ffa5342c4237cec17e391e5bb809f382240d9a9 (patch)
tree459720ad69060643762dba6a560b0b3050590800 /libusb/os/threads_windows.c
parent3cbb8af8742f1384f25df84b3d4047983cbce709 (diff)
downloadlibusb-2ffa5342c4237cec17e391e5bb809f382240d9a9.tar.gz
only apply previous workaround for 32 bit buildspbr295
Diffstat (limited to 'libusb/os/threads_windows.c')
-rw-r--r--libusb/os/threads_windows.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/libusb/os/threads_windows.c b/libusb/os/threads_windows.c
index 9d64fb0..5eb0478 100644
--- a/libusb/os/threads_windows.c
+++ b/libusb/os/threads_windows.c
@@ -26,12 +26,17 @@
#include "libusbi.h"
// Workaround for MinGW-w64 multilib bug
+#if defined(_WIN64)
+#define INIT_INTERLOCKEDEXCHANGE
+#define pInterlockedExchange InterlockedExchange
+#else
static LONG (WINAPI *pInterlockedExchange)(LONG volatile *, LONG) = NULL;
#define INIT_INTERLOCKEDEXCHANGE if (pInterlockedExchange == NULL) { \
pInterlockedExchange = (LONG (WINAPI *)(LONG volatile *, LONG)) \
GetProcAddress(GetModuleHandle("KERNEL32"), "InterlockedExchange"); \
if (pInterlockedExchange == NULL) return ((errno=ENOENT)); \
}
+#endif
int usbi_mutex_init(usbi_mutex_t *mutex,
const usbi_mutexattr_t *attr) {