1*af7b0868SMatt Evans #ifndef KVM__KVM_CPU_ARCH_H 2*af7b0868SMatt Evans #define KVM__KVM_CPU_ARCH_H 3*af7b0868SMatt Evans 4*af7b0868SMatt Evans /* Architecture-specific kvm_cpu definitions. */ 5*af7b0868SMatt Evans 6*af7b0868SMatt Evans #include <linux/kvm.h> /* for struct kvm_regs */ 7*af7b0868SMatt Evans 8*af7b0868SMatt Evans #include <pthread.h> 9*af7b0868SMatt Evans 10*af7b0868SMatt Evans struct kvm; 11*af7b0868SMatt Evans 12*af7b0868SMatt Evans struct kvm_cpu { 13*af7b0868SMatt Evans pthread_t thread; /* VCPU thread */ 14*af7b0868SMatt Evans 15*af7b0868SMatt Evans unsigned long cpu_id; 16*af7b0868SMatt Evans 17*af7b0868SMatt Evans struct kvm *kvm; /* parent KVM */ 18*af7b0868SMatt Evans int vcpu_fd; /* For VCPU ioctls() */ 19*af7b0868SMatt Evans struct kvm_run *kvm_run; 20*af7b0868SMatt Evans 21*af7b0868SMatt Evans struct kvm_regs regs; 22*af7b0868SMatt Evans struct kvm_sregs sregs; 23*af7b0868SMatt Evans struct kvm_fpu fpu; 24*af7b0868SMatt Evans 25*af7b0868SMatt Evans struct kvm_msrs *msrs; /* dynamically allocated */ 26*af7b0868SMatt Evans 27*af7b0868SMatt Evans u8 is_running; 28*af7b0868SMatt Evans u8 paused; 29*af7b0868SMatt Evans 30*af7b0868SMatt Evans struct kvm_coalesced_mmio_ring *ring; 31*af7b0868SMatt Evans }; 32*af7b0868SMatt Evans 33*af7b0868SMatt Evans #endif /* KVM__KVM_CPU_ARCH_H */ 34