1 #ifndef QEMU_THREAD_POSIX_H 2 #define QEMU_THREAD_POSIX_H 3 4 #include <pthread.h> 5 #include <semaphore.h> 6 7 typedef QemuMutex QemuRecMutex; 8 #define qemu_rec_mutex_destroy qemu_mutex_destroy 9 #define qemu_rec_mutex_lock qemu_mutex_lock 10 #define qemu_rec_mutex_try_lock qemu_mutex_try_lock 11 #define qemu_rec_mutex_unlock qemu_mutex_unlock 12 13 struct QemuMutex { 14 pthread_mutex_t lock; 15 }; 16 17 struct QemuCond { 18 pthread_cond_t cond; 19 }; 20 21 struct QemuSemaphore { 22 #if defined(__APPLE__) || defined(__NetBSD__) 23 pthread_mutex_t lock; 24 pthread_cond_t cond; 25 unsigned int count; 26 #else 27 sem_t sem; 28 #endif 29 }; 30 31 struct QemuEvent { 32 #ifndef __linux__ 33 pthread_mutex_t lock; 34 pthread_cond_t cond; 35 #endif 36 unsigned value; 37 }; 38 39 struct QemuThread { 40 pthread_t thread; 41 }; 42 43 #endif 44