vmm_dev.h (255751) | vmm_dev.h (256072) |
---|---|
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/include/vmm_dev.h 255751 2013-09-21 00:27:53Z grehan $ | 26 * $FreeBSD: head/sys/amd64/include/vmm_dev.h 256072 2013-10-05 21:22:35Z neel $ |
27 */ 28 29#ifndef _VMM_DEV_H_ 30#define _VMM_DEV_H_ 31 32#ifdef _KERNEL 33void vmmdev_init(void); 34int vmmdev_cleanup(void); 35#endif 36 37struct vm_memory_segment { 38 vm_paddr_t gpa; /* in */ | 27 */ 28 29#ifndef _VMM_DEV_H_ 30#define _VMM_DEV_H_ 31 32#ifdef _KERNEL 33void vmmdev_init(void); 34int vmmdev_cleanup(void); 35#endif 36 37struct vm_memory_segment { 38 vm_paddr_t gpa; /* in */ |
39 size_t len; /* in */ | 39 size_t len; 40 int wired; |
40}; 41 42struct vm_register { 43 int cpuid; 44 int regnum; /* enum vm_reg_name */ 45 uint64_t regval; 46}; 47 --- 82 unchanged lines hidden (view full) --- 130 char desc[128]; /* out */ 131}; 132 133struct vm_x2apic { 134 int cpuid; 135 enum x2apic_state state; 136}; 137 | 41}; 42 43struct vm_register { 44 int cpuid; 45 int regnum; /* enum vm_reg_name */ 46 uint64_t regval; 47}; 48 --- 82 unchanged lines hidden (view full) --- 131 char desc[128]; /* out */ 132}; 133 134struct vm_x2apic { 135 int cpuid; 136 enum x2apic_state state; 137}; 138 |
139struct vm_gpa_pte { 140 uint64_t gpa; /* in */ 141 uint64_t pte[4]; /* out */ 142 int ptenum; 143}; 144 |
|
138enum { 139 /* general routines */ 140 IOCNUM_ABIVERS = 0, 141 IOCNUM_RUN = 1, 142 IOCNUM_SET_CAPABILITY = 2, 143 IOCNUM_GET_CAPABILITY = 3, 144 145 /* memory apis */ 146 IOCNUM_MAP_MEMORY = 10, 147 IOCNUM_GET_MEMORY_SEG = 11, | 145enum { 146 /* general routines */ 147 IOCNUM_ABIVERS = 0, 148 IOCNUM_RUN = 1, 149 IOCNUM_SET_CAPABILITY = 2, 150 IOCNUM_GET_CAPABILITY = 3, 151 152 /* memory apis */ 153 IOCNUM_MAP_MEMORY = 10, 154 IOCNUM_GET_MEMORY_SEG = 11, |
155 IOCNUM_GET_GPA_PMAP = 12, |
|
148 149 /* register/state accessors */ 150 IOCNUM_SET_REGISTER = 20, 151 IOCNUM_GET_REGISTER = 21, 152 IOCNUM_SET_SEGMENT_DESCRIPTOR = 22, 153 IOCNUM_GET_SEGMENT_DESCRIPTOR = 23, 154 155 /* interrupt injection */ --- 54 unchanged lines hidden (view full) --- 210#define VM_STATS \ 211 _IOWR('v', IOCNUM_VM_STATS, struct vm_stats) 212#define VM_STAT_DESC \ 213 _IOWR('v', IOCNUM_VM_STAT_DESC, struct vm_stat_desc) 214#define VM_SET_X2APIC_STATE \ 215 _IOW('v', IOCNUM_SET_X2APIC_STATE, struct vm_x2apic) 216#define VM_GET_X2APIC_STATE \ 217 _IOWR('v', IOCNUM_GET_X2APIC_STATE, struct vm_x2apic) | 156 157 /* register/state accessors */ 158 IOCNUM_SET_REGISTER = 20, 159 IOCNUM_GET_REGISTER = 21, 160 IOCNUM_SET_SEGMENT_DESCRIPTOR = 22, 161 IOCNUM_GET_SEGMENT_DESCRIPTOR = 23, 162 163 /* interrupt injection */ --- 54 unchanged lines hidden (view full) --- 218#define VM_STATS \ 219 _IOWR('v', IOCNUM_VM_STATS, struct vm_stats) 220#define VM_STAT_DESC \ 221 _IOWR('v', IOCNUM_VM_STAT_DESC, struct vm_stat_desc) 222#define VM_SET_X2APIC_STATE \ 223 _IOW('v', IOCNUM_SET_X2APIC_STATE, struct vm_x2apic) 224#define VM_GET_X2APIC_STATE \ 225 _IOWR('v', IOCNUM_GET_X2APIC_STATE, struct vm_x2apic) |
226#define VM_GET_GPA_PMAP \ 227 _IOWR('v', IOCNUM_GET_GPA_PMAP, struct vm_gpa_pte) |
|
218#endif | 228#endif |