1*5c3d55faSPekka Enberg #ifndef KVM__KVM_CPU_H 2*5c3d55faSPekka Enberg #define KVM__KVM_CPU_H 3*5c3d55faSPekka Enberg 4*5c3d55faSPekka Enberg #include <linux/kvm.h> /* for struct kvm_regs */ 5*5c3d55faSPekka Enberg 6*5c3d55faSPekka Enberg #include <stdint.h> 7*5c3d55faSPekka Enberg 8*5c3d55faSPekka Enberg struct kvm; 9*5c3d55faSPekka Enberg 10*5c3d55faSPekka Enberg struct kvm_cpu { 11*5c3d55faSPekka Enberg struct kvm *kvm; /* parent KVM */ 12*5c3d55faSPekka Enberg int vcpu_fd; /* For VCPU ioctls() */ 13*5c3d55faSPekka Enberg struct kvm_run *kvm_run; 14*5c3d55faSPekka Enberg 15*5c3d55faSPekka Enberg struct kvm_regs regs; 16*5c3d55faSPekka Enberg struct kvm_sregs sregs; 17*5c3d55faSPekka Enberg struct kvm_fpu fpu; 18*5c3d55faSPekka Enberg 19*5c3d55faSPekka Enberg struct kvm_msrs *msrs; /* dynamically allocated */ 20*5c3d55faSPekka Enberg }; 21*5c3d55faSPekka Enberg 22*5c3d55faSPekka Enberg struct kvm_cpu *kvm_cpu__init(struct kvm *kvm); 23*5c3d55faSPekka Enberg void kvm_cpu__delete(struct kvm_cpu *self); 24*5c3d55faSPekka Enberg void kvm_cpu__reset_vcpu(struct kvm_cpu *self); 25*5c3d55faSPekka Enberg void kvm_cpu__setup_cpuid(struct kvm_cpu *self); 26*5c3d55faSPekka Enberg void kvm_cpu__enable_singlestep(struct kvm_cpu *self); 27*5c3d55faSPekka Enberg void kvm_cpu__run(struct kvm_cpu *self); 28*5c3d55faSPekka Enberg 29*5c3d55faSPekka Enberg void kvm_cpu__show_code(struct kvm_cpu *self); 30*5c3d55faSPekka Enberg void kvm_cpu__show_registers(struct kvm_cpu *self); 31*5c3d55faSPekka Enberg void kvm_cpu__show_page_tables(struct kvm_cpu *self); 32*5c3d55faSPekka Enberg 33*5c3d55faSPekka Enberg #endif /* KVM__KVM_CPU_H */ 34