hv: define 4 vcpu modes

move enum vm_cpu_mode to guest.h
move enum vm_paging_mode to guest.h
replace REAL_MODE with CPU_MODE_REAL
replace PAGE_PROTECTED_MODE with CPU_MODE_64BIT

Signed-off-by: Binbin Wu <binbin.wu@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
This commit is contained in:
Binbin Wu
2018-05-15 11:28:16 +08:00
committed by lijinxia
parent cb262286c6
commit 744e09bc7e
7 changed files with 38 additions and 42 deletions

View File

@@ -124,20 +124,6 @@ struct seg_desc {
#define SEG_DESC_GRANULARITY(access) (((access) & 0x8000) ? 1 : 0)
#define SEG_DESC_UNUSABLE(access) (((access) & 0x10000) ? 1 : 0)
enum vm_cpu_mode {
CPU_MODE_REAL,
CPU_MODE_PROTECTED,
CPU_MODE_COMPATIBILITY, /* IA-32E mode (CS.L = 0) */
CPU_MODE_64BIT, /* IA-32E mode (CS.L = 1) */
};
enum vm_paging_mode {
PAGING_MODE_FLAT,
PAGING_MODE_32,
PAGING_MODE_PAE,
PAGING_MODE_64,
};
struct vm_guest_paging {
uint64_t cr3;
int cpl;

View File

@@ -265,9 +265,9 @@ void reset_vcpu(struct vcpu *vcpu)
void init_vcpu(struct vcpu *vcpu)
{
if (is_vcpu_bsp(vcpu))
vcpu->arch_vcpu.cpu_mode = PAGE_PROTECTED_MODE;
vcpu->arch_vcpu.cpu_mode = CPU_MODE_64BIT;
else
vcpu->arch_vcpu.cpu_mode = REAL_MODE;
vcpu->arch_vcpu.cpu_mode = CPU_MODE_REAL;
/* init_vmcs is delayed to vcpu vmcs launch first time */
}
@@ -336,9 +336,9 @@ int prepare_vcpu(struct vm *vm, int pcpu_id)
if (!vm_sw_loader)
vm_sw_loader = general_sw_loader;
vm_sw_loader(vm, vcpu);
vcpu->arch_vcpu.cpu_mode = PAGE_PROTECTED_MODE;
vcpu->arch_vcpu.cpu_mode = CPU_MODE_64BIT;
} else {
vcpu->arch_vcpu.cpu_mode = REAL_MODE;
vcpu->arch_vcpu.cpu_mode = CPU_MODE_REAL;
}
/* init_vmcs is delayed to vcpu vmcs launch first time */

View File

@@ -1065,7 +1065,7 @@ vlapic_icrlo_write_handler(struct vlapic *vlapic)
if (--target_vcpu->arch_vcpu.nr_sipi > 0)
return 0;
target_vcpu->arch_vcpu.cpu_mode = REAL_MODE;
target_vcpu->arch_vcpu.cpu_mode = CPU_MODE_REAL;
target_vcpu->arch_vcpu.sipi_vector = vec;
pr_err("Start Secondary VCPU%d for VM[%d]...",
target_vcpu->vcpu_id,