162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * vmx.h: VMX Architecture related definitions 462306a36Sopenharmony_ci * Copyright (c) 2004, Intel Corporation. 562306a36Sopenharmony_ci * 662306a36Sopenharmony_ci * This program is free software; you can redistribute it and/or modify it 762306a36Sopenharmony_ci * under the terms and conditions of the GNU General Public License, 862306a36Sopenharmony_ci * version 2, as published by the Free Software Foundation. 962306a36Sopenharmony_ci * 1062306a36Sopenharmony_ci * This program is distributed in the hope it will be useful, but WITHOUT 1162306a36Sopenharmony_ci * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 1262306a36Sopenharmony_ci * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 1362306a36Sopenharmony_ci * more details. 1462306a36Sopenharmony_ci * 1562306a36Sopenharmony_ci * You should have received a copy of the GNU General Public License along with 1662306a36Sopenharmony_ci * this program; if not, write to the Free Software Foundation, Inc., 59 Temple 1762306a36Sopenharmony_ci * Place - Suite 330, Boston, MA 02111-1307 USA. 1862306a36Sopenharmony_ci * 1962306a36Sopenharmony_ci * A few random additions are: 2062306a36Sopenharmony_ci * Copyright (C) 2006 Qumranet 2162306a36Sopenharmony_ci * Avi Kivity <avi@qumranet.com> 2262306a36Sopenharmony_ci * Yaniv Kamay <yaniv@qumranet.com> 2362306a36Sopenharmony_ci * 2462306a36Sopenharmony_ci */ 2562306a36Sopenharmony_ci#ifndef _UAPIVMX_H 2662306a36Sopenharmony_ci#define _UAPIVMX_H 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci#define VMX_EXIT_REASONS_FAILED_VMENTRY 0x80000000 3062306a36Sopenharmony_ci#define VMX_EXIT_REASONS_SGX_ENCLAVE_MODE 0x08000000 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci#define EXIT_REASON_EXCEPTION_NMI 0 3362306a36Sopenharmony_ci#define EXIT_REASON_EXTERNAL_INTERRUPT 1 3462306a36Sopenharmony_ci#define EXIT_REASON_TRIPLE_FAULT 2 3562306a36Sopenharmony_ci#define EXIT_REASON_INIT_SIGNAL 3 3662306a36Sopenharmony_ci#define EXIT_REASON_SIPI_SIGNAL 4 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ci#define EXIT_REASON_INTERRUPT_WINDOW 7 3962306a36Sopenharmony_ci#define EXIT_REASON_NMI_WINDOW 8 4062306a36Sopenharmony_ci#define EXIT_REASON_TASK_SWITCH 9 4162306a36Sopenharmony_ci#define EXIT_REASON_CPUID 10 4262306a36Sopenharmony_ci#define EXIT_REASON_HLT 12 4362306a36Sopenharmony_ci#define EXIT_REASON_INVD 13 4462306a36Sopenharmony_ci#define EXIT_REASON_INVLPG 14 4562306a36Sopenharmony_ci#define EXIT_REASON_RDPMC 15 4662306a36Sopenharmony_ci#define EXIT_REASON_RDTSC 16 4762306a36Sopenharmony_ci#define EXIT_REASON_VMCALL 18 4862306a36Sopenharmony_ci#define EXIT_REASON_VMCLEAR 19 4962306a36Sopenharmony_ci#define EXIT_REASON_VMLAUNCH 20 5062306a36Sopenharmony_ci#define EXIT_REASON_VMPTRLD 21 5162306a36Sopenharmony_ci#define EXIT_REASON_VMPTRST 22 5262306a36Sopenharmony_ci#define EXIT_REASON_VMREAD 23 5362306a36Sopenharmony_ci#define EXIT_REASON_VMRESUME 24 5462306a36Sopenharmony_ci#define EXIT_REASON_VMWRITE 25 5562306a36Sopenharmony_ci#define EXIT_REASON_VMOFF 26 5662306a36Sopenharmony_ci#define EXIT_REASON_VMON 27 5762306a36Sopenharmony_ci#define EXIT_REASON_CR_ACCESS 28 5862306a36Sopenharmony_ci#define EXIT_REASON_DR_ACCESS 29 5962306a36Sopenharmony_ci#define EXIT_REASON_IO_INSTRUCTION 30 6062306a36Sopenharmony_ci#define EXIT_REASON_MSR_READ 31 6162306a36Sopenharmony_ci#define EXIT_REASON_MSR_WRITE 32 6262306a36Sopenharmony_ci#define EXIT_REASON_INVALID_STATE 33 6362306a36Sopenharmony_ci#define EXIT_REASON_MSR_LOAD_FAIL 34 6462306a36Sopenharmony_ci#define EXIT_REASON_MWAIT_INSTRUCTION 36 6562306a36Sopenharmony_ci#define EXIT_REASON_MONITOR_TRAP_FLAG 37 6662306a36Sopenharmony_ci#define EXIT_REASON_MONITOR_INSTRUCTION 39 6762306a36Sopenharmony_ci#define EXIT_REASON_PAUSE_INSTRUCTION 40 6862306a36Sopenharmony_ci#define EXIT_REASON_MCE_DURING_VMENTRY 41 6962306a36Sopenharmony_ci#define EXIT_REASON_TPR_BELOW_THRESHOLD 43 7062306a36Sopenharmony_ci#define EXIT_REASON_APIC_ACCESS 44 7162306a36Sopenharmony_ci#define EXIT_REASON_EOI_INDUCED 45 7262306a36Sopenharmony_ci#define EXIT_REASON_GDTR_IDTR 46 7362306a36Sopenharmony_ci#define EXIT_REASON_LDTR_TR 47 7462306a36Sopenharmony_ci#define EXIT_REASON_EPT_VIOLATION 48 7562306a36Sopenharmony_ci#define EXIT_REASON_EPT_MISCONFIG 49 7662306a36Sopenharmony_ci#define EXIT_REASON_INVEPT 50 7762306a36Sopenharmony_ci#define EXIT_REASON_RDTSCP 51 7862306a36Sopenharmony_ci#define EXIT_REASON_PREEMPTION_TIMER 52 7962306a36Sopenharmony_ci#define EXIT_REASON_INVVPID 53 8062306a36Sopenharmony_ci#define EXIT_REASON_WBINVD 54 8162306a36Sopenharmony_ci#define EXIT_REASON_XSETBV 55 8262306a36Sopenharmony_ci#define EXIT_REASON_APIC_WRITE 56 8362306a36Sopenharmony_ci#define EXIT_REASON_RDRAND 57 8462306a36Sopenharmony_ci#define EXIT_REASON_INVPCID 58 8562306a36Sopenharmony_ci#define EXIT_REASON_VMFUNC 59 8662306a36Sopenharmony_ci#define EXIT_REASON_ENCLS 60 8762306a36Sopenharmony_ci#define EXIT_REASON_RDSEED 61 8862306a36Sopenharmony_ci#define EXIT_REASON_PML_FULL 62 8962306a36Sopenharmony_ci#define EXIT_REASON_XSAVES 63 9062306a36Sopenharmony_ci#define EXIT_REASON_XRSTORS 64 9162306a36Sopenharmony_ci#define EXIT_REASON_UMWAIT 67 9262306a36Sopenharmony_ci#define EXIT_REASON_TPAUSE 68 9362306a36Sopenharmony_ci#define EXIT_REASON_BUS_LOCK 74 9462306a36Sopenharmony_ci#define EXIT_REASON_NOTIFY 75 9562306a36Sopenharmony_ci 9662306a36Sopenharmony_ci#define VMX_EXIT_REASONS \ 9762306a36Sopenharmony_ci { EXIT_REASON_EXCEPTION_NMI, "EXCEPTION_NMI" }, \ 9862306a36Sopenharmony_ci { EXIT_REASON_EXTERNAL_INTERRUPT, "EXTERNAL_INTERRUPT" }, \ 9962306a36Sopenharmony_ci { EXIT_REASON_TRIPLE_FAULT, "TRIPLE_FAULT" }, \ 10062306a36Sopenharmony_ci { EXIT_REASON_INIT_SIGNAL, "INIT_SIGNAL" }, \ 10162306a36Sopenharmony_ci { EXIT_REASON_SIPI_SIGNAL, "SIPI_SIGNAL" }, \ 10262306a36Sopenharmony_ci { EXIT_REASON_INTERRUPT_WINDOW, "INTERRUPT_WINDOW" }, \ 10362306a36Sopenharmony_ci { EXIT_REASON_NMI_WINDOW, "NMI_WINDOW" }, \ 10462306a36Sopenharmony_ci { EXIT_REASON_TASK_SWITCH, "TASK_SWITCH" }, \ 10562306a36Sopenharmony_ci { EXIT_REASON_CPUID, "CPUID" }, \ 10662306a36Sopenharmony_ci { EXIT_REASON_HLT, "HLT" }, \ 10762306a36Sopenharmony_ci { EXIT_REASON_INVD, "INVD" }, \ 10862306a36Sopenharmony_ci { EXIT_REASON_INVLPG, "INVLPG" }, \ 10962306a36Sopenharmony_ci { EXIT_REASON_RDPMC, "RDPMC" }, \ 11062306a36Sopenharmony_ci { EXIT_REASON_RDTSC, "RDTSC" }, \ 11162306a36Sopenharmony_ci { EXIT_REASON_VMCALL, "VMCALL" }, \ 11262306a36Sopenharmony_ci { EXIT_REASON_VMCLEAR, "VMCLEAR" }, \ 11362306a36Sopenharmony_ci { EXIT_REASON_VMLAUNCH, "VMLAUNCH" }, \ 11462306a36Sopenharmony_ci { EXIT_REASON_VMPTRLD, "VMPTRLD" }, \ 11562306a36Sopenharmony_ci { EXIT_REASON_VMPTRST, "VMPTRST" }, \ 11662306a36Sopenharmony_ci { EXIT_REASON_VMREAD, "VMREAD" }, \ 11762306a36Sopenharmony_ci { EXIT_REASON_VMRESUME, "VMRESUME" }, \ 11862306a36Sopenharmony_ci { EXIT_REASON_VMWRITE, "VMWRITE" }, \ 11962306a36Sopenharmony_ci { EXIT_REASON_VMOFF, "VMOFF" }, \ 12062306a36Sopenharmony_ci { EXIT_REASON_VMON, "VMON" }, \ 12162306a36Sopenharmony_ci { EXIT_REASON_CR_ACCESS, "CR_ACCESS" }, \ 12262306a36Sopenharmony_ci { EXIT_REASON_DR_ACCESS, "DR_ACCESS" }, \ 12362306a36Sopenharmony_ci { EXIT_REASON_IO_INSTRUCTION, "IO_INSTRUCTION" }, \ 12462306a36Sopenharmony_ci { EXIT_REASON_MSR_READ, "MSR_READ" }, \ 12562306a36Sopenharmony_ci { EXIT_REASON_MSR_WRITE, "MSR_WRITE" }, \ 12662306a36Sopenharmony_ci { EXIT_REASON_INVALID_STATE, "INVALID_STATE" }, \ 12762306a36Sopenharmony_ci { EXIT_REASON_MSR_LOAD_FAIL, "MSR_LOAD_FAIL" }, \ 12862306a36Sopenharmony_ci { EXIT_REASON_MWAIT_INSTRUCTION, "MWAIT_INSTRUCTION" }, \ 12962306a36Sopenharmony_ci { EXIT_REASON_MONITOR_TRAP_FLAG, "MONITOR_TRAP_FLAG" }, \ 13062306a36Sopenharmony_ci { EXIT_REASON_MONITOR_INSTRUCTION, "MONITOR_INSTRUCTION" }, \ 13162306a36Sopenharmony_ci { EXIT_REASON_PAUSE_INSTRUCTION, "PAUSE_INSTRUCTION" }, \ 13262306a36Sopenharmony_ci { EXIT_REASON_MCE_DURING_VMENTRY, "MCE_DURING_VMENTRY" }, \ 13362306a36Sopenharmony_ci { EXIT_REASON_TPR_BELOW_THRESHOLD, "TPR_BELOW_THRESHOLD" }, \ 13462306a36Sopenharmony_ci { EXIT_REASON_APIC_ACCESS, "APIC_ACCESS" }, \ 13562306a36Sopenharmony_ci { EXIT_REASON_EOI_INDUCED, "EOI_INDUCED" }, \ 13662306a36Sopenharmony_ci { EXIT_REASON_GDTR_IDTR, "GDTR_IDTR" }, \ 13762306a36Sopenharmony_ci { EXIT_REASON_LDTR_TR, "LDTR_TR" }, \ 13862306a36Sopenharmony_ci { EXIT_REASON_EPT_VIOLATION, "EPT_VIOLATION" }, \ 13962306a36Sopenharmony_ci { EXIT_REASON_EPT_MISCONFIG, "EPT_MISCONFIG" }, \ 14062306a36Sopenharmony_ci { EXIT_REASON_INVEPT, "INVEPT" }, \ 14162306a36Sopenharmony_ci { EXIT_REASON_RDTSCP, "RDTSCP" }, \ 14262306a36Sopenharmony_ci { EXIT_REASON_PREEMPTION_TIMER, "PREEMPTION_TIMER" }, \ 14362306a36Sopenharmony_ci { EXIT_REASON_INVVPID, "INVVPID" }, \ 14462306a36Sopenharmony_ci { EXIT_REASON_WBINVD, "WBINVD" }, \ 14562306a36Sopenharmony_ci { EXIT_REASON_XSETBV, "XSETBV" }, \ 14662306a36Sopenharmony_ci { EXIT_REASON_APIC_WRITE, "APIC_WRITE" }, \ 14762306a36Sopenharmony_ci { EXIT_REASON_RDRAND, "RDRAND" }, \ 14862306a36Sopenharmony_ci { EXIT_REASON_INVPCID, "INVPCID" }, \ 14962306a36Sopenharmony_ci { EXIT_REASON_VMFUNC, "VMFUNC" }, \ 15062306a36Sopenharmony_ci { EXIT_REASON_ENCLS, "ENCLS" }, \ 15162306a36Sopenharmony_ci { EXIT_REASON_RDSEED, "RDSEED" }, \ 15262306a36Sopenharmony_ci { EXIT_REASON_PML_FULL, "PML_FULL" }, \ 15362306a36Sopenharmony_ci { EXIT_REASON_XSAVES, "XSAVES" }, \ 15462306a36Sopenharmony_ci { EXIT_REASON_XRSTORS, "XRSTORS" }, \ 15562306a36Sopenharmony_ci { EXIT_REASON_UMWAIT, "UMWAIT" }, \ 15662306a36Sopenharmony_ci { EXIT_REASON_TPAUSE, "TPAUSE" }, \ 15762306a36Sopenharmony_ci { EXIT_REASON_BUS_LOCK, "BUS_LOCK" }, \ 15862306a36Sopenharmony_ci { EXIT_REASON_NOTIFY, "NOTIFY" } 15962306a36Sopenharmony_ci 16062306a36Sopenharmony_ci#define VMX_EXIT_REASON_FLAGS \ 16162306a36Sopenharmony_ci { VMX_EXIT_REASONS_FAILED_VMENTRY, "FAILED_VMENTRY" } 16262306a36Sopenharmony_ci 16362306a36Sopenharmony_ci#define VMX_ABORT_SAVE_GUEST_MSR_FAIL 1 16462306a36Sopenharmony_ci#define VMX_ABORT_LOAD_HOST_PDPTE_FAIL 2 16562306a36Sopenharmony_ci#define VMX_ABORT_LOAD_HOST_MSR_FAIL 4 16662306a36Sopenharmony_ci 16762306a36Sopenharmony_ci#endif /* _UAPIVMX_H */ 168