1/* 2 * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230) 3 * 4 * SPDX-License-Identifier: GPL-2.0-only 5 */ 6 7#pragma once 8 9/*control fields in vmcs*/ 10#define VMX_GUEST_ES_SELECTOR 0x00000800 11#define VMX_GUEST_CS_SELECTOR 0x00000802 12#define VMX_GUEST_SS_SELECTOR 0x00000804 13#define VMX_GUEST_DS_SELECTOR 0x00000806 14#define VMX_GUEST_FS_SELECTOR 0x00000808 15#define VMX_GUEST_GS_SELECTOR 0x0000080A 16#define VMX_GUEST_LDTR_SELECTOR 0x0000080C 17#define VMX_GUEST_TR_SELECTOR 0x0000080E 18#define VMX_GUEST_DEBUGCTRL 0x00002802 19#define VMX_GUEST_PAT 0x00002804 20#define VMX_GUEST_EFER 0x00002806 21#define VMX_GUEST_PERF_GLOBAL_CTRL 0x00002808 22#define VMX_GUEST_ES_LIMIT 0x00004800 23#define VMX_GUEST_CS_LIMIT 0x00004802 24#define VMX_GUEST_SS_LIMIT 0x00004804 25#define VMX_GUEST_DS_LIMIT 0x00004806 26#define VMX_GUEST_FS_LIMIT 0x00004808 27#define VMX_GUEST_GS_LIMIT 0x0000480A 28#define VMX_GUEST_LDTR_LIMIT 0x0000480C 29#define VMX_GUEST_TR_LIMIT 0x0000480E 30#define VMX_GUEST_GDTR_LIMIT 0x00004810 31#define VMX_GUEST_IDTR_LIMIT 0x00004812 32#define VMX_GUEST_ES_ACCESS_RIGHTS 0x00004814 33#define VMX_GUEST_CS_ACCESS_RIGHTS 0x00004816 34#define VMX_GUEST_SS_ACCESS_RIGHTS 0x00004818 35#define VMX_GUEST_DS_ACCESS_RIGHTS 0x0000481A 36#define VMX_GUEST_FS_ACCESS_RIGHTS 0x0000481C 37#define VMX_GUEST_GS_ACCESS_RIGHTS 0x0000481E 38#define VMX_GUEST_LDTR_ACCESS_RIGHTS 0x00004820 39#define VMX_GUEST_TR_ACCESS_RIGHTS 0x00004822 40#define VMX_GUEST_INTERRUPTABILITY 0x00004824 41#define VMX_GUEST_ACTIVITY 0x00004826 42#define VMX_GUEST_SMBASE 0x00004828 43#define VMX_GUEST_SYSENTER_CS 0x0000482A 44#define VMX_GUEST_CR0 0x00006800 45#define VMX_GUEST_CR3 0x00006802 46#define VMX_GUEST_CR4 0x00006804 47#define VMX_GUEST_ES_BASE 0x00006806 48#define VMX_GUEST_CS_BASE 0x00006808 49#define VMX_GUEST_SS_BASE 0x0000680A 50#define VMX_GUEST_DS_BASE 0x0000680C 51#define VMX_GUEST_FS_BASE 0x0000680E 52#define VMX_GUEST_GS_BASE 0x00006810 53#define VMX_GUEST_LDTR_BASE 0x00006812 54#define VMX_GUEST_TR_BASE 0x00006814 55#define VMX_GUEST_GDTR_BASE 0x00006816 56#define VMX_GUEST_IDTR_BASE 0x00006818 57#define VMX_GUEST_PENDING_DEBUG_EXCEPTIONS 0x00006822 58#define VMX_GUEST_DR7 0x0000681A 59#define VMX_GUEST_RSP 0x0000681C 60#define VMX_GUEST_RIP 0x0000681E 61#define VMX_GUEST_RFLAGS 0x00006820 62#define VMX_GUEST_SYSENTER_ESP 0x00006824 63#define VMX_GUEST_SYSENTER_EIP 0x00006826 64#define VMX_GUEST_VMX_PREEMPTION_TIMER_VALUE 0x0000482E 65 66#define VMX_DATA_INSTRUCTION_ERROR 0x00004400 67#define VMX_DATA_EXIT_REASON 0x00004402 68#define VMX_DATA_EXIT_INTERRUPT_INFO 0x00004404 69#define VMX_DATA_EXIT_INTERRUPT_ERROR 0x00004406 70#define VMX_DATA_IDT_VECTOR_INFO 0x00004408 71#define VMX_DATA_IDT_VECTOR_ERROR 0x0000440A 72#define VMX_DATA_EXIT_INSTRUCTION_LENGTH 0x0000440C 73#define VMX_DATA_EXIT_INSTRUCTION_INFO 0x0000440E 74 75#define VMX_DATA_EXIT_QUALIFICATION 0x00006400 76#define VMX_DATA_IO_RCX 0x00006402 77#define VMX_DATA_IO_RSI 0x00006404 78#define VMX_DATA_IO_RDI 0x00006406 79#define VMX_DATA_IO_RIP 0x00006408 80#define VMX_DATA_GUEST_LINEAR_ADDRESS 0x0000640A 81#define VMX_DATA_GUEST_PHYSICAL 0x00002400 82 83#define VMX_CONTROL_CR0_MASK 0x00006000 84#define VMX_CONTROL_CR4_MASK 0x00006002 85#define VMX_CONTROL_CR0_READ_SHADOW 0x00006004 86#define VMX_CONTROL_CR4_READ_SHADOW 0x00006006 87 88#define VMX_CONTROL_PIN_EXECUTION_CONTROLS 0x00004000 89#define VMX_CONTROL_PRIMARY_PROCESSOR_CONTROLS 0x00004002 90#define VMX_CONTROL_PPC_HLT_EXITING BIT(7) 91#define VMX_CONTROL_PPC_CR3_LOAD_EXITING BIT(15) 92#define VMX_CONTROL_PPC_CR3_STORE_EXITING BIT(16) 93#define VMX_CONTROL_SECONDARY_PROCESSOR_CONTROLS 0x0000401E 94#define VMX_CONTROL_EXCEPTION_BITMAP 0x00004004 95#define VMX_CONTROL_EXIT_CONTROLS 0x0000400C 96#define VMX_CONTROL_ENTRY_INTERRUPTION_INFO 0x00004016 97#define VMX_CONTROL_ENTRY_EXCEPTION_ERROR_CODE 0x00004018 98