vmcs.h (245678) | vmcs.h (249879) |
---|---|
1/*- 2 * Copyright (c) 2011 NetApp, Inc. 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 9 unchanged lines hidden (view full) --- 18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * | 1/*- 2 * Copyright (c) 2011 NetApp, Inc. 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 9 unchanged lines hidden (view full) --- 18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * |
26 * $FreeBSD: head/sys/amd64/vmm/intel/vmcs.h 245678 2013-01-20 03:42:49Z neel $ | 26 * $FreeBSD: head/sys/amd64/vmm/intel/vmcs.h 249879 2013-04-25 04:56:43Z grehan $ |
27 */ 28 29#ifndef _VMCS_H_ 30#define _VMCS_H_ 31 32#ifdef _KERNEL 33struct vmcs { 34 uint32_t identifier; --- 12 unchanged lines hidden (view full) --- 47 48int vmcs_set_msr_save(struct vmcs *vmcs, u_long g_area, u_int g_count); 49int vmcs_set_defaults(struct vmcs *vmcs, u_long host_rip, u_long host_rsp, 50 u_long ept_pml4, 51 uint32_t pinbased_ctls, uint32_t procbased_ctls, 52 uint32_t procbased_ctls2, uint32_t exit_ctls, 53 uint32_t entry_ctls, u_long msr_bitmap, 54 uint16_t vpid); | 27 */ 28 29#ifndef _VMCS_H_ 30#define _VMCS_H_ 31 32#ifdef _KERNEL 33struct vmcs { 34 uint32_t identifier; --- 12 unchanged lines hidden (view full) --- 47 48int vmcs_set_msr_save(struct vmcs *vmcs, u_long g_area, u_int g_count); 49int vmcs_set_defaults(struct vmcs *vmcs, u_long host_rip, u_long host_rsp, 50 u_long ept_pml4, 51 uint32_t pinbased_ctls, uint32_t procbased_ctls, 52 uint32_t procbased_ctls2, uint32_t exit_ctls, 53 uint32_t entry_ctls, u_long msr_bitmap, 54 uint16_t vpid); |
55int vmcs_getreg(struct vmcs *vmcs, int ident, uint64_t *retval); 56int vmcs_setreg(struct vmcs *vmcs, int ident, uint64_t val); | 55int vmcs_getreg(struct vmcs *vmcs, int running, int ident, uint64_t *rv); 56int vmcs_setreg(struct vmcs *vmcs, int running, int ident, uint64_t val); |
57int vmcs_getdesc(struct vmcs *vmcs, int ident, 58 struct seg_desc *desc); 59int vmcs_setdesc(struct vmcs *vmcs, int ident, 60 struct seg_desc *desc); 61uint64_t vmcs_read(uint32_t encoding); 62 63#define vmexit_instruction_length() vmcs_read(VMCS_EXIT_INSTRUCTION_LENGTH) 64#define vmcs_guest_rip() vmcs_read(VMCS_GUEST_RIP) --- 274 unchanged lines hidden --- | 57int vmcs_getdesc(struct vmcs *vmcs, int ident, 58 struct seg_desc *desc); 59int vmcs_setdesc(struct vmcs *vmcs, int ident, 60 struct seg_desc *desc); 61uint64_t vmcs_read(uint32_t encoding); 62 63#define vmexit_instruction_length() vmcs_read(VMCS_EXIT_INSTRUCTION_LENGTH) 64#define vmcs_guest_rip() vmcs_read(VMCS_GUEST_RIP) --- 274 unchanged lines hidden --- |