Merge remote-tracking branch 'remotes/maxreitz/tags/pull-block-2020-03-26' into staging
[qemu.git] / include / sysemu / whpx.h
bloba84b49e7494ba46363866295076827a6e35c7350
1 /*
2 * QEMU Windows Hypervisor Platform accelerator (WHPX) support
4 * Copyright Microsoft, Corp. 2017
6 * Authors:
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.
13 #ifndef QEMU_WHPX_H
14 #define QEMU_WHPX_H
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);
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);
28 #ifdef CONFIG_WHPX
30 int whpx_enabled(void);
32 #else /* CONFIG_WHPX */
34 #define whpx_enabled() (0)
36 #endif /* CONFIG_WHPX */
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
45 #endif /* QEMU_WHPX_H */