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    QemuMutex mutex;
  31    QemuCond cond;
  32    unsigned int count;
  33};
  34
  35struct QemuEvent {
  36#ifndef __linux__
  37    pthread_mutex_t lock;
  38    pthread_cond_t cond;
  39#endif
  40    unsigned value;
  41    bool initialized;
  42};
  43
  44struct QemuThread {
  45    pthread_t thread;
  46};
  47
  48#endif
  49