/* * Common qemu-thread implementation header file. * * Copyright Red Hat, Inc. 2018 * * Authors: * Peter Xu , * * This work is licensed under the terms of the GNU GPL, version 2 or later. * See the COPYING file in the top-level directory. */ #ifndef QEMU_THREAD_COMMON_H #define QEMU_THREAD_COMMON_H #include "qemu/typedefs.h" #include "qemu/thread.h" #include "trace.h" static inline void qemu_mutex_post_init(QemuMutex *mutex) { #ifdef CONFIG_DEBUG_MUTEX mutex->file = NULL; mutex->line = 0; #endif mutex->initialized = true; } static inline void qemu_mutex_pre_lock(QemuMutex *mutex, const char *file, int line) { trace_qemu_mutex_lock(mutex, file, line); } static inline void qemu_mutex_post_lock(QemuMutex *mutex, const char *file, int line) { #ifdef CONFIG_DEBUG_MUTEX mutex->file = file; mutex->line = line; #endif trace_qemu_mutex_locked(mutex, file, line); } static inline void qemu_mutex_pre_unlock(QemuMutex *mutex, const char *file, int line) { #ifdef CONFIG_DEBUG_MUTEX mutex->file = NULL; mutex->line = 0; #endif trace_qemu_mutex_unlock(mutex, file, line); } #endif