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