Path: blob/master/tools/arch/x86/include/uapi/asm/vmx.h
29278 views
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */1/*2* vmx.h: VMX Architecture related definitions3* Copyright (c) 2004, Intel Corporation.4*5* This program is free software; you can redistribute it and/or modify it6* under the terms and conditions of the GNU General Public License,7* version 2, as published by the Free Software Foundation.8*9* This program is distributed in the hope it will be useful, but WITHOUT10* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or11* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for12* more details.13*14* You should have received a copy of the GNU General Public License along with15* this program; if not, write to the Free Software Foundation, Inc., 59 Temple16* Place - Suite 330, Boston, MA 02111-1307 USA.17*18* A few random additions are:19* Copyright (C) 2006 Qumranet20* Avi Kivity <[email protected]>21* Yaniv Kamay <[email protected]>22*23*/24#ifndef _UAPIVMX_H25#define _UAPIVMX_H262728#define VMX_EXIT_REASONS_FAILED_VMENTRY 0x8000000029#define VMX_EXIT_REASONS_SGX_ENCLAVE_MODE 0x080000003031#define EXIT_REASON_EXCEPTION_NMI 032#define EXIT_REASON_EXTERNAL_INTERRUPT 133#define EXIT_REASON_TRIPLE_FAULT 234#define EXIT_REASON_INIT_SIGNAL 335#define EXIT_REASON_SIPI_SIGNAL 436#define EXIT_REASON_OTHER_SMI 63738#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#define EXIT_REASON_TDCALL 779697#define VMX_EXIT_REASONS \98{ EXIT_REASON_EXCEPTION_NMI, "EXCEPTION_NMI" }, \99{ EXIT_REASON_EXTERNAL_INTERRUPT, "EXTERNAL_INTERRUPT" }, \100{ EXIT_REASON_TRIPLE_FAULT, "TRIPLE_FAULT" }, \101{ EXIT_REASON_INIT_SIGNAL, "INIT_SIGNAL" }, \102{ EXIT_REASON_SIPI_SIGNAL, "SIPI_SIGNAL" }, \103{ EXIT_REASON_INTERRUPT_WINDOW, "INTERRUPT_WINDOW" }, \104{ EXIT_REASON_NMI_WINDOW, "NMI_WINDOW" }, \105{ EXIT_REASON_TASK_SWITCH, "TASK_SWITCH" }, \106{ EXIT_REASON_CPUID, "CPUID" }, \107{ EXIT_REASON_HLT, "HLT" }, \108{ EXIT_REASON_INVD, "INVD" }, \109{ EXIT_REASON_INVLPG, "INVLPG" }, \110{ EXIT_REASON_RDPMC, "RDPMC" }, \111{ EXIT_REASON_RDTSC, "RDTSC" }, \112{ EXIT_REASON_VMCALL, "VMCALL" }, \113{ EXIT_REASON_VMCLEAR, "VMCLEAR" }, \114{ EXIT_REASON_VMLAUNCH, "VMLAUNCH" }, \115{ EXIT_REASON_VMPTRLD, "VMPTRLD" }, \116{ EXIT_REASON_VMPTRST, "VMPTRST" }, \117{ EXIT_REASON_VMREAD, "VMREAD" }, \118{ EXIT_REASON_VMRESUME, "VMRESUME" }, \119{ EXIT_REASON_VMWRITE, "VMWRITE" }, \120{ EXIT_REASON_VMOFF, "VMOFF" }, \121{ EXIT_REASON_VMON, "VMON" }, \122{ EXIT_REASON_CR_ACCESS, "CR_ACCESS" }, \123{ EXIT_REASON_DR_ACCESS, "DR_ACCESS" }, \124{ EXIT_REASON_IO_INSTRUCTION, "IO_INSTRUCTION" }, \125{ EXIT_REASON_MSR_READ, "MSR_READ" }, \126{ EXIT_REASON_MSR_WRITE, "MSR_WRITE" }, \127{ EXIT_REASON_INVALID_STATE, "INVALID_STATE" }, \128{ EXIT_REASON_MSR_LOAD_FAIL, "MSR_LOAD_FAIL" }, \129{ EXIT_REASON_MWAIT_INSTRUCTION, "MWAIT_INSTRUCTION" }, \130{ EXIT_REASON_MONITOR_TRAP_FLAG, "MONITOR_TRAP_FLAG" }, \131{ EXIT_REASON_MONITOR_INSTRUCTION, "MONITOR_INSTRUCTION" }, \132{ EXIT_REASON_PAUSE_INSTRUCTION, "PAUSE_INSTRUCTION" }, \133{ EXIT_REASON_MCE_DURING_VMENTRY, "MCE_DURING_VMENTRY" }, \134{ EXIT_REASON_TPR_BELOW_THRESHOLD, "TPR_BELOW_THRESHOLD" }, \135{ EXIT_REASON_APIC_ACCESS, "APIC_ACCESS" }, \136{ EXIT_REASON_EOI_INDUCED, "EOI_INDUCED" }, \137{ EXIT_REASON_GDTR_IDTR, "GDTR_IDTR" }, \138{ EXIT_REASON_LDTR_TR, "LDTR_TR" }, \139{ EXIT_REASON_EPT_VIOLATION, "EPT_VIOLATION" }, \140{ EXIT_REASON_EPT_MISCONFIG, "EPT_MISCONFIG" }, \141{ EXIT_REASON_INVEPT, "INVEPT" }, \142{ EXIT_REASON_RDTSCP, "RDTSCP" }, \143{ EXIT_REASON_PREEMPTION_TIMER, "PREEMPTION_TIMER" }, \144{ EXIT_REASON_INVVPID, "INVVPID" }, \145{ EXIT_REASON_WBINVD, "WBINVD" }, \146{ EXIT_REASON_XSETBV, "XSETBV" }, \147{ EXIT_REASON_APIC_WRITE, "APIC_WRITE" }, \148{ EXIT_REASON_RDRAND, "RDRAND" }, \149{ EXIT_REASON_INVPCID, "INVPCID" }, \150{ EXIT_REASON_VMFUNC, "VMFUNC" }, \151{ EXIT_REASON_ENCLS, "ENCLS" }, \152{ EXIT_REASON_RDSEED, "RDSEED" }, \153{ EXIT_REASON_PML_FULL, "PML_FULL" }, \154{ EXIT_REASON_XSAVES, "XSAVES" }, \155{ EXIT_REASON_XRSTORS, "XRSTORS" }, \156{ EXIT_REASON_UMWAIT, "UMWAIT" }, \157{ EXIT_REASON_TPAUSE, "TPAUSE" }, \158{ EXIT_REASON_BUS_LOCK, "BUS_LOCK" }, \159{ EXIT_REASON_NOTIFY, "NOTIFY" }, \160{ EXIT_REASON_TDCALL, "TDCALL" }161162#define VMX_EXIT_REASON_FLAGS \163{ VMX_EXIT_REASONS_FAILED_VMENTRY, "FAILED_VMENTRY" }164165#define VMX_ABORT_SAVE_GUEST_MSR_FAIL 1166#define VMX_ABORT_LOAD_HOST_PDPTE_FAIL 2167#define VMX_ABORT_LOAD_HOST_MSR_FAIL 4168169#endif /* _UAPIVMX_H */170171172