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