+#ifdef WIN32
+#include <winbase.h>
+#define GSSEAP_MUTEX CRITICAL_SECTION
+// wrapper for EnterCriticalSection() to provide return value
+inline int win32_mutex_init(CRITICAL_SECTION* m)
+{
+ EnterCriticalSection(m);
+ return 0;
+}
+
+#define GSSEAP_MUTEX_INIT(m) win32_mutex_init((m))
+#define GSSEAP_MUTEX_DESTROY(m) DeleteCriticalSection((m))
+#define GSSEAP_MUTEX_LOCK(m) EnterCriticalSection((m))
+#define GSSEAP_MUTEX_UNLOCK(m) LeaveCriticalSection((m))
+
+#else