diff options
author | aliguori <aliguori@c046a42c-6fe2-441c-8c8c-71466251a162> | 2009-04-24 18:03:15 +0000 |
---|---|---|
committer | aliguori <aliguori@c046a42c-6fe2-441c-8c8c-71466251a162> | 2009-04-24 18:03:15 +0000 |
commit | e5d355d12ed417fbde1c707121ec8fb4070d7667 (patch) | |
tree | 7c99a06405bba6c8fe8b9973765fe2890ce59df1 /qemu-thread.h | |
parent | d9f75a4eb449c96dd47731a4d6f1619f3c23b5e7 (diff) |
qemu: mutex/thread/cond wrappers and configure tweaks (Marcelo Tosatti)
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7237 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'qemu-thread.h')
-rw-r--r-- | qemu-thread.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/qemu-thread.h b/qemu-thread.h new file mode 100644 index 0000000000..5ef4a3aed5 --- /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 |