-#ifndef __QEMU_THREAD_WIN32_H
-#define __QEMU_THREAD_WIN32_H 1
-#include "windows.h"
+#ifndef QEMU_THREAD_WIN32_H
+#define QEMU_THREAD_WIN32_H
+
+#include <windows.h>
struct QemuMutex {
+ SRWLOCK lock;
+ bool initialized;
+};
+
+typedef struct QemuRecMutex QemuRecMutex;
+struct QemuRecMutex {
CRITICAL_SECTION lock;
- LONG owner;
+ bool initialized;
};
+void qemu_rec_mutex_destroy(QemuRecMutex *mutex);
+void qemu_rec_mutex_lock(QemuRecMutex *mutex);
+int qemu_rec_mutex_trylock(QemuRecMutex *mutex);
+void qemu_rec_mutex_unlock(QemuRecMutex *mutex);
+
struct QemuCond {
- LONG waiters, target;
- HANDLE sema;
- HANDLE continue_event;
+ CONDITION_VARIABLE var;
+ bool initialized;
};
struct QemuSemaphore {
HANDLE sema;
+ bool initialized;
};
struct QemuEvent {
+ int value;
HANDLE event;
+ bool initialized;
};
typedef struct QemuThreadData QemuThreadData;