1 /* 2 * QEMU Windows Hypervisor Platform accelerator (WHPX) support 3 * 4 * Copyright Microsoft, Corp. 2017 5 * 6 * Authors: 7 * 8 * This work is licensed under the terms of the GNU GPL, version 2 or later. 9 * See the COPYING file in the top-level directory. 10 * 11 */ 12 13 #ifndef QEMU_WHPX_H 14 #define QEMU_WHPX_H 15 16 17 int whpx_init_vcpu(CPUState *cpu); 18 int whpx_vcpu_exec(CPUState *cpu); 19 void whpx_destroy_vcpu(CPUState *cpu); 20 void whpx_vcpu_kick(CPUState *cpu); 21 22 23 void whpx_cpu_synchronize_state(CPUState *cpu); 24 void whpx_cpu_synchronize_post_reset(CPUState *cpu); 25 void whpx_cpu_synchronize_post_init(CPUState *cpu); 26 void whpx_cpu_synchronize_pre_loadvm(CPUState *cpu); 27 28 #ifdef CONFIG_WHPX 29 30 int whpx_enabled(void); 31 32 #else /* CONFIG_WHPX */ 33 34 #define whpx_enabled() (0) 35 36 #endif /* CONFIG_WHPX */ 37 38 /* state subset only touched by the VCPU itself during runtime */ 39 #define WHPX_SET_RUNTIME_STATE 1 40 /* state subset modified during VCPU reset */ 41 #define WHPX_SET_RESET_STATE 2 42 /* full state set, modified during initialization or on vmload */ 43 #define WHPX_SET_FULL_STATE 3 44 45 #endif /* QEMU_WHPX_H */ 46