1296af7c9SBlue Swirl #ifndef QEMU_CPUS_H 2296af7c9SBlue Swirl #define QEMU_CPUS_H 3296af7c9SBlue Swirl 4b86f59c7SClaudio Fontana /* register accel-specific operations */ 5b86f59c7SClaudio Fontana void cpus_register_accel(const AccelOpsClass *i); 6430065daSClaudio Fontana 7*ae7467b1SAlex Bennée /* return registers ops */ 8*ae7467b1SAlex Bennée const AccelOpsClass *cpus_get_accel(void); 9*ae7467b1SAlex Bennée 10b86f59c7SClaudio Fontana /* accel/dummy-cpus.c */ 11430065daSClaudio Fontana 12b86f59c7SClaudio Fontana /* Create a dummy vcpu for AccelOpsClass->create_vcpu_thread */ 139ce84a0dSJason Andryuk void dummy_start_vcpu_thread(CPUState *); 149ce84a0dSJason Andryuk 15430065daSClaudio Fontana /* interface available for cpus accelerator threads */ 16430065daSClaudio Fontana 17430065daSClaudio Fontana /* For temporary buffers for forming a name */ 18430065daSClaudio Fontana #define VCPU_THREAD_NAME_SIZE 16 19430065daSClaudio Fontana 20430065daSClaudio Fontana void cpus_kick_thread(CPUState *cpu); 21430065daSClaudio Fontana bool cpu_work_list_empty(CPUState *cpu); 22430065daSClaudio Fontana bool cpu_thread_is_idle(CPUState *cpu); 23740b1759SClaudio Fontana bool all_cpu_threads_idle(void); 24430065daSClaudio Fontana bool cpu_can_run(CPUState *cpu); 25430065daSClaudio Fontana void qemu_wait_io_event_common(CPUState *cpu); 26430065daSClaudio Fontana void qemu_wait_io_event(CPUState *cpu); 27430065daSClaudio Fontana void cpu_thread_signal_created(CPUState *cpu); 28430065daSClaudio Fontana void cpu_thread_signal_destroyed(CPUState *cpu); 29430065daSClaudio Fontana void cpu_handle_guest_debug(CPUState *cpu); 30430065daSClaudio Fontana 31430065daSClaudio Fontana /* end interface for cpus accelerator threads */ 32430065daSClaudio Fontana 3388401cbcSPaolo Bonzini bool qemu_in_vcpu_thread(void); 34d3b12f5dSPaolo Bonzini void qemu_init_cpu_loop(void); 35296af7c9SBlue Swirl void resume_all_vcpus(void); 36296af7c9SBlue Swirl void pause_all_vcpus(void); 37b4a3d965SJan Kiszka void cpu_stop_current(void); 384b4629d9SPaolo Bonzini 394b4629d9SPaolo Bonzini /* Unblock cpu */ 404b4629d9SPaolo Bonzini void qemu_cpu_kick_self(void); 41296af7c9SBlue Swirl 4292a5199bSTom Lendacky bool cpus_are_resettable(void); 4392a5199bSTom Lendacky 4417a4663eSBlue Swirl void cpu_synchronize_all_states(void); 4517a4663eSBlue Swirl void cpu_synchronize_all_post_reset(void); 4617a4663eSBlue Swirl void cpu_synchronize_all_post_init(void); 4775e972daSDavid Gibson void cpu_synchronize_all_pre_loadvm(void); 4817a4663eSBlue Swirl 49296af7c9SBlue Swirl #endif 50