| #ifndef QEMU_THREAD_POSIX_H |
| #define QEMU_THREAD_POSIX_H |
| |
| #include <pthread.h> |
| #include <semaphore.h> |
| |
| typedef QemuMutex QemuRecMutex; |
| #define qemu_rec_mutex_destroy qemu_mutex_destroy |
| #define qemu_rec_mutex_lock qemu_mutex_lock |
| #define qemu_rec_mutex_try_lock qemu_mutex_try_lock |
| #define qemu_rec_mutex_unlock qemu_mutex_unlock |
| |
| struct QemuMutex { |
| pthread_mutex_t lock; |
| }; |
| |
| struct QemuCond { |
| pthread_cond_t cond; |
| }; |
| |
| struct QemuSemaphore { |
| #if defined(__APPLE__) || defined(__NetBSD__) |
| pthread_mutex_t lock; |
| pthread_cond_t cond; |
| unsigned int count; |
| #else |
| sem_t sem; |
| #endif |
| }; |
| |
| struct QemuEvent { |
| #ifndef __linux__ |
| pthread_mutex_t lock; |
| pthread_cond_t cond; |
| #endif |
| unsigned value; |
| }; |
| |
| struct QemuThread { |
| pthread_t thread; |
| }; |
| |
| #endif |