1 /* 2 * QEMU Hypervisor.framework (HVF) support 3 * 4 * Copyright Google Inc., 2017 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 /* header to be included in non-HVF-specific code */ 12 13 #ifndef HVF_H 14 #define HVF_H 15 16 #include "sysemu/accel.h" 17 #include "qom/object.h" 18 19 #ifdef CONFIG_HVF 20 uint32_t hvf_get_supported_cpuid(uint32_t func, uint32_t idx, 21 int reg); 22 extern bool hvf_allowed; 23 #define hvf_enabled() (hvf_allowed) 24 #else /* !CONFIG_HVF */ 25 #define hvf_enabled() 0 26 #define hvf_get_supported_cpuid(func, idx, reg) 0 27 #endif /* !CONFIG_HVF */ 28 29 int hvf_init_vcpu(CPUState *); 30 int hvf_vcpu_exec(CPUState *); 31 void hvf_cpu_synchronize_state(CPUState *); 32 void hvf_cpu_synchronize_post_reset(CPUState *); 33 void hvf_cpu_synchronize_post_init(CPUState *); 34 void hvf_cpu_synchronize_pre_loadvm(CPUState *); 35 void hvf_vcpu_destroy(CPUState *); 36 37 #define TYPE_HVF_ACCEL ACCEL_CLASS_NAME("hvf") 38 39 typedef struct HVFState HVFState; 40 DECLARE_INSTANCE_CHECKER(HVFState, HVF_STATE, 41 TYPE_HVF_ACCEL) 42 43 #endif 44