cpus.h (1541B)
1#ifndef QEMU_CPUS_H 2#define QEMU_CPUS_H 3 4#include "qemu/timer.h" 5#include "sysemu/accel-ops.h" 6 7/* register accel-specific operations */ 8void cpus_register_accel(const AccelOpsClass *i); 9 10/* accel/dummy-cpus.c */ 11 12/* Create a dummy vcpu for AccelOpsClass->create_vcpu_thread */ 13void dummy_start_vcpu_thread(CPUState *); 14 15/* interface available for cpus accelerator threads */ 16 17/* For temporary buffers for forming a name */ 18#define VCPU_THREAD_NAME_SIZE 16 19 20void cpus_kick_thread(CPUState *cpu); 21bool cpu_work_list_empty(CPUState *cpu); 22bool cpu_thread_is_idle(CPUState *cpu); 23bool all_cpu_threads_idle(void); 24bool cpu_can_run(CPUState *cpu); 25void qemu_wait_io_event_common(CPUState *cpu); 26void qemu_wait_io_event(CPUState *cpu); 27void cpu_thread_signal_created(CPUState *cpu); 28void cpu_thread_signal_destroyed(CPUState *cpu); 29void cpu_handle_guest_debug(CPUState *cpu); 30 31/* end interface for cpus accelerator threads */ 32 33bool qemu_in_vcpu_thread(void); 34void qemu_init_cpu_loop(void); 35void resume_all_vcpus(void); 36void pause_all_vcpus(void); 37void cpu_stop_current(void); 38 39extern int icount_align_option; 40 41/* Unblock cpu */ 42void qemu_cpu_kick_self(void); 43 44bool cpus_are_resettable(void); 45 46void cpu_synchronize_all_states(void); 47void cpu_synchronize_all_post_reset(void); 48void cpu_synchronize_all_post_init(void); 49void cpu_synchronize_all_pre_loadvm(void); 50 51#ifndef CONFIG_USER_ONLY 52/* vl.c */ 53/* *-user doesn't have configurable SMP topology */ 54extern int smp_cores; 55extern int smp_threads; 56#endif 57 58void list_cpus(const char *optarg); 59 60#endif