brintos

brintos / linux-shallow public Read only

0
0
Text · 7.3 KiB · a5faf6d Raw
168 lines · c
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */2/*3 * vmx.h: VMX Architecture related definitions4 * Copyright (c) 2004, Intel Corporation.5 *6 * This program is free software; you can redistribute it and/or modify it7 * under the terms and conditions of the GNU General Public License,8 * version 2, as published by the Free Software Foundation.9 *10 * This program is distributed in the hope it will be useful, but WITHOUT11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or12 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for13 * more details.14 *15 * You should have received a copy of the GNU General Public License along with16 * this program; if not, write to the Free Software Foundation, Inc., 59 Temple17 * Place - Suite 330, Boston, MA 02111-1307 USA.18 *19 * A few random additions are:20 * Copyright (C) 2006 Qumranet21 *    Avi Kivity <avi@qumranet.com>22 *    Yaniv Kamay <yaniv@qumranet.com>23 *24 */25#ifndef _UAPIVMX_H26#define _UAPIVMX_H27 28 29#define VMX_EXIT_REASONS_FAILED_VMENTRY         0x8000000030#define VMX_EXIT_REASONS_SGX_ENCLAVE_MODE	0x0800000031 32#define EXIT_REASON_EXCEPTION_NMI       033#define EXIT_REASON_EXTERNAL_INTERRUPT  134#define EXIT_REASON_TRIPLE_FAULT        235#define EXIT_REASON_INIT_SIGNAL			336#define EXIT_REASON_SIPI_SIGNAL         437 38#define EXIT_REASON_INTERRUPT_WINDOW    739#define EXIT_REASON_NMI_WINDOW          840#define EXIT_REASON_TASK_SWITCH         941#define EXIT_REASON_CPUID               1042#define EXIT_REASON_HLT                 1243#define EXIT_REASON_INVD                1344#define EXIT_REASON_INVLPG              1445#define EXIT_REASON_RDPMC               1546#define EXIT_REASON_RDTSC               1647#define EXIT_REASON_VMCALL              1848#define EXIT_REASON_VMCLEAR             1949#define EXIT_REASON_VMLAUNCH            2050#define EXIT_REASON_VMPTRLD             2151#define EXIT_REASON_VMPTRST             2252#define EXIT_REASON_VMREAD              2353#define EXIT_REASON_VMRESUME            2454#define EXIT_REASON_VMWRITE             2555#define EXIT_REASON_VMOFF               2656#define EXIT_REASON_VMON                2757#define EXIT_REASON_CR_ACCESS           2858#define EXIT_REASON_DR_ACCESS           2959#define EXIT_REASON_IO_INSTRUCTION      3060#define EXIT_REASON_MSR_READ            3161#define EXIT_REASON_MSR_WRITE           3262#define EXIT_REASON_INVALID_STATE       3363#define EXIT_REASON_MSR_LOAD_FAIL       3464#define EXIT_REASON_MWAIT_INSTRUCTION   3665#define EXIT_REASON_MONITOR_TRAP_FLAG   3766#define EXIT_REASON_MONITOR_INSTRUCTION 3967#define EXIT_REASON_PAUSE_INSTRUCTION   4068#define EXIT_REASON_MCE_DURING_VMENTRY  4169#define EXIT_REASON_TPR_BELOW_THRESHOLD 4370#define EXIT_REASON_APIC_ACCESS         4471#define EXIT_REASON_EOI_INDUCED         4572#define EXIT_REASON_GDTR_IDTR           4673#define EXIT_REASON_LDTR_TR             4774#define EXIT_REASON_EPT_VIOLATION       4875#define EXIT_REASON_EPT_MISCONFIG       4976#define EXIT_REASON_INVEPT              5077#define EXIT_REASON_RDTSCP              5178#define EXIT_REASON_PREEMPTION_TIMER    5279#define EXIT_REASON_INVVPID             5380#define EXIT_REASON_WBINVD              5481#define EXIT_REASON_XSETBV              5582#define EXIT_REASON_APIC_WRITE          5683#define EXIT_REASON_RDRAND              5784#define EXIT_REASON_INVPCID             5885#define EXIT_REASON_VMFUNC              5986#define EXIT_REASON_ENCLS               6087#define EXIT_REASON_RDSEED              6188#define EXIT_REASON_PML_FULL            6289#define EXIT_REASON_XSAVES              6390#define EXIT_REASON_XRSTORS             6491#define EXIT_REASON_UMWAIT              6792#define EXIT_REASON_TPAUSE              6893#define EXIT_REASON_BUS_LOCK            7494#define EXIT_REASON_NOTIFY              7595 96#define VMX_EXIT_REASONS \97	{ EXIT_REASON_EXCEPTION_NMI,         "EXCEPTION_NMI" }, \98	{ EXIT_REASON_EXTERNAL_INTERRUPT,    "EXTERNAL_INTERRUPT" }, \99	{ EXIT_REASON_TRIPLE_FAULT,          "TRIPLE_FAULT" }, \100	{ EXIT_REASON_INIT_SIGNAL,           "INIT_SIGNAL" }, \101	{ EXIT_REASON_SIPI_SIGNAL,           "SIPI_SIGNAL" }, \102	{ EXIT_REASON_INTERRUPT_WINDOW,      "INTERRUPT_WINDOW" }, \103	{ EXIT_REASON_NMI_WINDOW,            "NMI_WINDOW" }, \104	{ EXIT_REASON_TASK_SWITCH,           "TASK_SWITCH" }, \105	{ EXIT_REASON_CPUID,                 "CPUID" }, \106	{ EXIT_REASON_HLT,                   "HLT" }, \107	{ EXIT_REASON_INVD,                  "INVD" }, \108	{ EXIT_REASON_INVLPG,                "INVLPG" }, \109	{ EXIT_REASON_RDPMC,                 "RDPMC" }, \110	{ EXIT_REASON_RDTSC,                 "RDTSC" }, \111	{ EXIT_REASON_VMCALL,                "VMCALL" }, \112	{ EXIT_REASON_VMCLEAR,               "VMCLEAR" }, \113	{ EXIT_REASON_VMLAUNCH,              "VMLAUNCH" }, \114	{ EXIT_REASON_VMPTRLD,               "VMPTRLD" }, \115	{ EXIT_REASON_VMPTRST,               "VMPTRST" }, \116	{ EXIT_REASON_VMREAD,                "VMREAD" }, \117	{ EXIT_REASON_VMRESUME,              "VMRESUME" }, \118	{ EXIT_REASON_VMWRITE,               "VMWRITE" }, \119	{ EXIT_REASON_VMOFF,                 "VMOFF" }, \120	{ EXIT_REASON_VMON,                  "VMON" }, \121	{ EXIT_REASON_CR_ACCESS,             "CR_ACCESS" }, \122	{ EXIT_REASON_DR_ACCESS,             "DR_ACCESS" }, \123	{ EXIT_REASON_IO_INSTRUCTION,        "IO_INSTRUCTION" }, \124	{ EXIT_REASON_MSR_READ,              "MSR_READ" }, \125	{ EXIT_REASON_MSR_WRITE,             "MSR_WRITE" }, \126	{ EXIT_REASON_INVALID_STATE,         "INVALID_STATE" }, \127	{ EXIT_REASON_MSR_LOAD_FAIL,         "MSR_LOAD_FAIL" }, \128	{ EXIT_REASON_MWAIT_INSTRUCTION,     "MWAIT_INSTRUCTION" }, \129	{ EXIT_REASON_MONITOR_TRAP_FLAG,     "MONITOR_TRAP_FLAG" }, \130	{ EXIT_REASON_MONITOR_INSTRUCTION,   "MONITOR_INSTRUCTION" }, \131	{ EXIT_REASON_PAUSE_INSTRUCTION,     "PAUSE_INSTRUCTION" }, \132	{ EXIT_REASON_MCE_DURING_VMENTRY,    "MCE_DURING_VMENTRY" }, \133	{ EXIT_REASON_TPR_BELOW_THRESHOLD,   "TPR_BELOW_THRESHOLD" }, \134	{ EXIT_REASON_APIC_ACCESS,           "APIC_ACCESS" }, \135	{ EXIT_REASON_EOI_INDUCED,           "EOI_INDUCED" }, \136	{ EXIT_REASON_GDTR_IDTR,             "GDTR_IDTR" }, \137	{ EXIT_REASON_LDTR_TR,               "LDTR_TR" }, \138	{ EXIT_REASON_EPT_VIOLATION,         "EPT_VIOLATION" }, \139	{ EXIT_REASON_EPT_MISCONFIG,         "EPT_MISCONFIG" }, \140	{ EXIT_REASON_INVEPT,                "INVEPT" }, \141	{ EXIT_REASON_RDTSCP,                "RDTSCP" }, \142	{ EXIT_REASON_PREEMPTION_TIMER,      "PREEMPTION_TIMER" }, \143	{ EXIT_REASON_INVVPID,               "INVVPID" }, \144	{ EXIT_REASON_WBINVD,                "WBINVD" }, \145	{ EXIT_REASON_XSETBV,                "XSETBV" }, \146	{ EXIT_REASON_APIC_WRITE,            "APIC_WRITE" }, \147	{ EXIT_REASON_RDRAND,                "RDRAND" }, \148	{ EXIT_REASON_INVPCID,               "INVPCID" }, \149	{ EXIT_REASON_VMFUNC,                "VMFUNC" }, \150	{ EXIT_REASON_ENCLS,                 "ENCLS" }, \151	{ EXIT_REASON_RDSEED,                "RDSEED" }, \152	{ EXIT_REASON_PML_FULL,              "PML_FULL" }, \153	{ EXIT_REASON_XSAVES,                "XSAVES" }, \154	{ EXIT_REASON_XRSTORS,               "XRSTORS" }, \155	{ EXIT_REASON_UMWAIT,                "UMWAIT" }, \156	{ EXIT_REASON_TPAUSE,                "TPAUSE" }, \157	{ EXIT_REASON_BUS_LOCK,              "BUS_LOCK" }, \158	{ EXIT_REASON_NOTIFY,                "NOTIFY" }159 160#define VMX_EXIT_REASON_FLAGS \161	{ VMX_EXIT_REASONS_FAILED_VMENTRY,	"FAILED_VMENTRY" }162 163#define VMX_ABORT_SAVE_GUEST_MSR_FAIL        1164#define VMX_ABORT_LOAD_HOST_PDPTE_FAIL       2165#define VMX_ABORT_LOAD_HOST_MSR_FAIL         4166 167#endif /* _UAPIVMX_H */168