Deleted Added
full compact
vmm_dev.c (245678) vmm_dev.c (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/vmm/vmm_dev.c 245678 2013-01-20 03:42:49Z neel $
26 * $FreeBSD: head/sys/amd64/vmm/vmm_dev.c 246686 2013-02-11 20:36:07Z neel $
27 */
28
29#include <sys/cdefs.h>
27 */
28
29#include <sys/cdefs.h>
30__FBSDID("$FreeBSD: head/sys/amd64/vmm/vmm_dev.c 245678 2013-01-20 03:42:49Z neel $");
30__FBSDID("$FreeBSD: head/sys/amd64/vmm/vmm_dev.c 246686 2013-02-11 20:36:07Z neel $");
31
32#include <sys/param.h>
33#include <sys/kernel.h>
34#include <sys/queue.h>
35#include <sys/lock.h>
36#include <sys/mutex.h>
37#include <sys/malloc.h>
38#include <sys/conf.h>

--- 100 unchanged lines hidden (view full) ---

139 struct thread *td)
140{
141 int error, vcpu, state_changed;
142 enum vcpu_state new_state;
143 struct vmmdev_softc *sc;
144 struct vm_memory_segment *seg;
145 struct vm_register *vmreg;
146 struct vm_seg_desc* vmsegdesc;
31
32#include <sys/param.h>
33#include <sys/kernel.h>
34#include <sys/queue.h>
35#include <sys/lock.h>
36#include <sys/mutex.h>
37#include <sys/malloc.h>
38#include <sys/conf.h>

--- 100 unchanged lines hidden (view full) ---

139 struct thread *td)
140{
141 int error, vcpu, state_changed;
142 enum vcpu_state new_state;
143 struct vmmdev_softc *sc;
144 struct vm_memory_segment *seg;
145 struct vm_register *vmreg;
146 struct vm_seg_desc* vmsegdesc;
147 struct vm_pin *vmpin;
148 struct vm_run *vmrun;
149 struct vm_event *vmevent;
150 struct vm_lapic_irq *vmirq;
151 struct vm_capability *vmcap;
152 struct vm_pptdev *pptdev;
153 struct vm_pptdev_mmio *pptmmio;
154 struct vm_pptdev_msi *pptmsi;
155 struct vm_pptdev_msix *pptmsix;

--- 9 unchanged lines hidden (view full) ---

165 vcpu = -1;
166 state_changed = 0;
167
168 /*
169 * Some VMM ioctls can operate only on vcpus that are not running.
170 */
171 switch (cmd) {
172 case VM_RUN:
147 struct vm_run *vmrun;
148 struct vm_event *vmevent;
149 struct vm_lapic_irq *vmirq;
150 struct vm_capability *vmcap;
151 struct vm_pptdev *pptdev;
152 struct vm_pptdev_mmio *pptmmio;
153 struct vm_pptdev_msi *pptmsi;
154 struct vm_pptdev_msix *pptmsix;

--- 9 unchanged lines hidden (view full) ---

164 vcpu = -1;
165 state_changed = 0;
166
167 /*
168 * Some VMM ioctls can operate only on vcpus that are not running.
169 */
170 switch (cmd) {
171 case VM_RUN:
173 case VM_SET_PINNING:
174 case VM_GET_REGISTER:
175 case VM_SET_REGISTER:
176 case VM_GET_SEGMENT_DESCRIPTOR:
177 case VM_SET_SEGMENT_DESCRIPTOR:
178 case VM_INJECT_EVENT:
179 case VM_GET_CAPABILITY:
180 case VM_SET_CAPABILITY:
181 case VM_PPTDEV_MSI:

--- 114 unchanged lines hidden (view full) ---

296 case VM_INJECT_NMI:
297 vmnmi = (struct vm_nmi *)data;
298 error = vm_inject_nmi(sc->vm, vmnmi->cpuid);
299 break;
300 case VM_LAPIC_IRQ:
301 vmirq = (struct vm_lapic_irq *)data;
302 error = lapic_set_intr(sc->vm, vmirq->cpuid, vmirq->vector);
303 break;
172 case VM_GET_REGISTER:
173 case VM_SET_REGISTER:
174 case VM_GET_SEGMENT_DESCRIPTOR:
175 case VM_SET_SEGMENT_DESCRIPTOR:
176 case VM_INJECT_EVENT:
177 case VM_GET_CAPABILITY:
178 case VM_SET_CAPABILITY:
179 case VM_PPTDEV_MSI:

--- 114 unchanged lines hidden (view full) ---

294 case VM_INJECT_NMI:
295 vmnmi = (struct vm_nmi *)data;
296 error = vm_inject_nmi(sc->vm, vmnmi->cpuid);
297 break;
298 case VM_LAPIC_IRQ:
299 vmirq = (struct vm_lapic_irq *)data;
300 error = lapic_set_intr(sc->vm, vmirq->cpuid, vmirq->vector);
301 break;
304 case VM_SET_PINNING:
305 vmpin = (struct vm_pin *)data;
306 error = vm_set_pinning(sc->vm, vmpin->vm_cpuid,
307 vmpin->host_cpuid);
308 break;
309 case VM_GET_PINNING:
310 vmpin = (struct vm_pin *)data;
311 error = vm_get_pinning(sc->vm, vmpin->vm_cpuid,
312 &vmpin->host_cpuid);
313 break;
314 case VM_MAP_MEMORY:
315 seg = (struct vm_memory_segment *)data;
316 error = vm_malloc(sc->vm, seg->gpa, seg->len);
317 break;
318 case VM_GET_MEMORY_SEG:
319 seg = (struct vm_memory_segment *)data;
320 seg->len = 0;
321 (void)vm_gpabase2memseg(sc->vm, seg->gpa, seg);

--- 217 unchanged lines hidden ---
302 case VM_MAP_MEMORY:
303 seg = (struct vm_memory_segment *)data;
304 error = vm_malloc(sc->vm, seg->gpa, seg->len);
305 break;
306 case VM_GET_MEMORY_SEG:
307 seg = (struct vm_memory_segment *)data;
308 seg->len = 0;
309 (void)vm_gpabase2memseg(sc->vm, seg->gpa, seg);

--- 217 unchanged lines hidden ---