Make the code to check if VMX is enabled more readable by using macros
instead of magic numbers. Discussed with: Chris Torek
This commit is contained in:
parent
fbf928f15f
commit
150369ab7c
@ -441,7 +441,8 @@ vmx_init(void)
|
|||||||
* are set (bits 0 and 2 respectively).
|
* are set (bits 0 and 2 respectively).
|
||||||
*/
|
*/
|
||||||
feature_control = rdmsr(MSR_IA32_FEATURE_CONTROL);
|
feature_control = rdmsr(MSR_IA32_FEATURE_CONTROL);
|
||||||
if ((feature_control & 0x5) != 0x5) {
|
if ((feature_control & IA32_FEATURE_CONTROL_LOCK) == 0 ||
|
||||||
|
(feature_control & IA32_FEATURE_CONTROL_VMX_EN) == 0) {
|
||||||
printf("vmx_init: VMX operation disabled by BIOS\n");
|
printf("vmx_init: VMX operation disabled by BIOS\n");
|
||||||
return (ENXIO);
|
return (ENXIO);
|
||||||
}
|
}
|
||||||
|
@ -418,6 +418,11 @@
|
|||||||
#define APICBASE_ENABLED 0x00000800
|
#define APICBASE_ENABLED 0x00000800
|
||||||
#define APICBASE_ADDRESS 0xfffff000
|
#define APICBASE_ADDRESS 0xfffff000
|
||||||
|
|
||||||
|
/* MSR_IA32_FEATURE_CONTROL related */
|
||||||
|
#define IA32_FEATURE_CONTROL_LOCK 0x01 /* lock bit */
|
||||||
|
#define IA32_FEATURE_CONTROL_SMX_EN 0x02 /* enable VMX inside SMX */
|
||||||
|
#define IA32_FEATURE_CONTROL_VMX_EN 0x04 /* enable VMX outside SMX */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* PAT modes.
|
* PAT modes.
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user