| #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_impl qemu_mutex_lock_impl |
| #define qemu_rec_mutex_trylock_impl qemu_mutex_trylock_impl |
| #define qemu_rec_mutex_unlock qemu_mutex_unlock |
| |
| struct QemuMutex { |
| pthread_mutex_t lock; |
| #ifdef CONFIG_DEBUG_MUTEX |
| const char *file; |
| int line; |
| #endif |
| bool initialized; |
| }; |
| |
| struct QemuCond { |
| pthread_cond_t cond; |
| bool initialized; |
| }; |
| |
| struct QemuSemaphore { |
| #ifndef CONFIG_SEM_TIMEDWAIT |
| pthread_mutex_t lock; |
| pthread_cond_t cond; |
| unsigned int count; |
| #else |
| sem_t sem; |
| #endif |
| bool initialized; |
| }; |
| |
| struct QemuEvent { |
| #ifndef __linux__ |
| pthread_mutex_t lock; |
| pthread_cond_t cond; |
| #endif |
| unsigned value; |
| bool initialized; |
| }; |
| |
| struct QemuThread { |
| pthread_t thread; |
| }; |
| |
| #endif |