xref: /kvmtool/include/kvm/kvm-cpu.h (revision e300a5eef43ed25dc415b47d67cdf8d8987a9bf8)
1 #ifndef KVM__KVM_CPU_H
2 #define KVM__KVM_CPU_H
3 
4 #include "kvm/kvm-cpu-arch.h"
5 #include <stdbool.h>
6 
7 struct kvm_cpu_task {
8 	void (*func)(struct kvm_cpu *vcpu, void *data);
9 	void *data;
10 };
11 
12 int kvm_cpu__init(struct kvm *kvm);
13 int kvm_cpu__exit(struct kvm *kvm);
14 struct kvm_cpu *kvm_cpu__arch_init(struct kvm *kvm, unsigned long cpu_id);
15 void kvm_cpu__delete(struct kvm_cpu *vcpu);
16 void kvm_cpu__reset_vcpu(struct kvm_cpu *vcpu);
17 void kvm_cpu__setup_cpuid(struct kvm_cpu *vcpu);
18 void kvm_cpu__enable_singlestep(struct kvm_cpu *vcpu);
19 void kvm_cpu__run(struct kvm_cpu *vcpu);
20 int kvm_cpu__start(struct kvm_cpu *cpu);
21 bool kvm_cpu__handle_exit(struct kvm_cpu *vcpu);
22 int kvm_cpu__get_endianness(struct kvm_cpu *vcpu);
23 
24 int kvm_cpu__get_debug_fd(void);
25 void kvm_cpu__set_debug_fd(int fd);
26 void kvm_cpu__show_code(struct kvm_cpu *vcpu);
27 void kvm_cpu__show_registers(struct kvm_cpu *vcpu);
28 void kvm_cpu__show_page_tables(struct kvm_cpu *vcpu);
29 void kvm_cpu__arch_nmi(struct kvm_cpu *cpu);
30 void kvm_cpu__run_on_all_cpus(struct kvm *kvm, struct kvm_cpu_task *task);
31 
32 #endif /* KVM__KVM_CPU_H */
33