| #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; |
| 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 { |
| CONDITION_VARIABLE var; |
| bool initialized; |
| }; |
| |
| struct QemuSemaphore { |
| HANDLE sema; |
| bool initialized; |
| }; |
| |
| struct QemuEvent { |
| int value; |
| HANDLE event; |
| bool initialized; |
| }; |
| |
| typedef struct QemuThreadData QemuThreadData; |
| struct QemuThread { |
| QemuThreadData *data; |
| unsigned tid; |
| }; |
| |
| /* Only valid for joinable threads. */ |
| HANDLE qemu_thread_get_handle(QemuThread *thread); |
| |
| #endif |