3 ;; This file is part of the Palacios Virtual Machine Monitor developed
4 ;; by the V3VEE Project with funding from the United States National
5 ;; Science Foundation and the Department of Energy.
7 ;; The V3VEE Project is a joint project between Northwestern University
8 ;; and the University of New Mexico. You can find out more at
9 ;; http://www.v3vee.org
11 ;; Copyright (c) 2008, Peter Dinda <pdinda@northwestern.edu>
12 ;; Copyright (c) 2008, Jack Lange <jarusl@cs.northwestern.edu>
13 ;; Copyright (c) 2008, The V3VEE Project <http://www.v3vee.org>
14 ;; All rights reserved.
16 ;; Author: Peter Dinda <pdinda@northwestern.edu>
17 ;; Jack Lange <jarusl@cs.northwestern.edu>
19 ;; This is free software. You are permitted to use,
20 ;; redistribute, and modify it as specified in the file "V3VEE_LICENSE".
22 %ifndef VMCS_FIELDS_ASM
23 %define VMCS_FIELDS_ASM
25 VMCS_GUEST_ES_SELECTOR equ 0x00000800
26 VMCS_GUEST_CS_SELECTOR equ 0x00000802
27 VMCS_GUEST_SS_SELECTOR equ 0x00000804
28 VMCS_GUEST_DS_SELECTOR equ 0x00000806
29 VMCS_GUEST_FS_SELECTOR equ 0x00000808
30 VMCS_GUEST_GS_SELECTOR equ 0x0000080A
31 VMCS_GUEST_LDTR_SELECTOR equ 0x0000080C
32 VMCS_GUEST_TR_SELECTOR equ 0x0000080E
33 VMCS_HOST_ES_SELECTOR equ 0x00000C00
34 VMCS_HOST_CS_SELECTOR equ 0x00000C02
35 VMCS_HOST_SS_SELECTOR equ 0x00000C04
36 VMCS_HOST_DS_SELECTOR equ 0x00000C06
37 VMCS_HOST_FS_SELECTOR equ 0x00000C08
38 VMCS_HOST_GS_SELECTOR equ 0x00000C0A
39 VMCS_HOST_TR_SELECTOR equ 0x00000C0C
40 IO_BITMAP_A_ADDR equ 0x00002000
41 IO_BITMAP_A_ADDR_HIGH equ 0x00002001
42 IO_BITMAP_B_ADDR equ 0x00002002
43 IO_BITMAP_B_ADDR_HIGH equ 0x00002003
44 MSR_BITMAPS equ 0x00002004
45 MSR_BITMAPS_HIGH equ 0x00002005
46 VM_EXIT_MSR_STORE_ADDR equ 0x00002006
47 VM_EXIT_MSR_STORE_ADDR_HIGH equ 0x00002007
48 VM_EXIT_MSR_LOAD_ADDR equ 0x00002008
49 VM_EXIT_MSR_LOAD_ADDR_HIGH equ 0x00002009
50 VM_ENTRY_MSR_LOAD_ADDR equ 0x0000200A
51 VM_ENTRY_MSR_LOAD_ADDR_HIGH equ 0x0000200B
52 VMCS_EXEC_PTR equ 0x0000200C
53 VMCS_EXEC_PTR_HIGH equ 0x0000200D
54 TSC_OFFSET equ 0x00002010
55 TSC_OFFSET_HIGH equ 0x00002011
56 VIRT_APIC_PAGE_ADDR equ 0x00002012
57 VIRT_APIC_PAGE_ADDR_HIGH equ 0x00002013
58 VMCS_LINK_PTR equ 0x00002800
59 VMCS_LINK_PTR_HIGH equ 0x00002801
60 GUEST_IA32_DEBUGCTL equ 0x00002802
61 GUEST_IA32_DEBUGCTL_HIGH equ 0x00002803
62 PIN_VM_EXEC_CTRLS equ 0x00004000
63 PROC_VM_EXEC_CTRLS equ 0x00004002
64 EXCEPTION_BITMAP equ 0x00004004
65 PAGE_FAULT_ERROR_MASK equ 0x00004006
66 PAGE_FAULT_ERROR_MATCH equ 0x00004008
67 CR3_TARGET_COUNT equ 0x0000400A
68 VM_EXIT_CTRLS equ 0x0000400C
69 VM_EXIT_MSR_STORE_COUNT equ 0x0000400E
70 VM_EXIT_MSR_LOAD_COUNT equ 0x00004010
71 VM_ENTRY_CTRLS equ 0x00004012
72 VM_ENTRY_MSR_LOAD_COUNT equ 0x00004014
73 VM_ENTRY_INT_INFO_FIELD equ 0x00004016
74 VM_ENTRY_EXCEPTION_ERROR equ 0x00004018
75 VM_ENTRY_INSTR_LENGTH equ 0x0000401A
76 TPR_THRESHOLD equ 0x0000401C
77 VM_INSTR_ERROR equ 0x00004400
78 EXIT_REASON equ 0x00004402
79 VM_EXIT_INT_INFO equ 0x00004404
80 VM_EXIT_INT_ERROR equ 0x00004406
81 IDT_VECTOR_INFO equ 0x00004408
82 IDT_VECTOR_ERROR equ 0x0000440A
83 VM_EXIT_INSTR_LENGTH equ 0x0000440C
84 VMX_INSTR_INFO equ 0x0000440E
85 GUEST_ES_LIMIT equ 0x00004800
86 GUEST_CS_LIMIT equ 0x00004802
87 GUEST_SS_LIMIT equ 0x00004804
88 GUEST_DS_LIMIT equ 0x00004806
89 GUEST_FS_LIMIT equ 0x00004808
90 GUEST_GS_LIMIT equ 0x0000480A
91 GUEST_LDTR_LIMIT equ 0x0000480C
92 GUEST_TR_LIMIT equ 0x0000480E
93 GUEST_GDTR_LIMIT equ 0x00004810
94 GUEST_IDTR_LIMIT equ 0x00004812
95 GUEST_ES_ACCESS equ 0x00004814
96 GUEST_CS_ACCESS equ 0x00004816
97 GUEST_SS_ACCESS equ 0x00004818
98 GUEST_DS_ACCESS equ 0x0000481A
99 GUEST_FS_ACCESS equ 0x0000481C
100 GUEST_GS_ACCESS equ 0x0000481E
101 GUEST_LDTR_ACCESS equ 0x00004820
102 GUEST_TR_ACCESS equ 0x00004822
103 GUEST_INT_STATE equ 0x00004824
104 GUEST_ACTIVITY_STATE equ 0x00004826
105 GUEST_SMBASE equ 0x00004828
106 GUEST_IA32_SYSENTER_CS equ 0x0000482A
107 HOST_IA32_SYSENTER_CS equ 0x00004C00
108 CR0_GUEST_HOST_MASK equ 0x00006000
109 CR4_GUEST_HOST_MASK equ 0x00006002
110 CR0_READ_SHADOW equ 0x00006004
111 CR4_READ_SHADOW equ 0x00006006
112 CR3_TARGET_VALUE_0 equ 0x00006008
113 CR3_TARGET_VALUE_1 equ 0x0000600A
114 CR3_TARGET_VALUE_2 equ 0x0000600C
115 CR3_TARGET_VALUE_3 equ 0x0000600E
116 EXIT_QUALIFICATION equ 0x00006400
117 IO_RCX equ 0x00006402
118 IO_RSI equ 0x00006404
119 IO_RDI equ 0x00006406
120 IO_RIP equ 0x00006408
121 GUEST_LINEAR_ADDR equ 0x0000640A
122 GUEST_CR0 equ 0x00006800
123 GUEST_CR3 equ 0x00006802
124 GUEST_CR4 equ 0x00006804
125 GUEST_ES_BASE equ 0x00006806
126 GUEST_CS_BASE equ 0x00006808
127 GUEST_SS_BASE equ 0x0000680A
128 GUEST_DS_BASE equ 0x0000680C
129 GUEST_FS_BASE equ 0x0000680E
130 GUEST_GS_BASE equ 0x00006810
131 GUEST_LDTR_BASE equ 0x00006812
132 GUEST_TR_BASE equ 0x00006814
133 GUEST_GDTR_BASE equ 0x00006816
134 GUEST_IDTR_BASE equ 0x00006818
135 GUEST_DR7 equ 0x0000681A
136 GUEST_RSP equ 0x0000681C
137 GUEST_RIP equ 0x0000681E
138 GUEST_RFLAGS equ 0x00006820
139 GUEST_PENDING_DEBUG_EXCS equ 0x00006822
140 GUEST_IA32_SYSENTER_ESP equ 0x00006824
141 GUEST_IA32_SYSENTER_EIP equ 0x00006826
142 HOST_CR0 equ 0x00006C00
143 HOST_CR3 equ 0x00006C02
144 HOST_CR4 equ 0x00006C04
145 HOST_FS_BASE equ 0x00006C06
146 HOST_GS_BASE equ 0x00006C08
147 HOST_TR_BASE equ 0x00006C0A
148 HOST_GDTR_BASE equ 0x00006C0C
149 HOST_IDTR_BASE equ 0x00006C0E
150 HOST_IA32_SYSENTER_ESP equ 0x00006C10
151 HOST_IA32_SYSENTER_EIP equ 0x00006C12
152 HOST_RSP equ 0x00006C14
153 HOST_RIP equ 0x00006C16