2 * QEMU Hypervisor.framework (HVF) support
4 * This work is licensed under the terms of the GNU GPL, version 2 or later.
5 * See the COPYING file in the top-level directory.
9 /* header to be included in HVF-specific code */
15 #include <Hypervisor/Hypervisor.h>
17 #include <Hypervisor/hv.h>
21 #define HVF_SLOT_LOG (1 << 0)
23 typedef struct hvf_slot
{
32 typedef struct hvf_vcpu_caps
{
33 uint64_t vmx_cap_pinbased
;
34 uint64_t vmx_cap_procbased
;
35 uint64_t vmx_cap_procbased2
;
36 uint64_t vmx_cap_entry
;
37 uint64_t vmx_cap_exit
;
38 uint64_t vmx_cap_preemption_timer
;
46 hvf_vcpu_caps
*hvf_caps
;
47 uint64_t vtimer_offset
;
49 extern HVFState
*hvf_state
;
51 struct hvf_vcpu_state
{
55 sigset_t unblock_ipi_mask
;
58 void assert_hvf_ok(hv_return_t ret
);
59 int hvf_arch_init(void);
60 int hvf_arch_init_vcpu(CPUState
*cpu
);
61 void hvf_arch_vcpu_destroy(CPUState
*cpu
);
62 int hvf_vcpu_exec(CPUState
*);
63 hvf_slot
*hvf_find_overlap_slot(uint64_t, uint64_t);
64 int hvf_put_registers(CPUState
*);
65 int hvf_get_registers(CPUState
*);
66 void hvf_kick_vcpu_thread(CPUState
*cpu
);