From 2ae342bdedffbcd89a0e3607bf8f2e3d2316237a Mon Sep 17 00:00:00 2001 From: Nikias Bassen Date: Sat, 16 Dec 2023 00:12:29 +0100 Subject: win32: Fix external compilation using libimobiledevice-glue/thread.h When using mutex_t data type externally, compilation might fail if CRITICAL_SECTION is not defined, so we just define our own copy. --- include/libimobiledevice-glue/thread.h | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/include/libimobiledevice-glue/thread.h b/include/libimobiledevice-glue/thread.h index a960410..b9c0bd0 100644 --- a/include/libimobiledevice-glue/thread.h +++ b/include/libimobiledevice-glue/thread.h @@ -27,8 +27,21 @@ #ifdef WIN32 typedef void* HANDLE; typedef HANDLE THREAD_T; -struct _RTL_CRITICAL_SECTION; -typedef struct _RTL_CRITICAL_SECTION mutex_t; +#pragma pack(push, 8) +struct _CRITICAL_SECTION_ST { + void* DebugInfo; + long LockCount; + long RecursionCount; + HANDLE OwningThread; + HANDLE LockSemaphore; +#if defined(_WIN64) + unsigned __int64 SpinCount; +#else + unsigned long SpinCount; +#endif +}; +#pragma pack(pop) +typedef struct _CRITICAL_SECTION_ST mutex_t; typedef struct { HANDLE sem; } cond_t; -- cgit v1.1-32-gdbae