2
0

cpus.h 1.3 KB

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