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