@@ -264,12 +264,12 @@ static void init_guest_state(struct vcpu *vcpu)
264
264
265
265
/* Setup guest control register values */
266
266
/* Set up guest CRO field */
267
- if (get_vcpu_mode (vcpu ) == REAL_MODE ) {
267
+ if (get_vcpu_mode (vcpu ) == CPU_MODE_REAL ) {
268
268
/*cur_context->cr0 = (CR0_CD | CR0_NW | CR0_ET | CR0_NE);*/
269
269
cur_context -> cr0 = CR0_ET | CR0_NE ;
270
270
cur_context -> cr3 = 0 ;
271
271
cur_context -> cr4 = CR4_VMXE ;
272
- } else if (get_vcpu_mode (vcpu ) == PAGE_PROTECTED_MODE ) {
272
+ } else if (get_vcpu_mode (vcpu ) == CPU_MODE_64BIT ) {
273
273
cur_context -> cr0 = ((uint64_t )CR0_PG | CR0_PE | CR0_NE );
274
274
cur_context -> cr4 = ((uint64_t )CR4_PSE | CR4_PAE | CR4_MCE | CR4_VMXE );
275
275
cur_context -> cr3 = vm -> arch_vm .guest_init_pml4 | CR3_PWT ;
@@ -303,7 +303,7 @@ static void init_guest_state(struct vcpu *vcpu)
303
303
/***************************************************/
304
304
/* Set Code Segment - CS */
305
305
/***************************************************/
306
- if (get_vcpu_mode (vcpu ) == REAL_MODE ) {
306
+ if (get_vcpu_mode (vcpu ) == CPU_MODE_REAL ) {
307
307
/* AP is initialized with real mode
308
308
* and CS value is left shift 8 bits from sipi vector;
309
309
*/
@@ -343,15 +343,15 @@ static void init_guest_state(struct vcpu *vcpu)
343
343
/***************************************************/
344
344
/* Set up guest instruction pointer */
345
345
field = VMX_GUEST_RIP ;
346
- if (get_vcpu_mode (vcpu ) == REAL_MODE )
346
+ if (get_vcpu_mode (vcpu ) == CPU_MODE_REAL )
347
347
value32 = 0 ;
348
348
else
349
349
value32 = (uint32_t ) ((uint64_t ) vcpu -> entry_addr & 0xFFFFFFFF );
350
350
351
351
pr_dbg ("GUEST RIP on VMEntry %x " , value32 );
352
352
exec_vmwrite (field , value32 );
353
353
354
- if (get_vcpu_mode (vcpu ) == PAGE_PROTECTED_MODE ) {
354
+ if (get_vcpu_mode (vcpu ) == CPU_MODE_64BIT ) {
355
355
/* Set up guest stack pointer to 0 */
356
356
field = VMX_GUEST_RSP ;
357
357
value32 = 0 ;
@@ -365,13 +365,13 @@ static void init_guest_state(struct vcpu *vcpu)
365
365
/***************************************************/
366
366
367
367
/* GDTR - Global Descriptor Table */
368
- if (get_vcpu_mode (vcpu ) == REAL_MODE ) {
368
+ if (get_vcpu_mode (vcpu ) == CPU_MODE_REAL ) {
369
369
/* Base */
370
370
base = 0 ;
371
371
372
372
/* Limit */
373
373
limit = 0xFFFF ;
374
- } else if (get_vcpu_mode (vcpu ) == PAGE_PROTECTED_MODE ) {
374
+ } else if (get_vcpu_mode (vcpu ) == CPU_MODE_64BIT ) {
375
375
descriptor_table gdtb = {0 , 0 };
376
376
377
377
/* Base */ /* TODO: Should guest GDTB point to host GDTB ? */
@@ -400,13 +400,13 @@ static void init_guest_state(struct vcpu *vcpu)
400
400
pr_dbg ("VMX_GUEST_GDTR_LIMIT: 0x%x " , limit );
401
401
402
402
/* IDTR - Interrupt Descriptor Table */
403
- if (get_vcpu_mode (vcpu ) == REAL_MODE ) {
403
+ if (get_vcpu_mode (vcpu ) == CPU_MODE_REAL ) {
404
404
/* Base */
405
405
base = 0 ;
406
406
407
407
/* Limit */
408
408
limit = 0xFFFF ;
409
- } else if (get_vcpu_mode (vcpu ) == PAGE_PROTECTED_MODE ) {
409
+ } else if (get_vcpu_mode (vcpu ) == CPU_MODE_64BIT ) {
410
410
descriptor_table idtb = {0 , 0 };
411
411
412
412
/* TODO: Should guest IDTR point to host IDTR ? */
@@ -444,11 +444,11 @@ static void init_guest_state(struct vcpu *vcpu)
444
444
/* ES, CS, SS, DS, FS, GS */
445
445
/***************************************************/
446
446
data32_idx = 0x10 ;
447
- if (get_vcpu_mode (vcpu ) == REAL_MODE ) {
447
+ if (get_vcpu_mode (vcpu ) == CPU_MODE_REAL ) {
448
448
es = ss = ds = fs = gs = data32_idx ;
449
449
limit = 0xffff ;
450
450
451
- } else if (get_vcpu_mode (vcpu ) == PAGE_PROTECTED_MODE ) {
451
+ } else if (get_vcpu_mode (vcpu ) == CPU_MODE_64BIT ) {
452
452
asm volatile ("movw %%es, %%ax" :"=a" (es ));
453
453
asm volatile ("movw %%ss, %%ax" :"=a" (ss ));
454
454
asm volatile ("movw %%ds, %%ax" :"=a" (ds ));
@@ -496,9 +496,9 @@ static void init_guest_state(struct vcpu *vcpu)
496
496
pr_dbg ("VMX_GUEST_GS_LIMIT: 0x%x " , limit );
497
497
498
498
/* Access */
499
- if (get_vcpu_mode (vcpu ) == REAL_MODE )
499
+ if (get_vcpu_mode (vcpu ) == CPU_MODE_REAL )
500
500
value32 = 0x0093 ;
501
- else if (get_vcpu_mode (vcpu ) == PAGE_PROTECTED_MODE )
501
+ else if (get_vcpu_mode (vcpu ) == CPU_MODE_64BIT )
502
502
value32 = 0xc093 ;
503
503
504
504
field = VMX_GUEST_ES_ATTR ;
@@ -609,7 +609,7 @@ static void init_guest_state(struct vcpu *vcpu)
609
609
pr_dbg ("VMX_GUEST_IA32_PAT: 0x%016llx " ,
610
610
value64 );
611
611
612
- if (get_vcpu_mode (vcpu ) == REAL_MODE ) {
612
+ if (get_vcpu_mode (vcpu ) == CPU_MODE_REAL ) {
613
613
/* Disable long mode (clear IA32_EFER.LME) in VMCS IA32_EFER
614
614
* MSR
615
615
*/
@@ -1024,7 +1024,7 @@ static void init_exec_ctrl(struct vcpu *vcpu)
1024
1024
fixed0 = msr_read (MSR_IA32_VMX_CR0_FIXED0 );
1025
1025
fixed1 = msr_read (MSR_IA32_VMX_CR0_FIXED1 );
1026
1026
1027
- if (get_vcpu_mode (vcpu ) == REAL_MODE ) {
1027
+ if (get_vcpu_mode (vcpu ) == CPU_MODE_REAL ) {
1028
1028
/* Check to see if unrestricted guest support is available */
1029
1029
if (msr_read (MSR_IA32_VMX_MISC ) & (1 << 5 )) {
1030
1030
/* Adjust fixed bits as they can/will reflect incorrect
@@ -1047,7 +1047,7 @@ static void init_exec_ctrl(struct vcpu *vcpu)
1047
1047
1048
1048
}
1049
1049
1050
- /* (get_vcpu_mode(vcpu) == REAL_MODE ) */
1050
+ /* (get_vcpu_mode(vcpu) == CPU_MODE_REAL ) */
1051
1051
/* Output fixed CR0 values */
1052
1052
pr_dbg ("Fixed0 CR0 value: 0x%x" , fixed0 );
1053
1053
pr_dbg ("Fixed1 CR0 value: 0x%x" , fixed1 );
@@ -1129,7 +1129,7 @@ static void init_entry_ctrl(__unused struct vcpu *vcpu)
1129
1129
* IA32_PAT and IA32_EFER
1130
1130
*/
1131
1131
value32 = msr_read (MSR_IA32_VMX_ENTRY_CTLS );
1132
- if (get_vcpu_mode (vcpu ) == PAGE_PROTECTED_MODE )
1132
+ if (get_vcpu_mode (vcpu ) == CPU_MODE_64BIT )
1133
1133
value32 |= (VMX_ENTRY_CTLS_IA32E_MODE );
1134
1134
1135
1135
value32 |= (VMX_ENTRY_CTLS_LOAD_EFER |
@@ -1197,7 +1197,7 @@ static void override_uefi_vmcs(struct vcpu *vcpu)
1197
1197
struct run_context * cur_context =
1198
1198
& vcpu -> arch_vcpu .contexts [vcpu -> arch_vcpu .cur_context ];
1199
1199
1200
- if (get_vcpu_mode (vcpu ) == PAGE_PROTECTED_MODE ) {
1200
+ if (get_vcpu_mode (vcpu ) == CPU_MODE_64BIT ) {
1201
1201
/* Set up guest CR0 field */
1202
1202
field = VMX_GUEST_CR0 ;
1203
1203
cur_context -> cr0 = efi_ctx -> cr0 | CR0_PG | CR0_PE | CR0_NE ;
0 commit comments