1 #ifndef QEMU_CPUS_H 2 #define QEMU_CPUS_H 3 4 /* register accel-specific operations */ 5 void cpus_register_accel(const AccelOpsClass *i); 6 7 /* return registers ops */ 8 const AccelOpsClass *cpus_get_accel(void); 9 10 /* interface available for cpus accelerator threads */ 11 12 /* For temporary buffers for forming a name */ 13 #define VCPU_THREAD_NAME_SIZE 16 14 15 void cpus_kick_thread(CPUState *cpu); 16 bool cpu_work_list_empty(CPUState *cpu); 17 bool cpu_thread_is_idle(CPUState *cpu); 18 bool all_cpu_threads_idle(void); 19 bool cpu_can_run(CPUState *cpu); 20 void qemu_wait_io_event_common(CPUState *cpu); 21 void qemu_wait_io_event(CPUState *cpu); 22 void cpu_thread_signal_created(CPUState *cpu); 23 void cpu_thread_signal_destroyed(CPUState *cpu); 24 void cpu_handle_guest_debug(CPUState *cpu); 25 26 /* end interface for cpus accelerator threads */ 27 28 bool qemu_in_vcpu_thread(void); 29 void qemu_init_cpu_loop(void); 30 void resume_all_vcpus(void); 31 void pause_all_vcpus(void); 32 void cpu_stop_current(void); 33 34 /* Unblock cpu */ 35 void qemu_cpu_kick_self(void); 36 37 bool cpus_are_resettable(void); 38 39 void cpu_synchronize_all_states(void); 40 void cpu_synchronize_all_post_reset(void); 41 void cpu_synchronize_all_post_init(void); 42 void cpu_synchronize_all_pre_loadvm(void); 43 44 #endif 45