xref: /qemu/target/i386/whpx/whpx-accel-ops.h (revision 32cad1ffb81dcecf6f4a8af56d6e5892682839b1)
18ef39ecfSClaudio Fontana /*
28ef39ecfSClaudio Fontana  * Accelerator CPUS Interface
38ef39ecfSClaudio Fontana  *
48ef39ecfSClaudio Fontana  * Copyright 2020 SUSE LLC
58ef39ecfSClaudio Fontana  *
68ef39ecfSClaudio Fontana  * This work is licensed under the terms of the GNU GPL, version 2 or later.
78ef39ecfSClaudio Fontana  * See the COPYING file in the top-level directory.
88ef39ecfSClaudio Fontana  */
98ef39ecfSClaudio Fontana 
1052581c71SMarkus Armbruster #ifndef TARGET_I386_WHPX_ACCEL_OPS_H
1152581c71SMarkus Armbruster #define TARGET_I386_WHPX_ACCEL_OPS_H
128ef39ecfSClaudio Fontana 
13*32cad1ffSPhilippe Mathieu-Daudé #include "system/cpus.h"
148ef39ecfSClaudio Fontana 
1577c050b5SClaudio Fontana int whpx_init_vcpu(CPUState *cpu);
1677c050b5SClaudio Fontana int whpx_vcpu_exec(CPUState *cpu);
1777c050b5SClaudio Fontana void whpx_destroy_vcpu(CPUState *cpu);
1877c050b5SClaudio Fontana void whpx_vcpu_kick(CPUState *cpu);
1977c050b5SClaudio Fontana 
2077c050b5SClaudio Fontana void whpx_cpu_synchronize_state(CPUState *cpu);
2177c050b5SClaudio Fontana void whpx_cpu_synchronize_post_reset(CPUState *cpu);
2277c050b5SClaudio Fontana void whpx_cpu_synchronize_post_init(CPUState *cpu);
2377c050b5SClaudio Fontana void whpx_cpu_synchronize_pre_loadvm(CPUState *cpu);
24d7482ffeSIvan Shcherbakov void whpx_cpu_synchronize_pre_resume(bool step_pending);
2577c050b5SClaudio Fontana 
2677c050b5SClaudio Fontana /* state subset only touched by the VCPU itself during runtime */
2777c050b5SClaudio Fontana #define WHPX_SET_RUNTIME_STATE   1
2877c050b5SClaudio Fontana /* state subset modified during VCPU reset */
2977c050b5SClaudio Fontana #define WHPX_SET_RESET_STATE     2
3077c050b5SClaudio Fontana /* full state set, modified during initialization or on vmload */
3177c050b5SClaudio Fontana #define WHPX_SET_FULL_STATE      3
3277c050b5SClaudio Fontana 
3352581c71SMarkus Armbruster #endif /* TARGET_I386_WHPX_ACCEL_OPS_H */
34