qemu/include/qemu/thread-posix.h
<<
>>
Prefs
   1#ifndef QEMU_THREAD_POSIX_H
   2#define QEMU_THREAD_POSIX_H
   3
   4#include <pthread.h>
   5#include <semaphore.h>
   6
   7struct QemuMutex {
   8    pthread_mutex_t lock;
   9#ifdef CONFIG_DEBUG_MUTEX
  10    const char *file;
  11    int line;
  12#endif
  13    bool initialized;
  14};
  15
  16/*
  17 * QemuRecMutex cannot be a typedef of QemuMutex lest we have two
  18 * compatible cases in _Generic.  See qemu/lockable.h.
  19 */
  20typedef struct QemuRecMutex {
  21    QemuMutex m;
  22} QemuRecMutex;
  23
  24struct QemuCond {
  25    pthread_cond_t cond;
  26    bool initialized;
  27};
  28
  29struct QemuSemaphore {
  30#ifndef CONFIG_SEM_TIMEDWAIT
  31    pthread_mutex_t lock;
  32    pthread_cond_t cond;
  33    unsigned int count;
  34#else
  35    sem_t sem;
  36#endif
  37    bool initialized;
  38};
  39
  40struct QemuEvent {
  41#ifndef __linux__
  42    pthread_mutex_t lock;
  43    pthread_cond_t cond;
  44#endif
  45    unsigned value;
  46    bool initialized;
  47};
  48
  49struct QemuThread {
  50    pthread_t thread;
  51};
  52
  53#endif
  54