Deleted Added
full compact
vmm.c (266524) vmm.c (266573)
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.c 266524 2014-05-22 03:14:54Z neel $
26 * $FreeBSD: head/sys/amd64/vmm/vmm.c 266573 2014-05-23 05:15:17Z neel $
27 */
28
29#include <sys/cdefs.h>
27 */
28
29#include <sys/cdefs.h>
30__FBSDID("$FreeBSD: head/sys/amd64/vmm/vmm.c 266524 2014-05-22 03:14:54Z neel $");
30__FBSDID("$FreeBSD: head/sys/amd64/vmm/vmm.c 266573 2014-05-23 05:15:17Z neel $");
31
32#include <sys/param.h>
33#include <sys/systm.h>
34#include <sys/kernel.h>
35#include <sys/module.h>
36#include <sys/sysctl.h>
37#include <sys/malloc.h>
38#include <sys/pcpu.h>

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

58#include <machine/smp.h>
59#include <x86/psl.h>
60#include <x86/apicreg.h>
61#include <machine/vmparam.h>
62
63#include <machine/vmm.h>
64#include <machine/vmm_dev.h>
65
31
32#include <sys/param.h>
33#include <sys/systm.h>
34#include <sys/kernel.h>
35#include <sys/module.h>
36#include <sys/sysctl.h>
37#include <sys/malloc.h>
38#include <sys/pcpu.h>

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

58#include <machine/smp.h>
59#include <x86/psl.h>
60#include <x86/apicreg.h>
61#include <machine/vmparam.h>
62
63#include <machine/vmm.h>
64#include <machine/vmm_dev.h>
65
66#include "vmm_ioport.h"
66#include "vmm_ktr.h"
67#include "vmm_host.h"
68#include "vmm_mem.h"
69#include "vmm_util.h"
70#include "vatpic.h"
71#include "vatpit.h"
72#include "vhpet.h"
73#include "vioapic.h"

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

1349 error = vm_handle_hlt(vm, vcpuid, intr_disabled, &retu);
1350 break;
1351 case VM_EXITCODE_PAGING:
1352 error = vm_handle_paging(vm, vcpuid, &retu);
1353 break;
1354 case VM_EXITCODE_INST_EMUL:
1355 error = vm_handle_inst_emul(vm, vcpuid, &retu);
1356 break;
67#include "vmm_ktr.h"
68#include "vmm_host.h"
69#include "vmm_mem.h"
70#include "vmm_util.h"
71#include "vatpic.h"
72#include "vatpit.h"
73#include "vhpet.h"
74#include "vioapic.h"

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

1350 error = vm_handle_hlt(vm, vcpuid, intr_disabled, &retu);
1351 break;
1352 case VM_EXITCODE_PAGING:
1353 error = vm_handle_paging(vm, vcpuid, &retu);
1354 break;
1355 case VM_EXITCODE_INST_EMUL:
1356 error = vm_handle_inst_emul(vm, vcpuid, &retu);
1357 break;
1358 case VM_EXITCODE_INOUT:
1359 case VM_EXITCODE_INOUT_STR:
1360 error = vm_handle_inout(vm, vcpuid, vme, &retu);
1361 break;
1357 default:
1358 retu = true; /* handled in userland */
1359 break;
1360 }
1361 }
1362
1363 if (error == 0 && retu == false) {
1364 rip = vme->rip + vme->inst_length;

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

1869 return (vm->vatpic);
1870}
1871
1872struct vatpit *
1873vm_atpit(struct vm *vm)
1874{
1875 return (vm->vatpit);
1876}
1362 default:
1363 retu = true; /* handled in userland */
1364 break;
1365 }
1366 }
1367
1368 if (error == 0 && retu == false) {
1369 rip = vme->rip + vme->inst_length;

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

1874 return (vm->vatpic);
1875}
1876
1877struct vatpit *
1878vm_atpit(struct vm *vm)
1879{
1880 return (vm->vatpit);
1881}
1882
1883enum vm_reg_name
1884vm_segment_name(int seg)
1885{
1886 static enum vm_reg_name seg_names[] = {
1887 VM_REG_GUEST_ES,
1888 VM_REG_GUEST_CS,
1889 VM_REG_GUEST_SS,
1890 VM_REG_GUEST_DS,
1891 VM_REG_GUEST_FS,
1892 VM_REG_GUEST_GS
1893 };
1894
1895 KASSERT(seg >= 0 && seg < nitems(seg_names),
1896 ("%s: invalid segment encoding %d", __func__, seg));
1897 return (seg_names[seg]);
1898}