freebsd-dev/usr.sbin/bhyve
Neel Natu ba9b7bf73a 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
2012-11-28 00:02:17 +00:00
..
acpi.c
acpi.h
atpic.c
consport.c
dbgport.c
dbgport.h
elcr.c
fbsdrun.c Revamp the x86 instruction emulation in bhyve. 2012-11-28 00:02:17 +00:00
fbsdrun.h
inout.c Mask the %eax register properly based on whether the "out" instruction is 2012-11-21 00:14:03 +00:00
inout.h
ioapic.c Revamp the x86 instruction emulation in bhyve. 2012-11-28 00:02:17 +00:00
ioapic.h
Makefile Revamp the x86 instruction emulation in bhyve. 2012-11-28 00:02:17 +00:00
mem.c Revamp the x86 instruction emulation in bhyve. 2012-11-28 00:02:17 +00:00
mem.h Revamp the x86 instruction emulation in bhyve. 2012-11-28 00:02:17 +00:00
mevent_test.c
mevent.c
mevent.h
mptbl.c
mptbl.h
pci_emul.c
pci_emul.h
pci_hostbridge.c
pci_passthru.c Revamp the x86 instruction emulation in bhyve. 2012-11-28 00:02:17 +00:00
pci_uart.c
pci_virtio_block.c
pci_virtio_net.c
pit_8254.c
pit_8254.h
pmtmr.c
post.c
rtc.c
spinup_ap.c
spinup_ap.h
uart.c
virtio.h
xmsr.c
xmsr.h