| 1 |
;; @file |
|---|
| 2 |
; HWACCM - VMX Structures and Definitions. |
|---|
| 3 |
; |
|---|
| 4 |
|
|---|
| 5 |
; |
|---|
| 6 |
; Copyright (C) 2006-2007 Sun Microsystems, Inc. |
|---|
| 7 |
; |
|---|
| 8 |
; This file is part of VirtualBox Open Source Edition (OSE), as |
|---|
| 9 |
; available from http://www.virtualbox.org. This file is free software; |
|---|
| 10 |
; you can redistribute it and/or modify it under the terms of the GNU |
|---|
| 11 |
; General Public License (GPL) as published by the Free Software |
|---|
| 12 |
; Foundation, in version 2 as it comes in the "COPYING" file of the |
|---|
| 13 |
; VirtualBox OSE distribution. VirtualBox OSE is distributed in the |
|---|
| 14 |
; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. |
|---|
| 15 |
; |
|---|
| 16 |
; The contents of this file may alternatively be used under the terms |
|---|
| 17 |
; of the Common Development and Distribution License Version 1.0 |
|---|
| 18 |
; (CDDL) only, as it comes in the "COPYING.CDDL" file of the |
|---|
| 19 |
; VirtualBox OSE distribution, in which case the provisions of the |
|---|
| 20 |
; CDDL are applicable instead of those of the GPL. |
|---|
| 21 |
; |
|---|
| 22 |
; You may elect to license modified versions of this file under the |
|---|
| 23 |
; terms and conditions of either the GPL or the CDDL or both. |
|---|
| 24 |
; |
|---|
| 25 |
; Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa |
|---|
| 26 |
; Clara, CA 95054 USA or visit http://www.sun.com if you need |
|---|
| 27 |
; additional information or have any questions. |
|---|
| 28 |
; |
|---|
| 29 |
|
|---|
| 30 |
%define VMX_VMCS_GUEST_FIELD_ES 0800h |
|---|
| 31 |
%define VMX_VMCS_GUEST_FIELD_CS 0802h |
|---|
| 32 |
%define VMX_VMCS_GUEST_FIELD_SS 0804h |
|---|
| 33 |
%define VMX_VMCS_GUEST_FIELD_DS 0806h |
|---|
| 34 |
%define VMX_VMCS_GUEST_FIELD_FS 0808h |
|---|
| 35 |
%define VMX_VMCS_GUEST_FIELD_GS 080Ah |
|---|
| 36 |
%define VMX_VMCS_GUEST_FIELD_LDTR 080Ch |
|---|
| 37 |
%define VMX_VMCS_GUEST_FIELD_TR 080Eh |
|---|
| 38 |
%define VMX_VMCS_HOST_FIELD_ES 0C00h |
|---|
| 39 |
%define VMX_VMCS_HOST_FIELD_CS 0C02h |
|---|
| 40 |
%define VMX_VMCS_HOST_FIELD_SS 0C04h |
|---|
| 41 |
%define VMX_VMCS_HOST_FIELD_DS 0C06h |
|---|
| 42 |
%define VMX_VMCS_HOST_FIELD_FS 0C08h |
|---|
| 43 |
%define VMX_VMCS_HOST_FIELD_GS 0C0Ah |
|---|
| 44 |
%define VMX_VMCS_HOST_FIELD_TR 0C0Ch |
|---|
| 45 |
%define VMX_VMCS_CTRL_IO_BITMAP_A_FULL 02000h |
|---|
| 46 |
%define VMX_VMCS_CTRL_IO_BITMAP_A_HIGH 02001h |
|---|
| 47 |
%define VMX_VMCS_CTRL_IO_BITMAP_B_FULL 02002h |
|---|
| 48 |
%define VMX_VMCS_CTRL_IO_BITMAP_B_HIGH 02003h |
|---|
| 49 |
%define VMX_VMCS_CTRL_MSR_BITMAP_FULL 02004h |
|---|
| 50 |
%define VMX_VMCS_CTRL_MSR_BITMAP_HIGH 02005h |
|---|
| 51 |
%define VMX_VMCS_CTRL_VMEXIT_MSR_STORE_FULL 02006h |
|---|
| 52 |
%define VMX_VMCS_CTRL_VMEXIT_MSR_STORE_HIGH 02007h |
|---|
| 53 |
%define VMX_VMCS_CTRL_VMEXIT_MSR_LOAD_FULL 02008h |
|---|
| 54 |
%define VMX_VMCS_CTRL_VMEXIT_MSR_LOAD_HIGH 02009h |
|---|
| 55 |
%define VMX_VMCS_CTRL_VMENTRY_MSR_LOAD_FULL 0200Ah |
|---|
| 56 |
%define VMX_VMCS_CTRL_VMENTRY_MSR_LOAD_HIGH 0200Bh |
|---|
| 57 |
%define VMX_VMCS_CTRL_EXEC_VMCS_PTR_FULL 0200Ch |
|---|
| 58 |
%define VMX_VMCS_CTRL_EXEC_VMCS_PTR_HIGH 0200Dh |
|---|
| 59 |
%define VMX_VMCS_CTRL_TSC_OFFSET_FULL 02010h |
|---|
| 60 |
%define VMX_VMCS_CTRL_TSC_OFFSET_HIGH 02011h |
|---|
| 61 |
%define VMX_VMCS_CTRL_VAPIC_PAGEADDR_FULL 02012h |
|---|
| 62 |
%define VMX_VMCS_CTRL_VAPIC_PAGEADDR_HIGH 02013h |
|---|
| 63 |
%define VMX_VMCS_GUEST_LINK_PTR_FULL 02800h |
|---|
| 64 |
%define VMX_VMCS_GUEST_LINK_PTR_HIGH 02801h |
|---|
| 65 |
%define VMX_VMCS_GUEST_DEBUGCTL_FULL 02802h |
|---|
| 66 |
%define VMX_VMCS_GUEST_DEBUGCTL_HIGH 02803h |
|---|
| 67 |
%define VMX_VMCS_CTRL_PIN_EXEC_CONTROLS 04000h |
|---|
| 68 |
%define VMX_VMCS_CTRL_PROC_EXEC_CONTROLS 04002h |
|---|
| 69 |
%define VMX_VMCS_CTRL_EXCEPTION_BITMAP 04004h |
|---|
| 70 |
%define VMX_VMCS_CTRL_PAGEFAULT_ERROR_MASK 04006h |
|---|
| 71 |
%define VMX_VMCS_CTRL_PAGEFAULT_ERROR_MATCH 04008h |
|---|
| 72 |
%define VMX_VMCS_CTRL_CR3_TARGET_COUNT 0400Ah |
|---|
| 73 |
%define VMX_VMCS_CTRL_EXIT_CONTROLS 0400Ch |
|---|
| 74 |
%define VMX_VMCS_CTRL_EXIT_MSR_STORE_COUNT 0400Eh |
|---|
| 75 |
%define VMX_VMCS_CTRL_EXIT_MSR_LOAD_COUNT 04010h |
|---|
| 76 |
%define VMX_VMCS_CTRL_ENTRY_CONTROLS 04012h |
|---|
| 77 |
%define VMX_VMCS_CTRL_ENTRY_MSR_LOAD_COUNT 04014h |
|---|
| 78 |
%define VMX_VMCS_CTRL_ENTRY_IRQ_INFO 04016h |
|---|
| 79 |
%define VMX_VMCS_CTRL_ENTRY_EXCEPTION_ERRCODE 04018h |
|---|
| 80 |
%define VMX_VMCS_CTRL_ENTRY_INSTR_LENGTH 0401Ah |
|---|
| 81 |
%define VMX_VMCS_CTRL_TRP_TRESHOLD 0401Ch |
|---|
| 82 |
%define VMX_VMCS_RO_VM_INSTR_ERROR 04400h |
|---|
| 83 |
%define VMX_VMCS_RO_EXIT_REASON 04402h |
|---|
| 84 |
%define VMX_VMCS_RO_EXIT_INTERRUPTION_INFO 04404h |
|---|
| 85 |
%define VMX_VMCS_RO_EXIT_INTERRUPTION_ERRCODE 04406h |
|---|
| 86 |
%define VMX_VMCS_RO_IDT_INFO 04408h |
|---|
| 87 |
%define VMX_VMCS_RO_IDT_ERRCODE 0440Ah |
|---|
| 88 |
%define VMX_VMCS_RO_EXIT_INSTR_LENGTH 0440Ch |
|---|
| 89 |
%define VMX_VMCS_RO_EXIT_INSTR_INFO 0440Eh |
|---|
| 90 |
%define VMX_VMCS_GUEST_ES_LIMIT 04800h |
|---|
| 91 |
%define VMX_VMCS_GUEST_CS_LIMIT 04802h |
|---|
| 92 |
%define VMX_VMCS_GUEST_SS_LIMIT 04804h |
|---|
| 93 |
%define VMX_VMCS_GUEST_DS_LIMIT 04806h |
|---|
| 94 |
%define VMX_VMCS_GUEST_FS_LIMIT 04808h |
|---|
| 95 |
%define VMX_VMCS_GUEST_GS_LIMIT 0480Ah |
|---|
| 96 |
%define VMX_VMCS_GUEST_LDTR_LIMIT 0480Ch |
|---|
| 97 |
%define VMX_VMCS_GUEST_TR_LIMIT 0480Eh |
|---|
| 98 |
%define VMX_VMCS_GUEST_GDTR_LIMIT 04810h |
|---|
| 99 |
%define VMX_VMCS_GUEST_IDTR_LIMIT 04812h |
|---|
| 100 |
%define VMX_VMCS_GUEST_ES_ACCESS_RIGHTS 04814h |
|---|
| 101 |
%define VMX_VMCS_GUEST_CS_ACCESS_RIGHTS 04816h |
|---|
| 102 |
%define VMX_VMCS_GUEST_SS_ACCESS_RIGHTS 04818h |
|---|
| 103 |
%define VMX_VMCS_GUEST_DS_ACCESS_RIGHTS 0481Ah |
|---|
| 104 |
%define VMX_VMCS_GUEST_FS_ACCESS_RIGHTS 0481Ch |
|---|
| 105 |
%define VMX_VMCS_GUEST_GS_ACCESS_RIGHTS 0481Eh |
|---|
| 106 |
%define VMX_VMCS_GUEST_LDTR_ACCESS_RIGHTS 04820h |
|---|
| 107 |
%define VMX_VMCS_GUEST_TR_ACCESS_RIGHTS 04822h |
|---|
| 108 |
%define VMX_VMCS_GUEST_INTERRUPTIBILITY_STATE 04824h |
|---|
| 109 |
%define VMX_VMCS_GUEST_ACTIVITY_STATE 04826h |
|---|
| 110 |
%define VMX_VMCS_GUEST_SYSENTER_CS 0482Ah |
|---|
| 111 |
%define VMX_VMCS_CTRL_CR0_MASK 06000h |
|---|
| 112 |
%define VMX_VMCS_CTRL_CR4_MASK 06002h |
|---|
| 113 |
%define VMX_VMCS_CTRL_CR0_READ_SHADOW 06004h |
|---|
| 114 |
%define VMX_VMCS_CTRL_CR4_READ_SHADOW 06006h |
|---|
| 115 |
%define VMX_VMCS_CTRL_CR3_TARGET_VAL0 06008h |
|---|
| 116 |
%define VMX_VMCS_CTRL_CR3_TARGET_VAL1 0600Ah |
|---|
| 117 |
%define VMX_VMCS_CTRL_CR3_TARGET_VAL2 0600Ch |
|---|
| 118 |
%define VMX_VMCS_CTRL_CR3_TARGET_VAL31 0600Eh |
|---|
| 119 |
%define VMX_VMCS_RO_EXIT_QUALIFICATION 06400h |
|---|
| 120 |
%define VMX_VMCS_RO_IO_RCX 06402h |
|---|
| 121 |
%define VMX_VMCS_RO_IO_RSX 06404h |
|---|
| 122 |
%define VMX_VMCS_RO_IO_RDI 06406h |
|---|
| 123 |
%define VMX_VMCS_RO_IO_RIP 06408h |
|---|
| 124 |
%define VMX_VMCS_GUEST_LINEAR_ADDR 0640Ah |
|---|
| 125 |
%define VMX_VMCS_GUEST_CR0 06800h |
|---|
| 126 |
%define VMX_VMCS_GUEST_CR3 06802h |
|---|
| 127 |
%define VMX_VMCS_GUEST_CR4 06804h |
|---|
| 128 |
%define VMX_VMCS_GUEST_ES_BASE 06806h |
|---|
| 129 |
%define VMX_VMCS_GUEST_CS_BASE 06808h |
|---|
| 130 |
%define VMX_VMCS_GUEST_SS_BASE 0680Ah |
|---|
| 131 |
%define VMX_VMCS_GUEST_DS_BASE 0680Ch |
|---|
| 132 |
%define VMX_VMCS_GUEST_FS_BASE 0680Eh |
|---|
| 133 |
%define VMX_VMCS_GUEST_GS_BASE 06810h |
|---|
| 134 |
%define VMX_VMCS_GUEST_LDTR_BASE 06812h |
|---|
| 135 |
%define VMX_VMCS_GUEST_TR_BASE 06814h |
|---|
| 136 |
%define VMX_VMCS_GUEST_GDTR_BASE 06816h |
|---|
| 137 |
%define VMX_VMCS_GUEST_IDTR_BASE 06818h |
|---|
| 138 |
%define VMX_VMCS_GUEST_DR7 0681Ah |
|---|
| 139 |
%define VMX_VMCS_GUEST_RSP 0681Ch |
|---|
| 140 |
%define VMX_VMCS_GUEST_RIP 0681Eh |
|---|
| 141 |
%define VMX_VMCS_GUEST_RFLAGS 06820h |
|---|
| 142 |
%define VMX_VMCS_GUEST_DEBUG_EXCEPTIONS 06822h |
|---|
| 143 |
%define VMX_VMCS_GUEST_SYSENTER_ESP 06824h |
|---|
| 144 |
%define VMX_VMCS_GUEST_SYSENTER_EIP 06826h |
|---|
| 145 |
%define VMX_VMCS_HOST_CR0 06C00h |
|---|
| 146 |
%define VMX_VMCS_HOST_CR3 06C02h |
|---|
| 147 |
%define VMX_VMCS_HOST_CR4 06C04h |
|---|
| 148 |
%define VMX_VMCS_HOST_FS_BASE 06C06h |
|---|
| 149 |
%define VMX_VMCS_HOST_GS_BASE 06C08h |
|---|
| 150 |
%define VMX_VMCS_HOST_TR_BASE 06C0Ah |
|---|
| 151 |
%define VMX_VMCS_HOST_GDTR_BASE 06C0Ch |
|---|
| 152 |
%define VMX_VMCS_HOST_IDTR_BASE 06C0Eh |
|---|
| 153 |
%define VMX_VMCS_HOST_SYSENTER_ESP 06C10h |
|---|
| 154 |
%define VMX_VMCS_HOST_SYSENTER_EIP 06C12h |
|---|
| 155 |
%define VMX_VMCS_HOST_RSP 06C14h |
|---|
| 156 |
%define VMX_VMCS_HOST_RIP 06C16h |
|---|
| 157 |
|
|---|