qemu/include/sysemu/hw_accel.h
<<
>>
Prefs
   1/*
   2 * QEMU Hardware accelertors support
   3 *
   4 * Copyright 2016 Google, Inc.
   5 *
   6 * This work is licensed under the terms of the GNU GPL, version 2 or later.
   7 * See the COPYING file in the top-level directory.
   8 *
   9 */
  10
  11#ifndef QEMU_HW_ACCEL_H
  12#define QEMU_HW_ACCEL_H
  13
  14#include "qom/cpu.h"
  15#include "sysemu/hax.h"
  16#include "sysemu/kvm.h"
  17#include "sysemu/whpx.h"
  18
  19static inline void cpu_synchronize_state(CPUState *cpu)
  20{
  21    if (kvm_enabled()) {
  22        kvm_cpu_synchronize_state(cpu);
  23    }
  24    if (hax_enabled()) {
  25        hax_cpu_synchronize_state(cpu);
  26    }
  27    if (whpx_enabled()) {
  28        whpx_cpu_synchronize_state(cpu);
  29    }
  30}
  31
  32static inline void cpu_synchronize_post_reset(CPUState *cpu)
  33{
  34    if (kvm_enabled()) {
  35        kvm_cpu_synchronize_post_reset(cpu);
  36    }
  37    if (hax_enabled()) {
  38        hax_cpu_synchronize_post_reset(cpu);
  39    }
  40    if (whpx_enabled()) {
  41        whpx_cpu_synchronize_post_reset(cpu);
  42    }
  43}
  44
  45static inline void cpu_synchronize_post_init(CPUState *cpu)
  46{
  47    if (kvm_enabled()) {
  48        kvm_cpu_synchronize_post_init(cpu);
  49    }
  50    if (hax_enabled()) {
  51        hax_cpu_synchronize_post_init(cpu);
  52    }
  53    if (whpx_enabled()) {
  54        whpx_cpu_synchronize_post_init(cpu);
  55    }
  56}
  57
  58static inline void cpu_synchronize_pre_loadvm(CPUState *cpu)
  59{
  60    if (kvm_enabled()) {
  61        kvm_cpu_synchronize_pre_loadvm(cpu);
  62    }
  63    if (hax_enabled()) {
  64        hax_cpu_synchronize_pre_loadvm(cpu);
  65    }
  66    if (whpx_enabled()) {
  67        whpx_cpu_synchronize_pre_loadvm(cpu);
  68    }
  69}
  70
  71#endif /* QEMU_HW_ACCEL_H */
  72