]> git.proxmox.com Git - mirror_qemu.git/blob - util/qemu-thread-common.h
Merge remote-tracking branch 'remotes/palmer/tags/riscv-for-master-3.2-part1' into...
[mirror_qemu.git] / util / qemu-thread-common.h
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
19 static 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
28 static 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
34 static 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
44 static 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