Deleted Added
full compact
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