vmm_dev.h (245678) | vmm_dev.h (246686) |
---|---|
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 245678 2013-01-20 03:42:49Z neel $ | 26 * $FreeBSD: head/sys/amd64/include/vmm_dev.h 246686 2013-02-11 20:36:07Z 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); --- 11 unchanged lines hidden (view full) --- 46}; 47 48struct vm_seg_desc { /* data or code segment */ 49 int cpuid; 50 int regnum; /* enum vm_reg_name */ 51 struct seg_desc desc; 52}; 53 | 27 */ 28 29#ifndef _VMM_DEV_H_ 30#define _VMM_DEV_H_ 31 32#ifdef _KERNEL 33void vmmdev_init(void); 34int vmmdev_cleanup(void); --- 11 unchanged lines hidden (view full) --- 46}; 47 48struct vm_seg_desc { /* data or code segment */ 49 int cpuid; 50 int regnum; /* enum vm_reg_name */ 51 struct seg_desc desc; 52}; 53 |
54struct vm_pin { 55 int vm_cpuid; 56 int host_cpuid; /* -1 to unpin */ 57}; 58 | |
59struct vm_run { 60 int cpuid; 61 uint64_t rip; /* start running here */ 62 struct vm_exit vm_exit; 63}; 64 65struct vm_event { 66 int cpuid; --- 70 unchanged lines hidden (view full) --- 137 138struct vm_x2apic { 139 int cpuid; 140 enum x2apic_state state; 141}; 142 143enum { 144 IOCNUM_RUN, | 54struct vm_run { 55 int cpuid; 56 uint64_t rip; /* start running here */ 57 struct vm_exit vm_exit; 58}; 59 60struct vm_event { 61 int cpuid; --- 70 unchanged lines hidden (view full) --- 132 133struct vm_x2apic { 134 int cpuid; 135 enum x2apic_state state; 136}; 137 138enum { 139 IOCNUM_RUN, |
145 IOCNUM_SET_PINNING, 146 IOCNUM_GET_PINNING, | |
147 IOCNUM_MAP_MEMORY, 148 IOCNUM_GET_MEMORY_SEG, 149 IOCNUM_SET_REGISTER, 150 IOCNUM_GET_REGISTER, 151 IOCNUM_SET_SEGMENT_DESCRIPTOR, 152 IOCNUM_GET_SEGMENT_DESCRIPTOR, 153 IOCNUM_INJECT_EVENT, 154 IOCNUM_LAPIC_IRQ, --- 8 unchanged lines hidden (view full) --- 163 IOCNUM_VM_STATS, 164 IOCNUM_VM_STAT_DESC, 165 IOCNUM_SET_X2APIC_STATE, 166 IOCNUM_GET_X2APIC_STATE, 167}; 168 169#define VM_RUN \ 170 _IOWR('v', IOCNUM_RUN, struct vm_run) | 140 IOCNUM_MAP_MEMORY, 141 IOCNUM_GET_MEMORY_SEG, 142 IOCNUM_SET_REGISTER, 143 IOCNUM_GET_REGISTER, 144 IOCNUM_SET_SEGMENT_DESCRIPTOR, 145 IOCNUM_GET_SEGMENT_DESCRIPTOR, 146 IOCNUM_INJECT_EVENT, 147 IOCNUM_LAPIC_IRQ, --- 8 unchanged lines hidden (view full) --- 156 IOCNUM_VM_STATS, 157 IOCNUM_VM_STAT_DESC, 158 IOCNUM_SET_X2APIC_STATE, 159 IOCNUM_GET_X2APIC_STATE, 160}; 161 162#define VM_RUN \ 163 _IOWR('v', IOCNUM_RUN, struct vm_run) |
171#define VM_SET_PINNING \ 172 _IOW('v', IOCNUM_SET_PINNING, struct vm_pin) 173#define VM_GET_PINNING \ 174 _IOWR('v', IOCNUM_GET_PINNING, struct vm_pin) | |
175#define VM_MAP_MEMORY \ 176 _IOWR('v', IOCNUM_MAP_MEMORY, struct vm_memory_segment) 177#define VM_GET_MEMORY_SEG \ 178 _IOWR('v', IOCNUM_GET_MEMORY_SEG, struct vm_memory_segment) 179#define VM_SET_REGISTER \ 180 _IOW('v', IOCNUM_SET_REGISTER, struct vm_register) 181#define VM_GET_REGISTER \ 182 _IOWR('v', IOCNUM_GET_REGISTER, struct vm_register) --- 33 unchanged lines hidden --- | 164#define VM_MAP_MEMORY \ 165 _IOWR('v', IOCNUM_MAP_MEMORY, struct vm_memory_segment) 166#define VM_GET_MEMORY_SEG \ 167 _IOWR('v', IOCNUM_GET_MEMORY_SEG, struct vm_memory_segment) 168#define VM_SET_REGISTER \ 169 _IOW('v', IOCNUM_SET_REGISTER, struct vm_register) 170#define VM_GET_REGISTER \ 171 _IOWR('v', IOCNUM_GET_REGISTER, struct vm_register) --- 33 unchanged lines hidden --- |