qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

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 
     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