]> git.proxmox.com Git - mirror_qemu.git/blame - include/sysemu/cpus.h
Merge tag 'pull-riscv-to-apply-20231012-1' of https://github.com/alistair23/qemu...
[mirror_qemu.git] / include / sysemu / cpus.h
CommitLineData
296af7c9
BS
1#ifndef QEMU_CPUS_H
2#define QEMU_CPUS_H
3
b86f59c7 4#include "sysemu/accel-ops.h"
d2528bdc 5
b86f59c7
CF
6/* register accel-specific operations */
7void cpus_register_accel(const AccelOpsClass *i);
430065da 8
ae7467b1
AB
9/* return registers ops */
10const AccelOpsClass *cpus_get_accel(void);
11
b86f59c7 12/* accel/dummy-cpus.c */
430065da 13
b86f59c7 14/* Create a dummy vcpu for AccelOpsClass->create_vcpu_thread */
9ce84a0d
JA
15void dummy_start_vcpu_thread(CPUState *);
16
430065da
CF
17/* interface available for cpus accelerator threads */
18
19/* For temporary buffers for forming a name */
20#define VCPU_THREAD_NAME_SIZE 16
21
22void cpus_kick_thread(CPUState *cpu);
23bool cpu_work_list_empty(CPUState *cpu);
24bool cpu_thread_is_idle(CPUState *cpu);
740b1759 25bool all_cpu_threads_idle(void);
430065da
CF
26bool cpu_can_run(CPUState *cpu);
27void qemu_wait_io_event_common(CPUState *cpu);
28void qemu_wait_io_event(CPUState *cpu);
29void cpu_thread_signal_created(CPUState *cpu);
30void cpu_thread_signal_destroyed(CPUState *cpu);
31void cpu_handle_guest_debug(CPUState *cpu);
32
33/* end interface for cpus accelerator threads */
34
88401cbc 35bool qemu_in_vcpu_thread(void);
d3b12f5d 36void qemu_init_cpu_loop(void);
296af7c9
BS
37void resume_all_vcpus(void);
38void pause_all_vcpus(void);
b4a3d965 39void cpu_stop_current(void);
4b4629d9 40
4b4629d9
PB
41extern int icount_align_option;
42
4b4629d9
PB
43/* Unblock cpu */
44void qemu_cpu_kick_self(void);
296af7c9 45
92a5199b
TL
46bool cpus_are_resettable(void);
47
17a4663e
BS
48void cpu_synchronize_all_states(void);
49void cpu_synchronize_all_post_reset(void);
50void cpu_synchronize_all_post_init(void);
75e972da 51void cpu_synchronize_all_pre_loadvm(void);
17a4663e 52
296af7c9 53#endif