summaryrefslogtreecommitdiffstats
path: root/usr.sbin/bhyve/Makefile
diff options
context:
space:
mode:
authorneel <neel@FreeBSD.org>2012-11-28 00:02:17 +0000
committerneel <neel@FreeBSD.org>2012-11-28 00:02:17 +0000
commit36ab9a2e1ab7d2b1884270275584f989cfd65e2b (patch)
tree8cf47855850351281fdc988a8a65fb469fbfb73f /usr.sbin/bhyve/Makefile
parent76430d4106c5cb90837c5f728272d9f249e085c4 (diff)
downloadFreeBSD-src-36ab9a2e1ab7d2b1884270275584f989cfd65e2b.zip
FreeBSD-src-36ab9a2e1ab7d2b1884270275584f989cfd65e2b.tar.gz
Revamp the x86 instruction emulation in bhyve.
On a nested page table fault the hypervisor will: - fetch the instruction using the guest %rip and %cr3 - decode the instruction in 'struct vie' - emulate the instruction in host kernel context for local apic accesses - any other type of mmio access is punted up to user-space (e.g. ioapic) The decoded instruction is passed as collateral to the user-space process that is handling the PAGING exit. The emulation code is fleshed out to include more addressing modes (e.g. SIB) and more types of operands (e.g. imm8). The source code is unified into a single file (vmm_instruction_emul.c) that is compiled into vmm.ko as well as /usr/sbin/bhyve. Reviewed by: grehan Obtained from: NetApp
Diffstat (limited to 'usr.sbin/bhyve/Makefile')
-rw-r--r--usr.sbin/bhyve/Makefile5
1 files changed, 4 insertions, 1 deletions
diff --git a/usr.sbin/bhyve/Makefile b/usr.sbin/bhyve/Makefile
index 9dc7a53..c45b904 100644
--- a/usr.sbin/bhyve/Makefile
+++ b/usr.sbin/bhyve/Makefile
@@ -7,11 +7,14 @@ PROG= bhyve
DEBUG_FLAGS= -g -O0
SRCS= acpi.c atpic.c consport.c dbgport.c elcr.c fbsdrun.c inout.c
-SRCS+= instruction_emul.c ioapic.c mem.c mevent.c mptbl.c
+SRCS+= ioapic.c mem.c mevent.c mptbl.c
SRCS+= pci_emul.c pci_hostbridge.c pci_passthru.c pci_virtio_block.c
SRCS+= pci_virtio_net.c pci_uart.c pit_8254.c pmtmr.c post.c rtc.c uart.c
SRCS+= xmsr.c spinup_ap.c
+.PATH: ${.CURDIR}/../../sys/amd64/vmm
+SRCS+= vmm_instruction_emul.c
+
NO_MAN=
DPADD= ${LIBVMMAPI} ${LIBMD} ${LIBPTHREAD}
OpenPOWER on IntegriCloud