From e5d355d12ed417fbde1c707121ec8fb4070d7667 Mon Sep 17 00:00:00 2001 From: aliguori Date: Fri, 24 Apr 2009 18:03:15 +0000 Subject: qemu: mutex/thread/cond wrappers and configure tweaks (Marcelo Tosatti) Signed-off-by: Marcelo Tosatti Signed-off-by: Anthony Liguori git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7237 c046a42c-6fe2-441c-8c8c-71466251a162 --- qemu-thread.h | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 qemu-thread.h (limited to 'qemu-thread.h') diff --git a/qemu-thread.h b/qemu-thread.h new file mode 100644 index 0000000..5ef4a3a --- /dev/null +++ b/qemu-thread.h @@ -0,0 +1,40 @@ +#ifndef __QEMU_THREAD_H +#define __QEMU_THREAD_H 1 +#include "semaphore.h" +#include "pthread.h" + +struct QemuMutex { + pthread_mutex_t lock; +}; + +struct QemuCond { + pthread_cond_t cond; +}; + +struct QemuThread { + pthread_t thread; +}; + +typedef struct QemuMutex QemuMutex; +typedef struct QemuCond QemuCond; +typedef struct QemuThread QemuThread; + +void qemu_mutex_init(QemuMutex *mutex); +void qemu_mutex_lock(QemuMutex *mutex); +int qemu_mutex_trylock(QemuMutex *mutex); +int qemu_mutex_timedlock(QemuMutex *mutex, uint64_t msecs); +void qemu_mutex_unlock(QemuMutex *mutex); + +void qemu_cond_init(QemuCond *cond); +void qemu_cond_signal(QemuCond *cond); +void qemu_cond_broadcast(QemuCond *cond); +void qemu_cond_wait(QemuCond *cond, QemuMutex *mutex); +int qemu_cond_timedwait(QemuCond *cond, QemuMutex *mutex, uint64_t msecs); + +void qemu_thread_create(QemuThread *thread, + void *(*start_routine)(void*), + void *arg); +void qemu_thread_signal(QemuThread *thread, int sig); +void qemu_thread_self(QemuThread *thread); +int qemu_thread_equal(QemuThread *thread1, QemuThread *thread2); +#endif -- cgit v1.1