Paolo Bonzini | 9257d46 | 2011-03-12 17:43:52 +0100 | [diff] [blame] | 1 | #ifndef __QEMU_THREAD_POSIX_H |
2 | #define __QEMU_THREAD_POSIX_H 1 | ||||
3 | #include "pthread.h" | ||||
Paolo Bonzini | 38b14db | 2011-08-08 14:36:41 +0200 | [diff] [blame] | 4 | #include <semaphore.h> |
Paolo Bonzini | 9257d46 | 2011-03-12 17:43:52 +0100 | [diff] [blame] | 5 | |
6 | struct QemuMutex { | ||||
7 | pthread_mutex_t lock; | ||||
8 | }; | ||||
9 | |||||
10 | struct QemuCond { | ||||
11 | pthread_cond_t cond; | ||||
12 | }; | ||||
13 | |||||
Paolo Bonzini | 38b14db | 2011-08-08 14:36:41 +0200 | [diff] [blame] | 14 | struct QemuSemaphore { |
Brad Smith | 927fa90 | 2012-12-28 01:38:11 -0500 | [diff] [blame] | 15 | #if defined(__APPLE__) || defined(__NetBSD__) |
Paolo Bonzini | c166cb7 | 2012-11-02 15:43:21 +0100 | [diff] [blame] | 16 | pthread_mutex_t lock; |
17 | pthread_cond_t cond; | ||||
Izumi Tsutsui | 79761c6 | 2013-07-03 17:58:14 +0900 | [diff] [blame] | 18 | unsigned int count; |
Paolo Bonzini | c166cb7 | 2012-11-02 15:43:21 +0100 | [diff] [blame] | 19 | #else |
Paolo Bonzini | 38b14db | 2011-08-08 14:36:41 +0200 | [diff] [blame] | 20 | sem_t sem; |
Paolo Bonzini | c166cb7 | 2012-11-02 15:43:21 +0100 | [diff] [blame] | 21 | #endif |
Paolo Bonzini | 38b14db | 2011-08-08 14:36:41 +0200 | [diff] [blame] | 22 | }; |
23 | |||||
Paolo Bonzini | c7c4d06 | 2013-09-25 14:20:59 +0800 | [diff] [blame] | 24 | struct QemuEvent { |
25 | #ifndef __linux__ | ||||
26 | pthread_mutex_t lock; | ||||
27 | pthread_cond_t cond; | ||||
28 | #endif | ||||
29 | unsigned value; | ||||
30 | }; | ||||
31 | |||||
Paolo Bonzini | 9257d46 | 2011-03-12 17:43:52 +0100 | [diff] [blame] | 32 | struct QemuThread { |
33 | pthread_t thread; | ||||
34 | }; | ||||
35 | |||||
Paolo Bonzini | 9257d46 | 2011-03-12 17:43:52 +0100 | [diff] [blame] | 36 | #endif |