qemu-thread-common.h (1251B)
1/* 2 * Common qemu-thread implementation header file. 3 * 4 * Copyright Red Hat, Inc. 2018 5 * 6 * Authors: 7 * Peter Xu <peterx@redhat.com>, 8 * 9 * This work is licensed under the terms of the GNU GPL, version 2 or later. 10 * See the COPYING file in the top-level directory. 11 */ 12 13#ifndef QEMU_THREAD_COMMON_H 14#define QEMU_THREAD_COMMON_H 15 16#include "qemu/thread.h" 17#include "trace.h" 18 19static inline void qemu_mutex_post_init(QemuMutex *mutex) 20{ 21#ifdef CONFIG_DEBUG_MUTEX 22 mutex->file = NULL; 23 mutex->line = 0; 24#endif 25 mutex->initialized = true; 26} 27 28static inline void qemu_mutex_pre_lock(QemuMutex *mutex, 29 const char *file, int line) 30{ 31 trace_qemu_mutex_lock(mutex, file, line); 32} 33 34static inline void qemu_mutex_post_lock(QemuMutex *mutex, 35 const char *file, int line) 36{ 37#ifdef CONFIG_DEBUG_MUTEX 38 mutex->file = file; 39 mutex->line = line; 40#endif 41 trace_qemu_mutex_locked(mutex, file, line); 42} 43 44static inline void qemu_mutex_pre_unlock(QemuMutex *mutex, 45 const char *file, int line) 46{ 47#ifdef CONFIG_DEBUG_MUTEX 48 mutex->file = NULL; 49 mutex->line = 0; 50#endif 51 trace_qemu_mutex_unlock(mutex, file, line); 52} 53 54#endif