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