1/* 2 * This file and its contents are supplied under the terms of the 3 * Common Development and Distribution License ("CDDL"), version 1.0. 4 * You may only use this file in accordance with the terms of version 5 * 1.0 of the CDDL. 6 * 7 * A full copy of the text of the CDDL should have accompanied this 8 * source. A copy of the CDDL is also available via the Internet at 9 * http://www.illumos.org/license/CDDL. 10 */ 11/* This file is dual-licensed; see usr/src/contrib/bhyve/LICENSE */ 12 13/* 14 * Copyright 2014 Pluribus Networks Inc. 15 */ 16 17#include <sys/types.h> 18#include <sys/param.h> 19#include <sys/systm.h> 20#include <sys/cpuvar.h> 21 22#include <machine/vmm.h> 23#include <sys/vmm_vm.h> 24 25#include "intel/vmx.h" 26 27vmxctx 28 guest_rdi VMXCTX_GUEST_RDI 29 guest_rsi VMXCTX_GUEST_RSI 30 guest_rdx VMXCTX_GUEST_RDX 31 guest_rcx VMXCTX_GUEST_RCX 32 guest_r8 VMXCTX_GUEST_R8 33 guest_r9 VMXCTX_GUEST_R9 34 guest_rax VMXCTX_GUEST_RAX 35 guest_rbx VMXCTX_GUEST_RBX 36 guest_rbp VMXCTX_GUEST_RBP 37 guest_r10 VMXCTX_GUEST_R10 38 guest_r11 VMXCTX_GUEST_R11 39 guest_r12 VMXCTX_GUEST_R12 40 guest_r13 VMXCTX_GUEST_R13 41 guest_r14 VMXCTX_GUEST_R14 42 guest_r15 VMXCTX_GUEST_R15 43 guest_cr2 VMXCTX_GUEST_CR2 44 inst_fail_status VMXCTX_INST_FAIL_STATUS 45 46\#define VM_SUCCESS 0 47\#define VM_FAIL_INVALID 1 48\#define VM_FAIL_VALID 2 49 50\#define VMX_GUEST_VMEXIT 0 51\#define VMX_VMRESUME_ERROR 1 52\#define VMX_VMLAUNCH_ERROR 2 53\#define VMX_INVEPT_ERROR 3 54\#define VMX_VMWRITE_ERROR 4 55