Compare commits
1 commit
embedding-
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 109c97f4a3 |
2 changed files with 16 additions and 0 deletions
|
|
@ -20,6 +20,12 @@
|
||||||
#define HOST_GS_SELECTOR 0x0C0A
|
#define HOST_GS_SELECTOR 0x0C0A
|
||||||
#define HOST_TR_SELECTOR 0x0C0C
|
#define HOST_TR_SELECTOR 0x0C0C
|
||||||
|
|
||||||
|
#define IO_BITMAP_ADDRESS_A 0x2000
|
||||||
|
#define IO_BITMAP_ADDRESS_B 0x2002
|
||||||
|
#define MSR_BITMAP_ADDRESS 0x2004
|
||||||
|
#define VM_EXIT_MSR_STORE_ADDRESS 0x2006
|
||||||
|
#define VM_EXIT_MSR_LOAD_ADDRESS 0x2008
|
||||||
|
|
||||||
#define VMCS_LINK_POINTER 0x2800
|
#define VMCS_LINK_POINTER 0x2800
|
||||||
#define GUEST_IA32_DEBUGCTL 0x2802
|
#define GUEST_IA32_DEBUGCTL 0x2802
|
||||||
#define GUEST_IA32_PAT 0x2804
|
#define GUEST_IA32_PAT 0x2804
|
||||||
|
|
|
||||||
10
src/vintel.c
10
src/vintel.c
|
|
@ -207,8 +207,12 @@ vintel_init_host(void)
|
||||||
// Set GDT and IDT
|
// Set GDT and IDT
|
||||||
checked_vmwrite(HOST_GDTR_BASE, (uintptr_t)pv->host_gdtr.base);
|
checked_vmwrite(HOST_GDTR_BASE, (uintptr_t)pv->host_gdtr.base);
|
||||||
checked_vmwrite(HOST_IDTR_BASE, (uintptr_t)pv->host_idtr.base);
|
checked_vmwrite(HOST_IDTR_BASE, (uintptr_t)pv->host_idtr.base);
|
||||||
|
checked_vmwrite(HOST_FS_BASE, 0);
|
||||||
|
checked_vmwrite(HOST_GS_BASE, 0);
|
||||||
|
checked_vmwrite(HOST_TR_BASE, 0); // TODO proper value
|
||||||
|
|
||||||
// Dummy sysenter & sysexit values
|
// Dummy sysenter & sysexit values
|
||||||
|
checked_vmwrite(HOST_SYSENTER_CS, 0x08);
|
||||||
checked_vmwrite(HOST_SYSENTER_ESP, 0x4000);
|
checked_vmwrite(HOST_SYSENTER_ESP, 0x4000);
|
||||||
checked_vmwrite(HOST_SYSENTER_EIP, 0x4000);
|
checked_vmwrite(HOST_SYSENTER_EIP, 0x4000);
|
||||||
}
|
}
|
||||||
|
|
@ -275,6 +279,12 @@ vintel_enable(void)
|
||||||
checked_vmwrite(VM_EXIT_CONTROLS, exitControls);
|
checked_vmwrite(VM_EXIT_CONTROLS, exitControls);
|
||||||
AsciiPrint("VM_EXIT_CONTROLS: %lx\n", exitControls);
|
AsciiPrint("VM_EXIT_CONTROLS: %lx\n", exitControls);
|
||||||
|
|
||||||
|
checked_vmwrite(IO_BITMAP_ADDRESS_A, 0);
|
||||||
|
checked_vmwrite(IO_BITMAP_ADDRESS_B, 0);
|
||||||
|
checked_vmwrite(MSR_BITMAP_ADDRESS, 0);
|
||||||
|
checked_vmwrite(VM_EXIT_MSR_STORE_ADDRESS, 0);
|
||||||
|
checked_vmwrite(VM_EXIT_MSR_LOAD_ADDRESS, 0);
|
||||||
|
|
||||||
checked_vmwrite(VM_ENTRY_MSR_LOAD_COUNT, 0);
|
checked_vmwrite(VM_ENTRY_MSR_LOAD_COUNT, 0);
|
||||||
checked_vmwrite(VM_ENTRY_INTR_INFO_FIELD, 0);
|
checked_vmwrite(VM_ENTRY_INTR_INFO_FIELD, 0);
|
||||||
checked_vmwrite(VM_EXIT_MSR_STORE_COUNT, 0);
|
checked_vmwrite(VM_EXIT_MSR_STORE_COUNT, 0);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue