master
h 43 lines 1.15 KB
Raw
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_process_cpu_events_common(CPUState *cpu);
21 void cpu_thread_signal_created(CPUState *cpu);
22 void cpu_thread_signal_destroyed(CPUState *cpu);
23 void cpu_handle_guest_debug(CPUState *cpu);
24
25 /* end interface for cpus accelerator threads */
26
27 bool qemu_in_vcpu_thread(void);
28 void qemu_init_cpu_loop(void);
29 void resume_all_vcpus(void);
30 void pause_all_vcpus(void);
31 void cpu_stop_current(void);
32
33 /* Unblock cpu */
34 void qemu_cpu_kick_self(void);
35
36 bool cpus_are_resettable(void);
37
38 void cpu_synchronize_all_states(void);
39 void cpu_synchronize_all_post_reset(void);
40 void cpu_synchronize_all_post_init(void);
41 void cpu_synchronize_all_pre_loadvm(void);
42
43 #endif