qemu/util/qemu-thread-common.h
<<
>>
Prefs
   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
  55