| /* | |
| * QEMU Hardware accelerators support | |
| * | |
| * Copyright 2016 Google, Inc. | |
| * | |
| * This work is licensed under the terms of the GNU GPL, version 2 or later. | |
| * See the COPYING file in the top-level directory. | |
| * | |
| */ | |
| #ifndef QEMU_HW_ACCEL_H | |
| #define QEMU_HW_ACCEL_H | |
| #include "hw/core/cpu.h" | |
| #include "system/kvm.h" | |
| #include "system/hvf.h" | |
| #include "system/mshv.h" | |
| #include "system/whpx.h" | |
| #include "system/nvmm.h" | |
| #include "system/nitro-accel.h" | |
| /** | |
| * cpu_synchronize_state: | |
| * cpu_synchronize_pre_loadvm: | |
| * @cpu: The vCPU to synchronize. | |
| * | |
| * Request to synchronize QEMU vCPU registers from the hardware accelerator | |
| * (the hardware accelerator is the reference). | |
| */ | |
| void cpu_synchronize_state(CPUState *cpu); | |
| void cpu_synchronize_pre_loadvm(CPUState *cpu); | |
| /** | |
| * cpu_synchronize_post_reset: | |
| * cpu_synchronize_post_init: | |
| * @cpu: The vCPU to synchronize. | |
| * | |
| * Request to synchronize QEMU vCPU registers to the hardware accelerator | |
| * (QEMU is the reference). | |
| */ | |
| void cpu_synchronize_post_reset(CPUState *cpu); | |
| void cpu_synchronize_post_init(CPUState *cpu); | |
| /** | |
| * hwaccel_enabled: | |
| * | |
| * Returns: %true if a hardware accelerator is enabled, %false otherwise. | |
| */ | |
| static inline bool hwaccel_enabled(void) | |
| { | |
| return hvf_enabled() | |
| || kvm_enabled() | |
| || nvmm_enabled() | |
| || whpx_enabled(); | |
| } | |
| #endif /* QEMU_HW_ACCEL_H */ |