xref: /qemu/include/qemu/thread-posix.h (revision abff1abf)
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_impl    qemu_mutex_lock_impl
10 #define qemu_rec_mutex_trylock_impl qemu_mutex_trylock_impl
11 #define qemu_rec_mutex_unlock qemu_mutex_unlock
12 
13 struct QemuMutex {
14     pthread_mutex_t lock;
15 #ifdef CONFIG_DEBUG_MUTEX
16     const char *file;
17     int line;
18 #endif
19     bool initialized;
20 };
21 
22 struct QemuCond {
23     pthread_cond_t cond;
24     bool initialized;
25 };
26 
27 struct QemuSemaphore {
28 #ifndef CONFIG_SEM_TIMEDWAIT
29     pthread_mutex_t lock;
30     pthread_cond_t cond;
31     unsigned int count;
32 #else
33     sem_t sem;
34 #endif
35     bool initialized;
36 };
37 
38 struct QemuEvent {
39 #ifndef __linux__
40     pthread_mutex_t lock;
41     pthread_cond_t cond;
42 #endif
43     unsigned value;
44     bool initialized;
45 };
46 
47 struct QemuThread {
48     pthread_t thread;
49 };
50 
51 #endif
52