From 6322d865314a4cd1db72834c51bde292341c8f07 Mon Sep 17 00:00:00 2001 From: Michael Steil Date: Tue, 9 Jun 2015 21:28:44 -0700 Subject: [PATCH] xhyve --- Makefile | 103 + README.md | 184 + bhyve/Makefile | 50 - bhyve/bhyve.8 | 325 -- bhyve/bhyverun.c | 892 ----- bhyve/pci_emul.h | 283 -- bhyve/pci_passthru.c | 790 ---- bhyve/spinup_ap.c | 104 - bhyve/xmsr.c | 230 -- bhyvectl/Makefile | 16 - bhyvectl/bhyvectl.c | 2142 ----------- bhyveload/Makefile | 13 - bhyveload/bhyveload.8 | 157 - bhyveload/bhyveload.c | 746 ---- config.mk | 73 + {bhyve => include/xhyve}/acpi.h | 38 +- {bhyve => include/xhyve}/ahci.h | 19 +- {bhyve => include/xhyve}/block_if.h | 49 +- {bhyve => include/xhyve}/dbgport.h | 7 +- include/xhyve/firmware/kexec.h | 89 + {bhyve => include/xhyve}/inout.h | 68 +- {bhyve => include/xhyve}/ioapic.h | 9 +- {bhyve => include/xhyve}/mem.h | 52 +- {bhyve => include/xhyve}/mevent.h | 20 +- {bhyve => include/xhyve}/mptbl.h | 9 +- include/xhyve/pci_emul.h | 278 ++ {bhyve => include/xhyve}/pci_irq.h | 23 +- {bhyve => include/xhyve}/pci_lpc.h | 45 +- {bhyve => include/xhyve}/rtc.h | 6 +- {bhyve => include/xhyve}/smbiostbl.h | 9 +- include/xhyve/support/acpi_hpet.h | 64 + include/xhyve/support/apicreg.h | 509 +++ include/xhyve/support/ata.h | 643 ++++ include/xhyve/support/atomic.h | 443 +++ include/xhyve/support/bitset.h | 215 ++ include/xhyve/support/cpuset.h | 150 + include/xhyve/support/i8253reg.h | 81 + include/xhyve/support/i8259.h | 83 + include/xhyve/support/linker_set.h | 96 + include/xhyve/support/md5.h | 52 + include/xhyve/support/misc.h | 64 + include/xhyve/support/mptable.h | 194 + include/xhyve/support/ns16550.h | 242 ++ include/xhyve/support/pcireg.h | 945 +++++ include/xhyve/support/psl.h | 89 + include/xhyve/support/rtc.h | 111 + include/xhyve/support/segments.h | 277 ++ include/xhyve/support/specialreg.h | 845 ++++ include/xhyve/support/timerreg.h | 47 + include/xhyve/support/tree.h | 751 ++++ include/xhyve/support/uuid.h | 153 + {bhyve => include/xhyve}/uart_emul.h | 17 +- {bhyve => include/xhyve}/virtio.h | 198 +- {vmm => include/xhyve/vmm}/intel/vmcs.h | 121 +- {vmm => include/xhyve/vmm}/intel/vmx.h | 78 +- include/xhyve/vmm/intel/vmx_controls.h | 94 + .../xhyve/vmm/intel/vmx_msr.h | 22 +- {vmm => include/xhyve/vmm}/io/vatpic.h | 18 +- {vmm => include/xhyve/vmm}/io/vatpit.h | 17 +- {vmm => include/xhyve/vmm}/io/vhpet.h | 26 +- {vmm => include/xhyve/vmm}/io/vioapic.h | 33 +- {vmm => include/xhyve/vmm}/io/vlapic.h | 9 +- {vmm => include/xhyve/vmm}/io/vlapic_priv.h | 99 +- {vmm => include/xhyve/vmm}/io/vpmtmr.h | 10 +- {vmm => include/xhyve/vmm}/io/vrtc.h | 16 +- include/xhyve/vmm/vmm.h | 314 ++ include/xhyve/vmm/vmm_api.h | 113 + include/xhyve/vmm/vmm_callout.h | 117 + include/xhyve/vmm/vmm_common.h | 322 ++ .../xhyve/vmm/vmm_host.h | 18 +- .../xhyve/vmm/vmm_instruction_emul.h | 31 +- {vmm => include/xhyve/vmm}/vmm_ioport.h | 11 +- {vmm => include/xhyve/vmm}/vmm_ktr.h | 37 +- {vmm => include/xhyve/vmm}/vmm_lapic.h | 11 +- {vmm => include/xhyve/vmm}/vmm_mem.h | 19 +- {vmm => include/xhyve/vmm}/vmm_stat.h | 47 +- {vmm => include/xhyve/vmm}/vmm_util.h | 11 +- {vmm => include/xhyve/vmm}/x86.h | 20 +- vmm/io/ppt.h => include/xhyve/xhyve.h | 72 +- {bhyve => include/xhyve}/xmsr.h | 11 +- libvmmapi/Makefile | 13 - libvmmapi/vmmapi.c | 1201 ------ libvmmapi/vmmapi.h | 173 - libvmmapi/vmmapi_freebsd.c | 345 -- {bhyve => src}/acpi.c | 73 +- {bhyve => src}/atkbdc.c | 41 +- {bhyve => src}/block_if.c | 307 +- {bhyve => src}/consport.c | 47 +- {bhyve => src}/dbgport.c | 34 +- src/firmware/kexec.c | 262 ++ {bhyve => src}/inout.c | 143 +- {bhyve => src}/ioapic.c | 16 +- src/md5c.c | 284 ++ {bhyve => src}/mem.c | 60 +- {bhyve => src}/mevent.c | 55 +- {bhyve => src}/mevent_test.c | 21 +- {bhyve => src}/mptbl.c | 64 +- {bhyve => src}/pci_ahci.c | 396 +- {bhyve => src}/pci_emul.c | 366 +- {bhyve => src}/pci_hostbridge.c | 18 +- {bhyve => src}/pci_irq.c | 91 +- {bhyve => src}/pci_lpc.c | 70 +- {bhyve => src}/pci_uart.c | 33 +- {bhyve => src}/pci_virtio_block.c | 173 +- {bhyve => src}/pci_virtio_net.c | 188 +- {bhyve => src}/pci_virtio_rnd.c | 71 +- src/pci_virtio_vmnet.c | 811 ++++ {bhyve => src}/pm.c | 90 +- {bhyve => src}/post.c | 17 +- {bhyve => src}/rtc.c | 55 +- {bhyve => src}/smbiostbl.c | 217 +- {bhyve => src}/task_switch.c | 333 +- {bhyve => src}/uart_emul.c | 44 +- {bhyve => src}/virtio.c | 96 +- src/vmm/intel/vmcs.c | 245 ++ src/vmm/intel/vmx.c | 2746 +++++++++++++ src/vmm/intel/vmx_msr.c | 353 ++ {vmm => src/vmm}/io/vatpic.c | 130 +- {vmm => src/vmm}/io/vatpit.c | 111 +- {vmm => src/vmm}/io/vhpet.c | 143 +- {vmm => src/vmm}/io/vioapic.c | 122 +- {vmm => src/vmm}/io/vlapic.c | 292 +- {vmm => src/vmm}/io/vpmtmr.c | 41 +- {vmm => src/vmm}/io/vrtc.c | 309 +- {vmm => src/vmm}/vmm.c | 1223 ++---- src/vmm/vmm_api.c | 831 ++++ src/vmm/vmm_callout.c | 379 ++ src/vmm/vmm_host.c | 60 + {vmm => src/vmm}/vmm_instruction_emul.c | 263 +- {vmm => src/vmm}/vmm_ioport.c | 44 +- {vmm => src/vmm}/vmm_lapic.c | 45 +- bhyve/bhyverun.h => src/vmm/vmm_mem.c | 58 +- {vmm => src/vmm}/vmm_stat.c | 29 +- {vmm => src/vmm}/vmm_util.c | 82 +- {vmm => src/vmm}/x86.c | 195 +- src/xhyve.c | 923 +++++ src/xmsr.c | 104 + test/initrd.gz | Bin 0 -> 7609274 bytes test/tinycore.txt | 9 + test/vmlinuz | Bin 0 -> 3576672 bytes vmm.h | 648 ---- vmm/amd/amdv.c | 133 - vmm/amd/npt.c | 87 - vmm/amd/npt.h | 36 - vmm/amd/svm.c | 2259 ----------- vmm/amd/svm.h | 54 - vmm/amd/svm_genassym.c | 48 - vmm/amd/svm_msr.c | 165 - vmm/amd/svm_msr.h | 44 - vmm/amd/svm_softc.h | 114 - vmm/amd/svm_support.S | 121 - vmm/amd/vmcb.c | 442 --- vmm/amd/vmcb.h | 334 -- vmm/intel/ept.c | 205 - vmm/intel/vmcs.c | 503 --- vmm/intel/vmx.c | 3416 ----------------- vmm/intel/vmx_controls.h | 96 - vmm/intel/vmx_cpufunc.h | 218 -- vmm/intel/vmx_genassym.c | 88 - vmm/intel/vmx_msr.c | 483 --- vmm/intel/vmx_msr.h | 70 - vmm/intel/vmx_support.S | 262 -- vmm/intel/vtd.c | 688 ---- vmm/io/iommu.c | 285 -- vmm/io/iommu.h | 75 - vmm/io/ppt.c | 651 ---- vmm/vmm_dev.c | 689 ---- vmm/vmm_host.c | 161 - vmm/vmm_host.h | 83 - vmm/vmm_mem.c | 154 - vmm_dev.h | 365 -- xhyve_logo.png | Bin 0 -> 20042 bytes xhyverun.sh | 15 + 173 files changed, 18281 insertions(+), 24451 deletions(-) create mode 100644 Makefile create mode 100644 README.md delete mode 100644 bhyve/Makefile delete mode 100644 bhyve/bhyve.8 delete mode 100644 bhyve/bhyverun.c delete mode 100644 bhyve/pci_emul.h delete mode 100644 bhyve/pci_passthru.c delete mode 100644 bhyve/spinup_ap.c delete mode 100644 bhyve/xmsr.c delete mode 100644 bhyvectl/Makefile delete mode 100644 bhyvectl/bhyvectl.c delete mode 100644 bhyveload/Makefile delete mode 100644 bhyveload/bhyveload.8 delete mode 100644 bhyveload/bhyveload.c create mode 100644 config.mk rename {bhyve => include/xhyve}/acpi.h (68%) rename {bhyve => include/xhyve}/ahci.h (96%) rename {bhyve => include/xhyve}/block_if.h (62%) rename {bhyve => include/xhyve}/dbgport.h (94%) create mode 100644 include/xhyve/firmware/kexec.h rename {bhyve => include/xhyve}/inout.h (61%) rename {bhyve => include/xhyve}/ioapic.h (92%) rename {bhyve => include/xhyve}/mem.h (63%) rename {bhyve => include/xhyve}/mevent.h (79%) rename {bhyve => include/xhyve}/mptbl.h (89%) create mode 100644 include/xhyve/pci_emul.h rename {bhyve => include/xhyve}/pci_irq.h (78%) rename {bhyve => include/xhyve}/pci_lpc.h (67%) rename {bhyve => include/xhyve}/rtc.h (92%) rename {bhyve => include/xhyve}/smbiostbl.h (91%) create mode 100644 include/xhyve/support/acpi_hpet.h create mode 100644 include/xhyve/support/apicreg.h create mode 100644 include/xhyve/support/ata.h create mode 100644 include/xhyve/support/atomic.h create mode 100644 include/xhyve/support/bitset.h create mode 100644 include/xhyve/support/cpuset.h create mode 100644 include/xhyve/support/i8253reg.h create mode 100644 include/xhyve/support/i8259.h create mode 100644 include/xhyve/support/linker_set.h create mode 100644 include/xhyve/support/md5.h create mode 100644 include/xhyve/support/misc.h create mode 100644 include/xhyve/support/mptable.h create mode 100644 include/xhyve/support/ns16550.h create mode 100644 include/xhyve/support/pcireg.h create mode 100644 include/xhyve/support/psl.h create mode 100644 include/xhyve/support/rtc.h create mode 100644 include/xhyve/support/segments.h create mode 100644 include/xhyve/support/specialreg.h create mode 100644 include/xhyve/support/timerreg.h create mode 100644 include/xhyve/support/tree.h create mode 100644 include/xhyve/support/uuid.h rename {bhyve => include/xhyve}/uart_emul.h (80%) rename {bhyve => include/xhyve}/virtio.h (77%) rename {vmm => include/xhyve/vmm}/intel/vmcs.h (80%) rename {vmm => include/xhyve/vmm}/intel/vmx.h (59%) create mode 100644 include/xhyve/vmm/intel/vmx_controls.h rename vmm/intel/ept.h => include/xhyve/vmm/intel/vmx_msr.h (74%) rename {vmm => include/xhyve/vmm}/io/vatpic.h (88%) rename {vmm => include/xhyve/vmm}/io/vatpit.h (91%) rename {vmm => include/xhyve/vmm}/io/vhpet.h (79%) rename {vmm => include/xhyve/vmm}/io/vioapic.h (71%) rename {vmm => include/xhyve/vmm}/io/vlapic.h (98%) rename {vmm => include/xhyve/vmm}/io/vlapic_priv.h (73%) rename {vmm => include/xhyve/vmm}/io/vpmtmr.h (96%) rename {vmm => include/xhyve/vmm}/io/vrtc.h (92%) create mode 100644 include/xhyve/vmm/vmm.h create mode 100644 include/xhyve/vmm/vmm_api.h create mode 100644 include/xhyve/vmm/vmm_callout.h create mode 100644 include/xhyve/vmm/vmm_common.h rename bhyve/spinup_ap.h => include/xhyve/vmm/vmm_host.h (80%) rename vmm_instruction_emul.h => include/xhyve/vmm/vmm_instruction_emul.h (80%) rename {vmm => include/xhyve/vmm}/vmm_ioport.h (95%) rename {vmm => include/xhyve/vmm}/vmm_ktr.h (69%) rename {vmm => include/xhyve/vmm}/vmm_lapic.h (95%) rename {vmm => include/xhyve/vmm}/vmm_mem.h (75%) rename {vmm => include/xhyve/vmm}/vmm_stat.h (88%) rename {vmm => include/xhyve/vmm}/vmm_util.h (87%) rename {vmm => include/xhyve/vmm}/x86.h (87%) rename vmm/io/ppt.h => include/xhyve/xhyve.h (54%) rename {bhyve => include/xhyve}/xmsr.h (87%) delete mode 100644 libvmmapi/Makefile delete mode 100644 libvmmapi/vmmapi.c delete mode 100644 libvmmapi/vmmapi.h delete mode 100644 libvmmapi/vmmapi_freebsd.c rename {bhyve => src}/acpi.c (95%) rename {bhyve => src}/atkbdc.c (75%) rename {bhyve => src}/block_if.c (73%) rename {bhyve => src}/consport.c (82%) rename {bhyve => src}/dbgport.c (85%) create mode 100644 src/firmware/kexec.c rename {bhyve => src}/inout.c (71%) rename {bhyve => src}/ioapic.c (90%) create mode 100644 src/md5c.c rename {bhyve => src}/mem.c (85%) rename {bhyve => src}/mevent.c (91%) rename {bhyve => src}/mevent_test.c (93%) rename {bhyve => src}/mptbl.c (88%) rename {bhyve => src}/pci_ahci.c (84%) rename {bhyve => src}/pci_emul.c (84%) rename {bhyve => src}/pci_hostbridge.c (85%) rename {bhyve => src}/pci_irq.c (82%) rename {bhyve => src}/pci_lpc.c (84%) rename {bhyve => src}/pci_uart.c (81%) rename {bhyve => src}/pci_virtio_block.c (75%) rename {bhyve => src}/pci_virtio_net.c (82%) rename {bhyve => src}/pci_virtio_rnd.c (80%) create mode 100644 src/pci_virtio_vmnet.c rename {bhyve => src}/pm.c (80%) rename {bhyve => src}/post.c (86%) rename {bhyve => src}/rtc.c (73%) rename {bhyve => src}/smbiostbl.c (82%) rename {bhyve => src}/task_switch.c (66%) rename {bhyve => src}/uart_emul.c (95%) rename {bhyve => src}/virtio.c (91%) create mode 100644 src/vmm/intel/vmcs.c create mode 100644 src/vmm/intel/vmx.c create mode 100644 src/vmm/intel/vmx_msr.c rename {vmm => src/vmm}/io/vatpic.c (88%) rename {vmm => src/vmm}/io/vatpit.c (83%) rename {vmm => src/vmm}/io/vhpet.c (86%) rename {vmm => src/vmm}/io/vioapic.c (82%) rename {vmm => src/vmm}/io/vlapic.c (84%) rename {vmm => src/vmm}/io/vpmtmr.c (76%) rename {vmm => src/vmm}/io/vrtc.c (78%) rename {vmm => src/vmm}/vmm.c (56%) create mode 100644 src/vmm/vmm_api.c create mode 100644 src/vmm/vmm_callout.c create mode 100644 src/vmm/vmm_host.c rename {vmm => src/vmm}/vmm_instruction_emul.c (91%) rename {vmm => src/vmm}/vmm_ioport.c (84%) rename {vmm => src/vmm}/vmm_lapic.c (88%) rename bhyve/bhyverun.h => src/vmm/vmm_mem.c (63%) rename {vmm => src/vmm}/vmm_stat.c (90%) rename {vmm => src/vmm}/vmm_util.c (72%) rename {vmm => src/vmm}/x86.c (72%) create mode 100644 src/xhyve.c create mode 100644 src/xmsr.c create mode 100644 test/initrd.gz create mode 100644 test/tinycore.txt create mode 100644 test/vmlinuz delete mode 100644 vmm.h delete mode 100644 vmm/amd/amdv.c delete mode 100644 vmm/amd/npt.c delete mode 100644 vmm/amd/npt.h delete mode 100644 vmm/amd/svm.c delete mode 100644 vmm/amd/svm.h delete mode 100644 vmm/amd/svm_genassym.c delete mode 100644 vmm/amd/svm_msr.c delete mode 100644 vmm/amd/svm_msr.h delete mode 100644 vmm/amd/svm_softc.h delete mode 100644 vmm/amd/svm_support.S delete mode 100644 vmm/amd/vmcb.c delete mode 100644 vmm/amd/vmcb.h delete mode 100644 vmm/intel/ept.c delete mode 100644 vmm/intel/vmcs.c delete mode 100644 vmm/intel/vmx.c delete mode 100644 vmm/intel/vmx_controls.h delete mode 100644 vmm/intel/vmx_cpufunc.h delete mode 100644 vmm/intel/vmx_genassym.c delete mode 100644 vmm/intel/vmx_msr.c delete mode 100644 vmm/intel/vmx_msr.h delete mode 100644 vmm/intel/vmx_support.S delete mode 100644 vmm/intel/vtd.c delete mode 100644 vmm/io/iommu.c delete mode 100644 vmm/io/iommu.h delete mode 100644 vmm/io/ppt.c delete mode 100644 vmm/vmm_dev.c delete mode 100644 vmm/vmm_host.c delete mode 100644 vmm/vmm_host.h delete mode 100644 vmm/vmm_mem.c delete mode 100644 vmm_dev.h create mode 100644 xhyve_logo.png create mode 100755 xhyverun.sh diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..587b409 --- /dev/null +++ b/Makefile @@ -0,0 +1,103 @@ +ifeq ($V, 1) + VERBOSE = +else + VERBOSE = @ +endif + +include config.mk + +VMM_SRC := \ + src/vmm/x86.c \ + src/vmm/vmm.c \ + src/vmm/vmm_host.c \ + src/vmm/vmm_mem.c \ + src/vmm/vmm_lapic.c \ + src/vmm/vmm_instruction_emul.c \ + src/vmm/vmm_ioport.c \ + src/vmm/vmm_callout.c \ + src/vmm/vmm_stat.c \ + src/vmm/vmm_util.c \ + src/vmm/vmm_api.c \ + src/vmm/intel/vmx.c \ + src/vmm/intel/vmx_msr.c \ + src/vmm/intel/vmcs.c \ + src/vmm/io/vatpic.c \ + src/vmm/io/vatpit.c \ + src/vmm/io/vhpet.c \ + src/vmm/io/vioapic.c \ + src/vmm/io/vlapic.c \ + src/vmm/io/vpmtmr.c \ + src/vmm/io/vrtc.c + +XHYVE_SRC := \ + src/acpi.c \ + src/atkbdc.c \ + src/block_if.c \ + src/consport.c \ + src/dbgport.c \ + src/inout.c \ + src/ioapic.c \ + src/md5c.c \ + src/mem.c \ + src/mevent.c \ + src/mptbl.c \ + src/pci_ahci.c \ + src/pci_emul.c \ + src/pci_hostbridge.c \ + src/pci_irq.c \ + src/pci_lpc.c \ + src/pci_uart.c \ + src/pci_virtio_block.c \ + src/pci_virtio_vmnet.c \ + src/pci_virtio_rnd.c \ + src/pm.c \ + src/post.c \ + src/rtc.c \ + src/smbiostbl.c \ + src/task_switch.c \ + src/uart_emul.c \ + src/xhyve.c \ + src/virtio.c \ + src/xmsr.c + +FIRMWARE_SRC := \ + src/firmware/kexec.c + +SRC := \ + $(VMM_SRC) \ + $(XHYVE_SRC) \ + $(FIRMWARE_SRC) + +OBJ := $(SRC:src/%.c=build/%.o) +DEP := $(OBJ:%.o=%.d) +INC := -Iinclude + +TARGET = build/xhyve + +all: $(TARGET) | build + +.PHONY: clean all +.SUFFIXES: + +-include $(DEP) + +build: + @mkdir -p build + +build/%.o: src/%.c + @echo cc $< + @mkdir -p $(dir $@) + $(VERBOSE) $(ENV) $(CC) $(CFLAGS) $(INC) $(DEF) -MMD -MT $@ -MF build/$*.d -o $@ -c $< + +$(TARGET).sym: $(OBJ) + @echo ld $(notdir $@) + $(VERBOSE) $(ENV) $(LD) $(LDFLAGS) -Xlinker $(TARGET).lto.o -o $@ $(OBJ) + @echo dsym $(notdir $(TARGET).dSYM) + $(VERBOSE) $(ENV) $(DSYM) $@ -o $(TARGET).dSYM + +$(TARGET): $(TARGET).sym + @echo strip $(notdir $@) + $(VERBOSE) $(ENV) $(STRIP) $(TARGET).sym -o $@ + +clean: + @rm -rf build diff --git a/README.md b/README.md new file mode 100644 index 0000000..eb404e1 --- /dev/null +++ b/README.md @@ -0,0 +1,184 @@ +# xhyve + +![](./xhyve_logo.png) + + +About +----- + +The *xhyve hypervisor* is a port of [bhyve](http://www.bhyve.org) to OS X. It is built on top of Hypervisor.framework in OS X 10.10 Yosemite and higher, runs entirely in userspace, and has no other dependencies. It can run vanilla Linux distributions and may gain support for other guest operating systems in the future. + +License: BSD + +Introduction: [http://www.pagetable.com/?p=831](http://www.pagetable.com/?p=831) + +Requirements +------------ + +* OS X 10.10 Yosemite or later +* A 2010 or later Mac + +Building +-------- + + $ make + +The resulting binary will be in build/xhyve + +Usage +----- + + $ xhyve -h + + +What is bhyve? +-------------- + +bhyve is the FreeBSD hypervisor, roughly analogous to KVM + QEMU on Linux. It has a focus on simplicity and being legacy free. + +It exposes the following peripherals to virtual machines: + + - Local x(2)APIC + - IO-APIC + - 8259A PIC + - 8253/8254 PIT + - HPET + - PM Timer + - RTC + - PCI + - host bridge + - passthrough + - UART + - AHCI (i.e. HDD and CD) + - VirtIO block device + - VirtIO networking + - VirtIO RNG + +Notably absent are sound, USB, HID and any kind of graphics support. With a focus on server virtualization this is not strictly a requirement. bhyve may gain desktop virtualization capabilities in the future but this doesn't seem to be a priority. + +Unlike QEMU, byhve also currently lacks any kind of guest-side firmware (QEMU uses the GPL3 [SeaBIOS](http://www.seabios.org)), but aims to provide a compatible [OVMF EFI](http://www.linux-kvm.org/page/OVMF) in the near future. It does however provide ACPI, SMBIOS and MP Tables. + +bhyve architecture +------------------ + Linux + I/O VM control FreeBSD NetBSD + OpenBSD + | A | A | | + V | V | V V + +-------------++-------------++-------------++-------------+ + | || || || | + | bhyve || bhyvectl || bhyveload || grub2-bhyve | + | || || || | + | || || || | + +-------------++-------------++-------------++-------------+ + +----------------------------------------------------------+ + | libvmmapi | + +----------------------------------------------------------+ + A + | user + ------------------------------┼------------------------------ + | ioctl FreeBSD kernel + V + +----------------------------+ + | VMX/SVM host | + | VMX/SVM guest | + | VMX/SVM nested paging | + | Timers | + | Interrupts | + +----------------------------+ + vmm.ko + + +**vmm.ko** + +The bhyve FreeBSD kernel module. Manages VM and vCPU objects, the guest physical address space and handles guest interaction with PIC, PIT, HPET, PM Timer, x(2)APIC and I/O-APIC. Contains a minimal x86 emulator to decode guest MMIO. Executes the two innermost vCPU runloops (VMX/SVM and interrupts/timers/paging). Has backends for Intel VMX and AMD SVM. Provides an ioctl and mmap API to userspace. + +**libvmmapi** + +Thin abstraction layer between the vmm.ko ioctl interface and the userspace C API. + +**bhyve** + +The userspace bhyve component (kind of a very light-weight QEMU) that executes virtual machines. Runs the guest I/O vCPU runloops. Manages ACPI, PCI and all non in-kernel devices. Interacts with vmm.ko through libvmmapi. + +**bhyvectl** + +Somewhat superfluous utility to introspect and manage the life cycle of virtual machines. Virtual machines and vCPUs can exist as kernel objects independently of a bhyve host process. Typically used to delete VM objects after use. Odd architectural choice. + +**bhyveload** + +Userspace port of the FreeBSD bootloader. Since bhyve still lacks a firmware this is a cumbersome workaround to bootstrap a guest operating system. It creates a VM object, loads the FreeBSD kernel into guest memory, sets up the initial vCPU state and then exits. Only then a VM can be executed by bhyve. + +**grub2-bhyve** + +Performs the same function as bhyveload but is a userspace port of [GRUB2](http://github.com/grehan-freebsd/grub2-bhyve). It is used to bootstrap guest operating systems other than FreeBSD, i.e. Linux, OpenBSD and NetBSD. + +Support for Windows guests is work in progress and dependent on the EFI port. + + +xhyve architecture +------------------ + +----------------------------------------------------------+ + | xhyve | + | | + | I/O | + | | + | | + | | + |+--------------------------------------------------------+| + || vmm VMX guest || + || Timers || + || Interrupts || + |+--------------------------------------------------------+| + +----------------------------------------------------------+ + +----------------------------------------------------------+ + | Hypervisor.framework | + +----------------------------------------------------------+ + A + | user + ------------------------------┼------------------------------ + |syscall xnu kernel + V + + VMX host + VMX nested paging + + +xhyve shares most of the code with bhyve but is architecturally very different. Hypervisor.framework provides an interface to the VMX VMCS guest state and a safe subset of the VMCS control fields, thus making userspace hypervisors without any additional kernel extensions possible. The VMX host state and all aspects of nested paging are handled by the OS X kernel, you can manage the guest physical address space simply through mapping of regions of your own address space. + +*xhyve* is equivalent to the *bhyve* process but gains a subset of a userspace port of the vmm kernel module. SVM, PCI passthrough and the VMX host and EPT aspects are dropped. The vmm component provides a libvmmapi compatible interface to xhyve. Hypervisor.framework seems to enforce a strict 1:1 relationship between a host process/VM and host thread/vCPU, that means VMs and vCPUs can only be interacted with by the processes and threads that created them. Therefore, unlike bhyve, xhyve needs to adhere to a single process model. Multiple virtual machines can be created by launching multiple instances of xhyve. xhyve retains most of the bhyve command line interface. + +*bhyvectl*, *bhyveload* and *grub2-bhyve* are incompatible with a single process model and are dropped. As a stop-gap solution until we have a proper firmware xhyve supports the Linux [kexec protocol](http://www.kernel.org/doc/Documentation/x86/boot.txt), a very simple and straightforward way to bootstrap a Linux kernel. It takes a bzImage and optionally initrd image and kernel parameter string as input. + +TODO +---- + +- vmm: + - enable APIC access page to speed up APIC emulation + - enable x2APIC MSRs (even faster) + - vmm_callout: + - is a quick'n'dirty implementation of the FreeBSD kernel callout mechanism + - seems to be racy + - fix races or perhaps replace with something better + - use per vCPU timer event thread (performance)? + - some 32-bit guests are broken (support PAE paging in VMCS) + - PCID guest support (performance) +- block_if: + - OS X does not support preadv/pwritev, we need to serialize reads and writes for the time being until we find a better solution. + - support block devices other than plain files +- virtio_net: + - make it not require root + - unify TAP and vmnet backends + - performance: send/receive more than a single packet at a time +- ACPI tables don't work + - bhyve creates ASL on the fly and then calls out to an ASL compiler (iasl) on + every VM boot to create the DSDT: + - remove dependency on iasl by creating AML bytecode directly + - shouldn't be to hard since we we are only interested in a very small + subset of ASL +- virtio_rnd: + - is untested +- remove explicit state transitions: + - since only the owning task/thread can modify the VM/vCPUs a lot of the synchronization might be unnecessary +- performance, performance and performance +- remove vestigial code, cleanup diff --git a/bhyve/Makefile b/bhyve/Makefile deleted file mode 100644 index bb81bcb..0000000 --- a/bhyve/Makefile +++ /dev/null @@ -1,50 +0,0 @@ -# -# $FreeBSD$ -# - -PROG= bhyve - -DEBUG_FLAGS= -g -O0 - -MAN= bhyve.8 - -SRCS= \ - atkbdc.c \ - acpi.c \ - bhyverun.c \ - block_if.c \ - consport.c \ - dbgport.c \ - inout.c \ - ioapic.c \ - mem.c \ - mevent.c \ - mptbl.c \ - pci_ahci.c \ - pci_emul.c \ - pci_hostbridge.c \ - pci_irq.c \ - pci_lpc.c \ - pci_passthru.c \ - pci_virtio_block.c \ - pci_virtio_net.c \ - pci_virtio_rnd.c \ - pci_uart.c \ - pm.c \ - post.c \ - rtc.c \ - smbiostbl.c \ - task_switch.c \ - uart_emul.c \ - virtio.c \ - xmsr.c \ - spinup_ap.c - -.PATH: ${.CURDIR}/../../sys/amd64/vmm -SRCS+= vmm_instruction_emul.c - -LIBADD= vmmapi md pthread - -WARNS?= 2 - -.include diff --git a/bhyve/bhyve.8 b/bhyve/bhyve.8 deleted file mode 100644 index ee0f2ca..0000000 --- a/bhyve/bhyve.8 +++ /dev/null @@ -1,325 +0,0 @@ -.\" Copyright (c) 2013 Peter Grehan -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $FreeBSD$ -.\" -.Dd September 17, 2014 -.Dt BHYVE 8 -.Os -.Sh NAME -.Nm bhyve -.Nd "run a guest operating system inside a virtual machine" -.Sh SYNOPSIS -.Nm -.Op Fl abehuwxACHPWY -.Op Fl c Ar numcpus -.Op Fl g Ar gdbport -.Op Fl l Ar lpcdev Ns Op , Ns Ar conf -.Op Fl m Ar size Ns Op Ar K|k|M|m|G|g|T|t -.Op Fl p Ar vcpu:hostcpu -.Op Fl s Ar slot,emulation Ns Op , Ns Ar conf -.Op Fl U Ar uuid -.Ar vmname -.Sh DESCRIPTION -.Nm -is a hypervisor that runs guest operating systems inside a -virtual machine. -.Pp -Parameters such as the number of virtual CPUs, amount of guest memory, and -I/O connectivity can be specified with command-line parameters. -.Pp -The guest operating system must be loaded with -.Xr bhyveload 4 -or a similar boot loader before running -.Nm . -.Pp -.Nm -runs until the guest operating system reboots or an unhandled hypervisor -exit is detected. -.Sh OPTIONS -.Bl -tag -width 10n -.It Fl a -The guest's local APIC is configured in xAPIC mode. -The xAPIC mode is the default setting so this option is redundant. It will be -deprecated in a future version. -.It Fl A -Generate ACPI tables. -Required for -.Fx Ns /amd64 -guests. -.It Fl b -Enable a low-level console device supported by -.Fx -kernels compiled with -.Cd "device bvmconsole" . -This option will be deprecated in a future version. -.It Fl c Ar numcpus -Number of guest virtual CPUs. -The default is 1 and the maximum is 16. -.It Fl C -Include guest memory in core file. -.It Fl e -Force -.Nm -to exit when a guest issues an access to an I/O port that is not emulated. -This is intended for debug purposes. -.It Fl g Ar gdbport -For -.Fx -kernels compiled with -.Cd "device bvmdebug" , -allow a remote kernel kgdb to be relayed to the guest kernel gdb stub -via a local IPv4 address and this port. -This option will be deprecated in a future version. -.It Fl h -Print help message and exit. -.It Fl H -Yield the virtual CPU thread when a HLT instruction is detected. -If this option is not specified, virtual CPUs will use 100% of a host CPU. -.It Fl l Ar lpcdev Ns Op , Ns Ar conf -Allow devices behind the LPC PCI-ISA bridge to be configured. -The only supported devices are the TTY-class devices, -.Li com1 -and -.Li com2 . -.It Fl m Ar size Ns Op Ar K|k|M|m|G|g|T|t -Guest physical memory size in bytes. -This must be the same size that was given to -.Xr bhyveload 8 . -.Pp -The size argument may be suffixed with one of K, M, G or T (either upper -or lower case) to indicate a multiple of kilobytes, megabytes, gigabytes, -or terabytes. -If no suffix is given, the value is assumed to be in megabytes. -.It Fl p Ar vcpu:hostcpu -Pin guest's virtual CPU -.Em vcpu -to -.Em hostcpu . -.It Fl P -Force the guest virtual CPU to exit when a PAUSE instruction is detected. -.It Fl s Ar slot,emulation Ns Op , Ns Ar conf -Configure a virtual PCI slot and function. -.Pp -.Nm bhyve -provides PCI bus emulation and virtual devices that can be attached to -slots on the bus. -There are 32 available slots, with the option of providing up to 8 functions -per slot. -.Bl -tag -width 10n -.It Ar slot -.Ar pcislot[:function] -.Ar bus:pcislot:function -.Pp -The -.Ar pcislot -value is 0 to 31. The optional function value is 0 to 7. The optional -.Ar bus -value is 0 to 255. -If not specified, the function value defaults to 0. -If not specified, the bus value defaults to 0. -.It Ar emulation -.Bl -tag -width 10n -.It Li hostbridge | Li amd_hostbridge -.Pp -Provide a simple host bridge. -This is usually configured at slot 0, and is required by most guest -operating systems. -The -.Li amd_hostbridge -emulation is identical but uses a PCI vendor ID of -.Li AMD . -.It Li passthru -PCI pass-through device. -.It Li virtio-net -Virtio network interface. -.It Li virtio-blk -Virtio block storage interface. -.It Li virtio-rnd -Virtio RNG interface. -.It Li ahci-cd -AHCI controller attached to an ATAPI CD/DVD. -.It Li ahci-hd -AHCI controller attached to a SATA hard-drive. -.It Li uart -PCI 16550 serial device. -.It Li lpc -LPC PCI-ISA bridge with COM1 and COM2 16550 serial ports. The LPC bridge -emulation can only be configured on bus 0. -.El -.It Op Ar conf -This optional parameter describes the backend for device emulations. -If -.Ar conf -is not specified, the device emulation has no backend and can be -considered unconnected. -.Pp -Network devices: -.Bl -tag -width 10n -.It Ar tapN Ns Op , Ns Ar mac=xx:xx:xx:xx:xx:xx -.It Ar vmnetN Ns Op , Ns Ar mac=xx:xx:xx:xx:xx:xx -.Pp -If -.Ar mac -is not specified, the MAC address is derived from a fixed OUI and the -remaining bytes from an MD5 hash of the slot and function numbers and -the device name. -.Pp -The MAC address is an ASCII string in -.Xr ethers 5 -format. -.El -.Pp -Block storage devices: -.Bl -tag -width 10n -.It Pa /filename Ns Oo , Ns Ar block-device-options Oc -.It Pa /dev/xxx Ns Oo , Ns Ar block-device-options Oc -.El -.Pp -The -.Ar block-device-options -are: -.Bl -tag -width 8n -.It Li nocache -Open the file with -.Dv O_DIRECT . -.It Li direct -Open the file using -.Dv O_SYNC . -.It Li ro -Force the file to be opened read-only. -.It Li sectorsize= Ns Ar logical Ns Oo / Ns Ar physical Oc -Specify the logical and physical sector sizes of the emulated disk. -The physical sector size is optional and is equal to the logical sector size -if not explicitly specified. -.El -.Pp -TTY devices: -.Bl -tag -width 10n -.It Li stdio -Connect the serial port to the standard input and output of -the bhyve process. -.It Pa /dev/xxx -Use the host TTY device for serial port I/O. -.El -.Pp -Pass-through devices: -.Bl -tag -width 10n -.It Ns Ar slot Ns / Ns Ar bus Ns / Ns Ar function -Connect to a PCI device on the host at the selector described by -.Ar slot , -.Ar bus , -and -.Ar function -numbers. -.El -.Pp -The host device must have been reserved at boot-time using the -.Va pptdev -loader variable as described in -.Xr vmm 4 . -.El -.It Fl u -RTC keeps UTC time. -.It Fl U Ar uuid -Set the universally unique identifier -.Pq UUID -in the guest's System Management BIOS System Information structure. -By default a UUID is generated from the host's hostname and -.Ar vmname . -.It Fl w -Ignore accesses to unimplemented Model Specific Registers (MSRs). This is intended for debug purposes. -.It Fl W -Force virtio PCI device emulations to use MSI interrupts instead of MSI-X -interrupts. -.It Fl x -The guest's local APIC is configured in x2APIC mode. -.It Fl Y -Disable MPtable generation. -.It Ar vmname -Alphanumeric name of the guest. -This should be the same as that created by -.Xr bhyveload 8 . -.El -.Sh EXAMPLES -The guest operating system must have been loaded with -.Xr bhyveload 4 -or a similar boot loader before -.Xr bhyve 4 -can be run. -.Pp -To run a virtual machine with 1GB of memory, two virtual CPUs, a virtio -block device backed by the -.Pa /my/image -filesystem image, and a serial port for the console: -.Bd -literal -offset indent -bhyve -c 2 -s 0,hostbridge -s 1,lpc -s 2,virtio-blk,/my/image \\ - -l com1,stdio -A -H -P -m 1G vm1 -.Ed -.Pp -Run a 24GB single-CPU virtual machine with three network ports, one of which -has a MAC address specified: -.Bd -literal -offset indent -bhyve -s 0,hostbridge -s 1,lpc -s 2:0,virtio-net,tap0 \\ - -s 2:1,virtio-net,tap1 \\ - -s 2:2,virtio-net,tap2,mac=00:be:fa:76:45:00 \\ - -s 3,virtio-blk,/my/image -l com1,stdio \\ - -A -H -P -m 24G bigvm -.Ed -.Pp -Run an 8GB quad-CPU virtual machine with 8 AHCI SATA disks, an AHCI ATAPI -CD-ROM, a single virtio network port, an AMD hostbridge, and the console -port connected to an -.Xr nmdm 4 -null-model device. -.Bd -literal -offset indent -bhyve -c 4 \e\ - -s 0,amd_hostbridge -s 1,lpc \\ - -s 1:0,ahci-hd,/images/disk.1 \\ - -s 1:1,ahci-hd,/images/disk.2 \\ - -s 1:2,ahci-hd,/images/disk.3 \\ - -s 1:3,ahci-hd,/images/disk.4 \\ - -s 1:4,ahci-hd,/images/disk.5 \\ - -s 1:5,ahci-hd,/images/disk.6 \\ - -s 1:6,ahci-hd,/images/disk.7 \\ - -s 1:7,ahci-hd,/images/disk.8 \\ - -s 2,ahci-cd,/images.install.iso \\ - -s 3,virtio-net,tap0 \\ - -l com1,/dev/nmdm0A \\ - -A -H -P -m 8G -.Ed -.Sh SEE ALSO -.Xr bhyve 4 , -.Xr nmdm 4 , -.Xr vmm 4 , -.Xr ethers 5 , -.Xr bhyvectl 8 , -.Xr bhyveload 8 -.Sh HISTORY -.Nm -first appeared in -.Fx 10.0 . -.Sh AUTHORS -.An Neel Natu Aq Mt neel@freebsd.org -.An Peter Grehan Aq Mt grehan@freebsd.org diff --git a/bhyve/bhyverun.c b/bhyve/bhyverun.c deleted file mode 100644 index 47a7699..0000000 --- a/bhyve/bhyverun.c +++ /dev/null @@ -1,892 +0,0 @@ -/*- - * Copyright (c) 2011 NetApp, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY NETAPP, INC ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL NETAPP, INC OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD$ - */ - -#include -__FBSDID("$FreeBSD$"); - -#include -#include -#include - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include "bhyverun.h" -#include "acpi.h" -#include "inout.h" -#include "dbgport.h" -#include "ioapic.h" -#include "mem.h" -#include "mevent.h" -#include "mptbl.h" -#include "pci_emul.h" -#include "pci_irq.h" -#include "pci_lpc.h" -#include "smbiostbl.h" -#include "xmsr.h" -#include "spinup_ap.h" -#include "rtc.h" - -#define GUEST_NIO_PORT 0x488 /* guest upcalls via i/o port */ - -#define MB (1024UL * 1024) -#define GB (1024UL * MB) - -typedef int (*vmexit_handler_t)(struct vmctx *, struct vm_exit *, int *vcpu); -extern int vmexit_task_switch(struct vmctx *, struct vm_exit *, int *vcpu); - -char *vmname; - -int guest_ncpus; -char *guest_uuid_str; - -static int guest_vmexit_on_hlt, guest_vmexit_on_pause; -static int virtio_msix = 1; -static int x2apic_mode = 0; /* default is xAPIC */ - -static int strictio; -static int strictmsr = 1; - -static int acpi; - -static char *progname; -static const int BSP = 0; - -static cpuset_t cpumask; - -static void vm_loop(struct vmctx *ctx, int vcpu, uint64_t rip); - -static struct vm_exit vmexit[VM_MAXCPU]; - -struct bhyvestats { - uint64_t vmexit_bogus; - uint64_t vmexit_bogus_switch; - uint64_t vmexit_hlt; - uint64_t vmexit_pause; - uint64_t vmexit_mtrap; - uint64_t vmexit_inst_emul; - uint64_t cpu_switch_rotate; - uint64_t cpu_switch_direct; -} stats; - -struct mt_vmm_info { - pthread_t mt_thr; - struct vmctx *mt_ctx; - int mt_vcpu; -} mt_vmm_info[VM_MAXCPU]; - -static cpuset_t *vcpumap[VM_MAXCPU] = { NULL }; - -static void -usage(int code) -{ - - fprintf(stderr, - "Usage: %s [-abehuwxACHPWY] [-c vcpus] [-g ] [-l ]\n" - " %*s [-m mem] [-p vcpu:hostcpu] [-s ] [-U uuid] \n" - " -a: local apic is in xAPIC mode (deprecated)\n" - " -A: create ACPI tables\n" - " -c: # cpus (default 1)\n" - " -C: include guest memory in core file\n" - " -e: exit on unhandled I/O access\n" - " -g: gdb port\n" - " -h: help\n" - " -H: vmexit from the guest on hlt\n" - " -l: LPC device configuration\n" - " -m: memory size in MB\n" - " -p: pin 'vcpu' to 'hostcpu'\n" - " -P: vmexit from the guest on pause\n" - " -s: PCI slot config\n" - " -u: RTC keeps UTC time\n" - " -U: uuid\n" - " -w: ignore unimplemented MSRs\n" - " -W: force virtio to use single-vector MSI\n" - " -x: local apic is in x2APIC mode\n" - " -Y: disable MPtable generation\n", - progname, (int)strlen(progname), ""); - - exit(code); -} - -static int -pincpu_parse(const char *opt) -{ - int vcpu, pcpu; - - if (sscanf(opt, "%d:%d", &vcpu, &pcpu) != 2) { - fprintf(stderr, "invalid format: %s\n", opt); - return (-1); - } - - if (vcpu < 0 || vcpu >= VM_MAXCPU) { - fprintf(stderr, "vcpu '%d' outside valid range from 0 to %d\n", - vcpu, VM_MAXCPU - 1); - return (-1); - } - - if (pcpu < 0 || pcpu >= CPU_SETSIZE) { - fprintf(stderr, "hostcpu '%d' outside valid range from " - "0 to %d\n", pcpu, CPU_SETSIZE - 1); - return (-1); - } - - if (vcpumap[vcpu] == NULL) { - if ((vcpumap[vcpu] = malloc(sizeof(cpuset_t))) == NULL) { - perror("malloc"); - return (-1); - } - CPU_ZERO(vcpumap[vcpu]); - } - CPU_SET(pcpu, vcpumap[vcpu]); - return (0); -} - -void -vm_inject_fault(void *arg, int vcpu, int vector, int errcode_valid, - int errcode) -{ - struct vmctx *ctx; - int error, restart_instruction; - - ctx = arg; - restart_instruction = 1; - - error = vm_inject_exception(ctx, vcpu, vector, errcode_valid, errcode, - restart_instruction); - assert(error == 0); -} - -void * -paddr_guest2host(struct vmctx *ctx, uintptr_t gaddr, size_t len) -{ - - return (vm_map_gpa(ctx, gaddr, len)); -} - -int -fbsdrun_vmexit_on_pause(void) -{ - - return (guest_vmexit_on_pause); -} - -int -fbsdrun_vmexit_on_hlt(void) -{ - - return (guest_vmexit_on_hlt); -} - -int -fbsdrun_virtio_msix(void) -{ - - return (virtio_msix); -} - -static void * -fbsdrun_start_thread(void *param) -{ - char tname[MAXCOMLEN + 1]; - struct mt_vmm_info *mtp; - int vcpu; - - mtp = param; - vcpu = mtp->mt_vcpu; - - snprintf(tname, sizeof(tname), "vcpu %d", vcpu); - pthread_set_name_np(mtp->mt_thr, tname); - - vm_loop(mtp->mt_ctx, vcpu, vmexit[vcpu].rip); - - /* not reached */ - exit(1); - return (NULL); -} - -void -fbsdrun_addcpu(struct vmctx *ctx, int fromcpu, int newcpu, uint64_t rip) -{ - int error; - - assert(fromcpu == BSP); - - /* - * The 'newcpu' must be activated in the context of 'fromcpu'. If - * vm_activate_cpu() is delayed until newcpu's pthread starts running - * then vmm.ko is out-of-sync with bhyve and this can create a race - * with vm_suspend(). - */ - error = vm_activate_cpu(ctx, newcpu); - assert(error == 0); - - CPU_SET_ATOMIC(newcpu, &cpumask); - - /* - * Set up the vmexit struct to allow execution to start - * at the given RIP - */ - vmexit[newcpu].rip = rip; - vmexit[newcpu].inst_length = 0; - - mt_vmm_info[newcpu].mt_ctx = ctx; - mt_vmm_info[newcpu].mt_vcpu = newcpu; - - error = pthread_create(&mt_vmm_info[newcpu].mt_thr, NULL, - fbsdrun_start_thread, &mt_vmm_info[newcpu]); - assert(error == 0); -} - -static int -fbsdrun_deletecpu(struct vmctx *ctx, int vcpu) -{ - - if (!CPU_ISSET(vcpu, &cpumask)) { - fprintf(stderr, "Attempting to delete unknown cpu %d\n", vcpu); - exit(1); - } - - CPU_CLR_ATOMIC(vcpu, &cpumask); - return (CPU_EMPTY(&cpumask)); -} - -static int -vmexit_handle_notify(struct vmctx *ctx, struct vm_exit *vme, int *pvcpu, - uint32_t eax) -{ -#if BHYVE_DEBUG - /* - * put guest-driven debug here - */ -#endif - return (VMEXIT_CONTINUE); -} - -static int -vmexit_inout(struct vmctx *ctx, struct vm_exit *vme, int *pvcpu) -{ - int error; - int bytes, port, in, out, string; - int vcpu; - - vcpu = *pvcpu; - - port = vme->u.inout.port; - bytes = vme->u.inout.bytes; - string = vme->u.inout.string; - in = vme->u.inout.in; - out = !in; - - /* Extra-special case of host notifications */ - if (out && port == GUEST_NIO_PORT) { - error = vmexit_handle_notify(ctx, vme, pvcpu, vme->u.inout.eax); - return (error); - } - - error = emulate_inout(ctx, vcpu, vme, strictio); - if (error) { - fprintf(stderr, "Unhandled %s%c 0x%04x at 0x%lx\n", - in ? "in" : "out", - bytes == 1 ? 'b' : (bytes == 2 ? 'w' : 'l'), - port, vmexit->rip); - return (VMEXIT_ABORT); - } else { - return (VMEXIT_CONTINUE); - } -} - -static int -vmexit_rdmsr(struct vmctx *ctx, struct vm_exit *vme, int *pvcpu) -{ - uint64_t val; - uint32_t eax, edx; - int error; - - val = 0; - error = emulate_rdmsr(ctx, *pvcpu, vme->u.msr.code, &val); - if (error != 0) { - fprintf(stderr, "rdmsr to register %#x on vcpu %d\n", - vme->u.msr.code, *pvcpu); - if (strictmsr) { - vm_inject_gp(ctx, *pvcpu); - return (VMEXIT_CONTINUE); - } - } - - eax = val; - error = vm_set_register(ctx, *pvcpu, VM_REG_GUEST_RAX, eax); - assert(error == 0); - - edx = val >> 32; - error = vm_set_register(ctx, *pvcpu, VM_REG_GUEST_RDX, edx); - assert(error == 0); - - return (VMEXIT_CONTINUE); -} - -static int -vmexit_wrmsr(struct vmctx *ctx, struct vm_exit *vme, int *pvcpu) -{ - int error; - - error = emulate_wrmsr(ctx, *pvcpu, vme->u.msr.code, vme->u.msr.wval); - if (error != 0) { - fprintf(stderr, "wrmsr to register %#x(%#lx) on vcpu %d\n", - vme->u.msr.code, vme->u.msr.wval, *pvcpu); - if (strictmsr) { - vm_inject_gp(ctx, *pvcpu); - return (VMEXIT_CONTINUE); - } - } - return (VMEXIT_CONTINUE); -} - -static int -vmexit_spinup_ap(struct vmctx *ctx, struct vm_exit *vme, int *pvcpu) -{ - int newcpu; - int retval = VMEXIT_CONTINUE; - - newcpu = spinup_ap(ctx, *pvcpu, - vme->u.spinup_ap.vcpu, vme->u.spinup_ap.rip); - - return (retval); -} - -#define DEBUG_EPT_MISCONFIG -#ifdef DEBUG_EPT_MISCONFIG -#define EXIT_REASON_EPT_MISCONFIG 49 -#define VMCS_GUEST_PHYSICAL_ADDRESS 0x00002400 -#define VMCS_IDENT(x) ((x) | 0x80000000) - -static uint64_t ept_misconfig_gpa, ept_misconfig_pte[4]; -static int ept_misconfig_ptenum; -#endif - -static int -vmexit_vmx(struct vmctx *ctx, struct vm_exit *vmexit, int *pvcpu) -{ - - fprintf(stderr, "vm exit[%d]\n", *pvcpu); - fprintf(stderr, "\treason\t\tVMX\n"); - fprintf(stderr, "\trip\t\t0x%016lx\n", vmexit->rip); - fprintf(stderr, "\tinst_length\t%d\n", vmexit->inst_length); - fprintf(stderr, "\tstatus\t\t%d\n", vmexit->u.vmx.status); - fprintf(stderr, "\texit_reason\t%u\n", vmexit->u.vmx.exit_reason); - fprintf(stderr, "\tqualification\t0x%016lx\n", - vmexit->u.vmx.exit_qualification); - fprintf(stderr, "\tinst_type\t\t%d\n", vmexit->u.vmx.inst_type); - fprintf(stderr, "\tinst_error\t\t%d\n", vmexit->u.vmx.inst_error); -#ifdef DEBUG_EPT_MISCONFIG - if (vmexit->u.vmx.exit_reason == EXIT_REASON_EPT_MISCONFIG) { - vm_get_register(ctx, *pvcpu, - VMCS_IDENT(VMCS_GUEST_PHYSICAL_ADDRESS), - &ept_misconfig_gpa); - vm_get_gpa_pmap(ctx, ept_misconfig_gpa, ept_misconfig_pte, - &ept_misconfig_ptenum); - fprintf(stderr, "\tEPT misconfiguration:\n"); - fprintf(stderr, "\t\tGPA: %#lx\n", ept_misconfig_gpa); - fprintf(stderr, "\t\tPTE(%d): %#lx %#lx %#lx %#lx\n", - ept_misconfig_ptenum, ept_misconfig_pte[0], - ept_misconfig_pte[1], ept_misconfig_pte[2], - ept_misconfig_pte[3]); - } -#endif /* DEBUG_EPT_MISCONFIG */ - return (VMEXIT_ABORT); -} - -static int -vmexit_svm(struct vmctx *ctx, struct vm_exit *vmexit, int *pvcpu) -{ - - fprintf(stderr, "vm exit[%d]\n", *pvcpu); - fprintf(stderr, "\treason\t\tSVM\n"); - fprintf(stderr, "\trip\t\t0x%016lx\n", vmexit->rip); - fprintf(stderr, "\tinst_length\t%d\n", vmexit->inst_length); - fprintf(stderr, "\texitcode\t%#lx\n", vmexit->u.svm.exitcode); - fprintf(stderr, "\texitinfo1\t%#lx\n", vmexit->u.svm.exitinfo1); - fprintf(stderr, "\texitinfo2\t%#lx\n", vmexit->u.svm.exitinfo2); - return (VMEXIT_ABORT); -} - -static int -vmexit_bogus(struct vmctx *ctx, struct vm_exit *vmexit, int *pvcpu) -{ - - assert(vmexit->inst_length == 0); - - stats.vmexit_bogus++; - - return (VMEXIT_CONTINUE); -} - -static int -vmexit_hlt(struct vmctx *ctx, struct vm_exit *vmexit, int *pvcpu) -{ - - stats.vmexit_hlt++; - - /* - * Just continue execution with the next instruction. We use - * the HLT VM exit as a way to be friendly with the host - * scheduler. - */ - return (VMEXIT_CONTINUE); -} - -static int -vmexit_pause(struct vmctx *ctx, struct vm_exit *vmexit, int *pvcpu) -{ - - stats.vmexit_pause++; - - return (VMEXIT_CONTINUE); -} - -static int -vmexit_mtrap(struct vmctx *ctx, struct vm_exit *vmexit, int *pvcpu) -{ - - assert(vmexit->inst_length == 0); - - stats.vmexit_mtrap++; - - return (VMEXIT_CONTINUE); -} - -static int -vmexit_inst_emul(struct vmctx *ctx, struct vm_exit *vmexit, int *pvcpu) -{ - int err, i; - struct vie *vie; - - stats.vmexit_inst_emul++; - - vie = &vmexit->u.inst_emul.vie; - err = emulate_mem(ctx, *pvcpu, vmexit->u.inst_emul.gpa, - vie, &vmexit->u.inst_emul.paging); - - if (err) { - if (err == ESRCH) { - fprintf(stderr, "Unhandled memory access to 0x%lx\n", - vmexit->u.inst_emul.gpa); - } - - fprintf(stderr, "Failed to emulate instruction ["); - for (i = 0; i < vie->num_valid; i++) { - fprintf(stderr, "0x%02x%s", vie->inst[i], - i != (vie->num_valid - 1) ? " " : ""); - } - fprintf(stderr, "] at 0x%lx\n", vmexit->rip); - return (VMEXIT_ABORT); - } - - return (VMEXIT_CONTINUE); -} - -static pthread_mutex_t resetcpu_mtx = PTHREAD_MUTEX_INITIALIZER; -static pthread_cond_t resetcpu_cond = PTHREAD_COND_INITIALIZER; - -static int -vmexit_suspend(struct vmctx *ctx, struct vm_exit *vmexit, int *pvcpu) -{ - enum vm_suspend_how how; - - how = vmexit->u.suspended.how; - - fbsdrun_deletecpu(ctx, *pvcpu); - - if (*pvcpu != BSP) { - pthread_mutex_lock(&resetcpu_mtx); - pthread_cond_signal(&resetcpu_cond); - pthread_mutex_unlock(&resetcpu_mtx); - pthread_exit(NULL); - } - - pthread_mutex_lock(&resetcpu_mtx); - while (!CPU_EMPTY(&cpumask)) { - pthread_cond_wait(&resetcpu_cond, &resetcpu_mtx); - } - pthread_mutex_unlock(&resetcpu_mtx); - - switch (how) { - case VM_SUSPEND_RESET: - exit(0); - case VM_SUSPEND_POWEROFF: - exit(1); - case VM_SUSPEND_HALT: - exit(2); - case VM_SUSPEND_TRIPLEFAULT: - exit(3); - default: - fprintf(stderr, "vmexit_suspend: invalid reason %d\n", how); - exit(100); - } - return (0); /* NOTREACHED */ -} - -static vmexit_handler_t handler[VM_EXITCODE_MAX] = { - [VM_EXITCODE_INOUT] = vmexit_inout, - [VM_EXITCODE_INOUT_STR] = vmexit_inout, - [VM_EXITCODE_VMX] = vmexit_vmx, - [VM_EXITCODE_SVM] = vmexit_svm, - [VM_EXITCODE_BOGUS] = vmexit_bogus, - [VM_EXITCODE_RDMSR] = vmexit_rdmsr, - [VM_EXITCODE_WRMSR] = vmexit_wrmsr, - [VM_EXITCODE_MTRAP] = vmexit_mtrap, - [VM_EXITCODE_INST_EMUL] = vmexit_inst_emul, - [VM_EXITCODE_SPINUP_AP] = vmexit_spinup_ap, - [VM_EXITCODE_SUSPENDED] = vmexit_suspend, - [VM_EXITCODE_TASK_SWITCH] = vmexit_task_switch, -}; - -static void -vm_loop(struct vmctx *ctx, int vcpu, uint64_t startrip) -{ - int error, rc, prevcpu; - enum vm_exitcode exitcode; - cpuset_t active_cpus; - - if (vcpumap[vcpu] != NULL) { - error = pthread_setaffinity_np(pthread_self(), - sizeof(cpuset_t), vcpumap[vcpu]); - assert(error == 0); - } - - error = vm_active_cpus(ctx, &active_cpus); - assert(CPU_ISSET(vcpu, &active_cpus)); - - error = vm_set_register(ctx, vcpu, VM_REG_GUEST_RIP, startrip); - assert(error == 0); - - while (1) { - error = vm_run(ctx, vcpu, &vmexit[vcpu]); - if (error != 0) - break; - - prevcpu = vcpu; - - exitcode = vmexit[vcpu].exitcode; - if (exitcode >= VM_EXITCODE_MAX || handler[exitcode] == NULL) { - fprintf(stderr, "vm_loop: unexpected exitcode 0x%x\n", - exitcode); - exit(1); - } - - rc = (*handler[exitcode])(ctx, &vmexit[vcpu], &vcpu); - - switch (rc) { - case VMEXIT_CONTINUE: - break; - case VMEXIT_ABORT: - abort(); - default: - exit(1); - } - } - fprintf(stderr, "vm_run error %d, errno %d\n", error, errno); -} - -static int -num_vcpus_allowed(struct vmctx *ctx) -{ - int tmp, error; - - error = vm_get_capability(ctx, BSP, VM_CAP_UNRESTRICTED_GUEST, &tmp); - - /* - * The guest is allowed to spinup more than one processor only if the - * UNRESTRICTED_GUEST capability is available. - */ - if (error == 0) - return (VM_MAXCPU); - else - return (1); -} - -void -fbsdrun_set_capabilities(struct vmctx *ctx, int cpu) -{ - int err, tmp; - - if (fbsdrun_vmexit_on_hlt()) { - err = vm_get_capability(ctx, cpu, VM_CAP_HALT_EXIT, &tmp); - if (err < 0) { - fprintf(stderr, "VM exit on HLT not supported\n"); - exit(1); - } - vm_set_capability(ctx, cpu, VM_CAP_HALT_EXIT, 1); - if (cpu == BSP) - handler[VM_EXITCODE_HLT] = vmexit_hlt; - } - - if (fbsdrun_vmexit_on_pause()) { - /* - * pause exit support required for this mode - */ - err = vm_get_capability(ctx, cpu, VM_CAP_PAUSE_EXIT, &tmp); - if (err < 0) { - fprintf(stderr, - "SMP mux requested, no pause support\n"); - exit(1); - } - vm_set_capability(ctx, cpu, VM_CAP_PAUSE_EXIT, 1); - if (cpu == BSP) - handler[VM_EXITCODE_PAUSE] = vmexit_pause; - } - - if (x2apic_mode) - err = vm_set_x2apic_state(ctx, cpu, X2APIC_ENABLED); - else - err = vm_set_x2apic_state(ctx, cpu, X2APIC_DISABLED); - - if (err) { - fprintf(stderr, "Unable to set x2apic state (%d)\n", err); - exit(1); - } - - vm_set_capability(ctx, cpu, VM_CAP_ENABLE_INVPCID, 1); -} - -int -main(int argc, char *argv[]) -{ - int c, error, gdb_port, err, bvmcons; - int dump_guest_memory, max_vcpus, mptgen; - int rtc_localtime; - struct vmctx *ctx; - uint64_t rip; - size_t memsize; - - bvmcons = 0; - dump_guest_memory = 0; - progname = basename(argv[0]); - gdb_port = 0; - guest_ncpus = 1; - memsize = 256 * MB; - mptgen = 1; - rtc_localtime = 1; - - while ((c = getopt(argc, argv, "abehuwxACHIPWYp:g:c:s:m:l:U:")) != -1) { - switch (c) { - case 'a': - x2apic_mode = 0; - break; - case 'A': - acpi = 1; - break; - case 'b': - bvmcons = 1; - break; - case 'p': - if (pincpu_parse(optarg) != 0) { - errx(EX_USAGE, "invalid vcpu pinning " - "configuration '%s'", optarg); - } - break; - case 'c': - guest_ncpus = atoi(optarg); - break; - case 'C': - dump_guest_memory = 1; - break; - case 'g': - gdb_port = atoi(optarg); - break; - case 'l': - if (lpc_device_parse(optarg) != 0) { - errx(EX_USAGE, "invalid lpc device " - "configuration '%s'", optarg); - } - break; - case 's': - if (pci_parse_slot(optarg) != 0) - exit(1); - else - break; - case 'm': - error = vm_parse_memsize(optarg, &memsize); - if (error) - errx(EX_USAGE, "invalid memsize '%s'", optarg); - break; - case 'H': - guest_vmexit_on_hlt = 1; - break; - case 'I': - /* - * The "-I" option was used to add an ioapic to the - * virtual machine. - * - * An ioapic is now provided unconditionally for each - * virtual machine and this option is now deprecated. - */ - break; - case 'P': - guest_vmexit_on_pause = 1; - break; - case 'e': - strictio = 1; - break; - case 'u': - rtc_localtime = 0; - break; - case 'U': - guest_uuid_str = optarg; - break; - case 'w': - strictmsr = 0; - break; - case 'W': - virtio_msix = 0; - break; - case 'x': - x2apic_mode = 1; - break; - case 'Y': - mptgen = 0; - break; - case 'h': - usage(0); - default: - usage(1); - } - } - argc -= optind; - argv += optind; - - if (argc != 1) - usage(1); - - vmname = argv[0]; - - ctx = vm_open(vmname); - if (ctx == NULL) { - perror("vm_open"); - exit(1); - } - - if (guest_ncpus < 1) { - fprintf(stderr, "Invalid guest vCPUs (%d)\n", guest_ncpus); - exit(1); - } - - max_vcpus = num_vcpus_allowed(ctx); - if (guest_ncpus > max_vcpus) { - fprintf(stderr, "%d vCPUs requested but only %d available\n", - guest_ncpus, max_vcpus); - exit(1); - } - - fbsdrun_set_capabilities(ctx, BSP); - - if (dump_guest_memory) - vm_set_memflags(ctx, VM_MEM_F_INCORE); - err = vm_setup_memory(ctx, memsize, VM_MMAP_ALL); - if (err) { - fprintf(stderr, "Unable to setup memory (%d)\n", err); - exit(1); - } - - error = init_msr(); - if (error) { - fprintf(stderr, "init_msr error %d", error); - exit(1); - } - - init_mem(); - init_inout(); - pci_irq_init(ctx); - ioapic_init(ctx); - - rtc_init(ctx, rtc_localtime); - sci_init(ctx); - - /* - * Exit if a device emulation finds an error in it's initilization - */ - if (init_pci(ctx) != 0) - exit(1); - - if (gdb_port != 0) - init_dbgport(gdb_port); - - if (bvmcons) - init_bvmcons(); - - error = vm_get_register(ctx, BSP, VM_REG_GUEST_RIP, &rip); - assert(error == 0); - - /* - * build the guest tables, MP etc. - */ - if (mptgen) { - error = mptable_build(ctx, guest_ncpus); - if (error) - exit(1); - } - - error = smbios_build(ctx); - assert(error == 0); - - if (acpi) { - error = acpi_build(ctx, guest_ncpus); - assert(error == 0); - } - - /* - * Change the proc title to include the VM name. - */ - setproctitle("%s", vmname); - - /* - * Add CPU 0 - */ - fbsdrun_addcpu(ctx, BSP, BSP, rip); - - /* - * Head off to the main event dispatch loop - */ - mevent_dispatch(); - - exit(1); -} diff --git a/bhyve/pci_emul.h b/bhyve/pci_emul.h deleted file mode 100644 index 6b8c4e0..0000000 --- a/bhyve/pci_emul.h +++ /dev/null @@ -1,283 +0,0 @@ -/*- - * Copyright (c) 2011 NetApp, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY NETAPP, INC ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL NETAPP, INC OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD$ - */ - -#ifndef _PCI_EMUL_H_ -#define _PCI_EMUL_H_ - -#include -#include -#include -#include - -#include - -#include - -#define PCI_BARMAX PCIR_MAX_BAR_0 /* BAR registers in a Type 0 header */ - -struct vmctx; -struct pci_devinst; -struct memory_region; - -struct pci_devemu { - char *pe_emu; /* Name of device emulation */ - - /* instance creation */ - int (*pe_init)(struct vmctx *, struct pci_devinst *, - char *opts); - - /* ACPI DSDT enumeration */ - void (*pe_write_dsdt)(struct pci_devinst *); - - /* config space read/write callbacks */ - int (*pe_cfgwrite)(struct vmctx *ctx, int vcpu, - struct pci_devinst *pi, int offset, - int bytes, uint32_t val); - int (*pe_cfgread)(struct vmctx *ctx, int vcpu, - struct pci_devinst *pi, int offset, - int bytes, uint32_t *retval); - - /* BAR read/write callbacks */ - void (*pe_barwrite)(struct vmctx *ctx, int vcpu, - struct pci_devinst *pi, int baridx, - uint64_t offset, int size, uint64_t value); - uint64_t (*pe_barread)(struct vmctx *ctx, int vcpu, - struct pci_devinst *pi, int baridx, - uint64_t offset, int size); -}; -#define PCI_EMUL_SET(x) DATA_SET(pci_devemu_set, x); - -enum pcibar_type { - PCIBAR_NONE, - PCIBAR_IO, - PCIBAR_MEM32, - PCIBAR_MEM64, - PCIBAR_MEMHI64 -}; - -struct pcibar { - enum pcibar_type type; /* io or memory */ - uint64_t size; - uint64_t addr; -}; - -#define PI_NAMESZ 40 - -struct msix_table_entry { - uint64_t addr; - uint32_t msg_data; - uint32_t vector_control; -} __packed; - -/* - * In case the structure is modified to hold extra information, use a define - * for the size that should be emulated. - */ -#define MSIX_TABLE_ENTRY_SIZE 16 -#define MAX_MSIX_TABLE_ENTRIES 2048 -#define PBA_SIZE(msgnum) (roundup2((msgnum), 64) / 8) - -enum lintr_stat { - IDLE, - ASSERTED, - PENDING -}; - -struct pci_devinst { - struct pci_devemu *pi_d; - struct vmctx *pi_vmctx; - uint8_t pi_bus, pi_slot, pi_func; - char pi_name[PI_NAMESZ]; - int pi_bar_getsize; - int pi_prevcap; - int pi_capend; - - struct { - int8_t pin; - enum lintr_stat state; - int pirq_pin; - int ioapic_irq; - pthread_mutex_t lock; - } pi_lintr; - - struct { - int enabled; - uint64_t addr; - uint64_t msg_data; - int maxmsgnum; - } pi_msi; - - struct { - int enabled; - int table_bar; - int pba_bar; - uint32_t table_offset; - int table_count; - uint32_t pba_offset; - int pba_size; - int function_mask; - struct msix_table_entry *table; /* allocated at runtime */ - } pi_msix; - - void *pi_arg; /* devemu-private data */ - - u_char pi_cfgdata[PCI_REGMAX + 1]; - struct pcibar pi_bar[PCI_BARMAX + 1]; -}; - -struct msicap { - uint8_t capid; - uint8_t nextptr; - uint16_t msgctrl; - uint32_t addrlo; - uint32_t addrhi; - uint16_t msgdata; -} __packed; - -struct msixcap { - uint8_t capid; - uint8_t nextptr; - uint16_t msgctrl; - uint32_t table_info; /* bar index and offset within it */ - uint32_t pba_info; /* bar index and offset within it */ -} __packed; - -struct pciecap { - uint8_t capid; - uint8_t nextptr; - uint16_t pcie_capabilities; - - uint32_t dev_capabilities; /* all devices */ - uint16_t dev_control; - uint16_t dev_status; - - uint32_t link_capabilities; /* devices with links */ - uint16_t link_control; - uint16_t link_status; - - uint32_t slot_capabilities; /* ports with slots */ - uint16_t slot_control; - uint16_t slot_status; - - uint16_t root_control; /* root ports */ - uint16_t root_capabilities; - uint32_t root_status; - - uint32_t dev_capabilities2; /* all devices */ - uint16_t dev_control2; - uint16_t dev_status2; - - uint32_t link_capabilities2; /* devices with links */ - uint16_t link_control2; - uint16_t link_status2; - - uint32_t slot_capabilities2; /* ports with slots */ - uint16_t slot_control2; - uint16_t slot_status2; -} __packed; - -typedef void (*pci_lintr_cb)(int b, int s, int pin, int pirq_pin, - int ioapic_irq, void *arg); - -int init_pci(struct vmctx *ctx); -void msicap_cfgwrite(struct pci_devinst *pi, int capoff, int offset, - int bytes, uint32_t val); -void msixcap_cfgwrite(struct pci_devinst *pi, int capoff, int offset, - int bytes, uint32_t val); -void pci_callback(void); -int pci_emul_alloc_bar(struct pci_devinst *pdi, int idx, - enum pcibar_type type, uint64_t size); -int pci_emul_alloc_pbar(struct pci_devinst *pdi, int idx, - uint64_t hostbase, enum pcibar_type type, uint64_t size); -int pci_emul_add_msicap(struct pci_devinst *pi, int msgnum); -int pci_emul_add_pciecap(struct pci_devinst *pi, int pcie_device_type); -void pci_generate_msi(struct pci_devinst *pi, int msgnum); -void pci_generate_msix(struct pci_devinst *pi, int msgnum); -void pci_lintr_assert(struct pci_devinst *pi); -void pci_lintr_deassert(struct pci_devinst *pi); -void pci_lintr_request(struct pci_devinst *pi); -int pci_msi_enabled(struct pci_devinst *pi); -int pci_msix_enabled(struct pci_devinst *pi); -int pci_msix_table_bar(struct pci_devinst *pi); -int pci_msix_pba_bar(struct pci_devinst *pi); -int pci_msi_msgnum(struct pci_devinst *pi); -int pci_parse_slot(char *opt); -void pci_populate_msicap(struct msicap *cap, int msgs, int nextptr); -int pci_emul_add_msixcap(struct pci_devinst *pi, int msgnum, int barnum); -int pci_emul_msix_twrite(struct pci_devinst *pi, uint64_t offset, int size, - uint64_t value); -uint64_t pci_emul_msix_tread(struct pci_devinst *pi, uint64_t offset, int size); -int pci_count_lintr(int bus); -void pci_walk_lintr(int bus, pci_lintr_cb cb, void *arg); -void pci_write_dsdt(void); -uint64_t pci_ecfg_base(void); -int pci_bus_configured(int bus); - -static __inline void -pci_set_cfgdata8(struct pci_devinst *pi, int offset, uint8_t val) -{ - assert(offset <= PCI_REGMAX); - *(uint8_t *)(pi->pi_cfgdata + offset) = val; -} - -static __inline void -pci_set_cfgdata16(struct pci_devinst *pi, int offset, uint16_t val) -{ - assert(offset <= (PCI_REGMAX - 1) && (offset & 1) == 0); - *(uint16_t *)(pi->pi_cfgdata + offset) = val; -} - -static __inline void -pci_set_cfgdata32(struct pci_devinst *pi, int offset, uint32_t val) -{ - assert(offset <= (PCI_REGMAX - 3) && (offset & 3) == 0); - *(uint32_t *)(pi->pi_cfgdata + offset) = val; -} - -static __inline uint8_t -pci_get_cfgdata8(struct pci_devinst *pi, int offset) -{ - assert(offset <= PCI_REGMAX); - return (*(uint8_t *)(pi->pi_cfgdata + offset)); -} - -static __inline uint16_t -pci_get_cfgdata16(struct pci_devinst *pi, int offset) -{ - assert(offset <= (PCI_REGMAX - 1) && (offset & 1) == 0); - return (*(uint16_t *)(pi->pi_cfgdata + offset)); -} - -static __inline uint32_t -pci_get_cfgdata32(struct pci_devinst *pi, int offset) -{ - assert(offset <= (PCI_REGMAX - 3) && (offset & 3) == 0); - return (*(uint32_t *)(pi->pi_cfgdata + offset)); -} - -#endif /* _PCI_EMUL_H_ */ diff --git a/bhyve/pci_passthru.c b/bhyve/pci_passthru.c deleted file mode 100644 index 04d68c4..0000000 --- a/bhyve/pci_passthru.c +++ /dev/null @@ -1,790 +0,0 @@ -/*- - * Copyright (c) 2011 NetApp, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY NETAPP, INC ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL NETAPP, INC OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD$ - */ - -#include -__FBSDID("$FreeBSD$"); - -#include -#include -#include -#include - -#include -#include - -#include - -#include -#include -#include -#include -#include -#include - -#include -#include -#include "pci_emul.h" -#include "mem.h" - -#ifndef _PATH_DEVPCI -#define _PATH_DEVPCI "/dev/pci" -#endif - -#ifndef _PATH_DEVIO -#define _PATH_DEVIO "/dev/io" -#endif - -#define LEGACY_SUPPORT 1 - -#define MSIX_TABLE_COUNT(ctrl) (((ctrl) & PCIM_MSIXCTRL_TABLE_SIZE) + 1) -#define MSIX_CAPLEN 12 - -static int pcifd = -1; -static int iofd = -1; - -struct passthru_softc { - struct pci_devinst *psc_pi; - struct pcibar psc_bar[PCI_BARMAX + 1]; - struct { - int capoff; - int msgctrl; - int emulated; - } psc_msi; - struct { - int capoff; - } psc_msix; - struct pcisel psc_sel; -}; - -static int -msi_caplen(int msgctrl) -{ - int len; - - len = 10; /* minimum length of msi capability */ - - if (msgctrl & PCIM_MSICTRL_64BIT) - len += 4; - -#if 0 - /* - * Ignore the 'mask' and 'pending' bits in the MSI capability. - * We'll let the guest manipulate them directly. - */ - if (msgctrl & PCIM_MSICTRL_VECTOR) - len += 10; -#endif - - return (len); -} - -static uint32_t -read_config(const struct pcisel *sel, long reg, int width) -{ - struct pci_io pi; - - bzero(&pi, sizeof(pi)); - pi.pi_sel = *sel; - pi.pi_reg = reg; - pi.pi_width = width; - - if (ioctl(pcifd, PCIOCREAD, &pi) < 0) - return (0); /* XXX */ - else - return (pi.pi_data); -} - -static void -write_config(const struct pcisel *sel, long reg, int width, uint32_t data) -{ - struct pci_io pi; - - bzero(&pi, sizeof(pi)); - pi.pi_sel = *sel; - pi.pi_reg = reg; - pi.pi_width = width; - pi.pi_data = data; - - (void)ioctl(pcifd, PCIOCWRITE, &pi); /* XXX */ -} - -#ifdef LEGACY_SUPPORT -static int -passthru_add_msicap(struct pci_devinst *pi, int msgnum, int nextptr) -{ - int capoff, i; - struct msicap msicap; - u_char *capdata; - - pci_populate_msicap(&msicap, msgnum, nextptr); - - /* - * XXX - * Copy the msi capability structure in the last 16 bytes of the - * config space. This is wrong because it could shadow something - * useful to the device. - */ - capoff = 256 - roundup(sizeof(msicap), 4); - capdata = (u_char *)&msicap; - for (i = 0; i < sizeof(msicap); i++) - pci_set_cfgdata8(pi, capoff + i, capdata[i]); - - return (capoff); -} -#endif /* LEGACY_SUPPORT */ - -static int -cfginitmsi(struct passthru_softc *sc) -{ - int i, ptr, capptr, cap, sts, caplen, table_size; - uint32_t u32; - struct pcisel sel; - struct pci_devinst *pi; - struct msixcap msixcap; - uint32_t *msixcap_ptr; - - pi = sc->psc_pi; - sel = sc->psc_sel; - - /* - * Parse the capabilities and cache the location of the MSI - * and MSI-X capabilities. - */ - sts = read_config(&sel, PCIR_STATUS, 2); - if (sts & PCIM_STATUS_CAPPRESENT) { - ptr = read_config(&sel, PCIR_CAP_PTR, 1); - while (ptr != 0 && ptr != 0xff) { - cap = read_config(&sel, ptr + PCICAP_ID, 1); - if (cap == PCIY_MSI) { - /* - * Copy the MSI capability into the config - * space of the emulated pci device - */ - sc->psc_msi.capoff = ptr; - sc->psc_msi.msgctrl = read_config(&sel, - ptr + 2, 2); - sc->psc_msi.emulated = 0; - caplen = msi_caplen(sc->psc_msi.msgctrl); - capptr = ptr; - while (caplen > 0) { - u32 = read_config(&sel, capptr, 4); - pci_set_cfgdata32(pi, capptr, u32); - caplen -= 4; - capptr += 4; - } - } else if (cap == PCIY_MSIX) { - /* - * Copy the MSI-X capability - */ - sc->psc_msix.capoff = ptr; - caplen = 12; - msixcap_ptr = (uint32_t*) &msixcap; - capptr = ptr; - while (caplen > 0) { - u32 = read_config(&sel, capptr, 4); - *msixcap_ptr = u32; - pci_set_cfgdata32(pi, capptr, u32); - caplen -= 4; - capptr += 4; - msixcap_ptr++; - } - } - ptr = read_config(&sel, ptr + PCICAP_NEXTPTR, 1); - } - } - - if (sc->psc_msix.capoff != 0) { - pi->pi_msix.pba_bar = - msixcap.pba_info & PCIM_MSIX_BIR_MASK; - pi->pi_msix.pba_offset = - msixcap.pba_info & ~PCIM_MSIX_BIR_MASK; - pi->pi_msix.table_bar = - msixcap.table_info & PCIM_MSIX_BIR_MASK; - pi->pi_msix.table_offset = - msixcap.table_info & ~PCIM_MSIX_BIR_MASK; - pi->pi_msix.table_count = MSIX_TABLE_COUNT(msixcap.msgctrl); - pi->pi_msix.pba_size = PBA_SIZE(pi->pi_msix.table_count); - - /* Allocate the emulated MSI-X table array */ - table_size = pi->pi_msix.table_count * MSIX_TABLE_ENTRY_SIZE; - pi->pi_msix.table = calloc(1, table_size); - - /* Mask all table entries */ - for (i = 0; i < pi->pi_msix.table_count; i++) { - pi->pi_msix.table[i].vector_control |= - PCIM_MSIX_VCTRL_MASK; - } - } - -#ifdef LEGACY_SUPPORT - /* - * If the passthrough device does not support MSI then craft a - * MSI capability for it. We link the new MSI capability at the - * head of the list of capabilities. - */ - if ((sts & PCIM_STATUS_CAPPRESENT) != 0 && sc->psc_msi.capoff == 0) { - int origptr, msiptr; - origptr = read_config(&sel, PCIR_CAP_PTR, 1); - msiptr = passthru_add_msicap(pi, 1, origptr); - sc->psc_msi.capoff = msiptr; - sc->psc_msi.msgctrl = pci_get_cfgdata16(pi, msiptr + 2); - sc->psc_msi.emulated = 1; - pci_set_cfgdata8(pi, PCIR_CAP_PTR, msiptr); - } -#endif - - /* Make sure one of the capabilities is present */ - if (sc->psc_msi.capoff == 0 && sc->psc_msix.capoff == 0) - return (-1); - else - return (0); -} - -static uint64_t -msix_table_read(struct passthru_softc *sc, uint64_t offset, int size) -{ - struct pci_devinst *pi; - struct msix_table_entry *entry; - uint8_t *src8; - uint16_t *src16; - uint32_t *src32; - uint64_t *src64; - uint64_t data; - size_t entry_offset; - int index; - - pi = sc->psc_pi; - if (offset < pi->pi_msix.table_offset) - return (-1); - - offset -= pi->pi_msix.table_offset; - index = offset / MSIX_TABLE_ENTRY_SIZE; - if (index >= pi->pi_msix.table_count) - return (-1); - - entry = &pi->pi_msix.table[index]; - entry_offset = offset % MSIX_TABLE_ENTRY_SIZE; - - switch(size) { - case 1: - src8 = (uint8_t *)((void *)entry + entry_offset); - data = *src8; - break; - case 2: - src16 = (uint16_t *)((void *)entry + entry_offset); - data = *src16; - break; - case 4: - src32 = (uint32_t *)((void *)entry + entry_offset); - data = *src32; - break; - case 8: - src64 = (uint64_t *)((void *)entry + entry_offset); - data = *src64; - break; - default: - return (-1); - } - - return (data); -} - -static void -msix_table_write(struct vmctx *ctx, int vcpu, struct passthru_softc *sc, - uint64_t offset, int size, uint64_t data) -{ - struct pci_devinst *pi; - struct msix_table_entry *entry; - uint32_t *dest; - size_t entry_offset; - uint32_t vector_control; - int error, index; - - pi = sc->psc_pi; - if (offset < pi->pi_msix.table_offset) - return; - - offset -= pi->pi_msix.table_offset; - index = offset / MSIX_TABLE_ENTRY_SIZE; - if (index >= pi->pi_msix.table_count) - return; - - entry = &pi->pi_msix.table[index]; - entry_offset = offset % MSIX_TABLE_ENTRY_SIZE; - - /* Only 4 byte naturally-aligned writes are supported */ - assert(size == 4); - assert(entry_offset % 4 == 0); - - vector_control = entry->vector_control; - dest = (uint32_t *)((void *)entry + entry_offset); - *dest = data; - /* If MSI-X hasn't been enabled, do nothing */ - if (pi->pi_msix.enabled) { - /* If the entry is masked, don't set it up */ - if ((entry->vector_control & PCIM_MSIX_VCTRL_MASK) == 0 || - (vector_control & PCIM_MSIX_VCTRL_MASK) == 0) { - error = vm_setup_pptdev_msix(ctx, vcpu, - sc->psc_sel.pc_bus, sc->psc_sel.pc_dev, - sc->psc_sel.pc_func, index, entry->addr, - entry->msg_data, entry->vector_control); - } - } -} - -static int -init_msix_table(struct vmctx *ctx, struct passthru_softc *sc, uint64_t base) -{ - int b, s, f; - int error, idx; - size_t len, remaining; - uint32_t table_size, table_offset; - uint32_t pba_size, pba_offset; - vm_paddr_t start; - struct pci_devinst *pi = sc->psc_pi; - - assert(pci_msix_table_bar(pi) >= 0 && pci_msix_pba_bar(pi) >= 0); - - b = sc->psc_sel.pc_bus; - s = sc->psc_sel.pc_dev; - f = sc->psc_sel.pc_func; - - /* - * If the MSI-X table BAR maps memory intended for - * other uses, it is at least assured that the table - * either resides in its own page within the region, - * or it resides in a page shared with only the PBA. - */ - table_offset = rounddown2(pi->pi_msix.table_offset, 4096); - - table_size = pi->pi_msix.table_offset - table_offset; - table_size += pi->pi_msix.table_count * MSIX_TABLE_ENTRY_SIZE; - table_size = roundup2(table_size, 4096); - - if (pi->pi_msix.pba_bar == pi->pi_msix.table_bar) { - pba_offset = pi->pi_msix.pba_offset; - pba_size = pi->pi_msix.pba_size; - if (pba_offset >= table_offset + table_size || - table_offset >= pba_offset + pba_size) { - /* - * The PBA can reside in the same BAR as the MSI-x - * tables as long as it does not overlap with any - * naturally aligned page occupied by the tables. - */ - } else { - /* Need to also emulate the PBA, not supported yet */ - printf("Unsupported MSI-X configuration: %d/%d/%d\n", - b, s, f); - return (-1); - } - } - - idx = pi->pi_msix.table_bar; - start = pi->pi_bar[idx].addr; - remaining = pi->pi_bar[idx].size; - - /* Map everything before the MSI-X table */ - if (table_offset > 0) { - len = table_offset; - error = vm_map_pptdev_mmio(ctx, b, s, f, start, len, base); - if (error) - return (error); - - base += len; - start += len; - remaining -= len; - } - - /* Skip the MSI-X table */ - base += table_size; - start += table_size; - remaining -= table_size; - - /* Map everything beyond the end of the MSI-X table */ - if (remaining > 0) { - len = remaining; - error = vm_map_pptdev_mmio(ctx, b, s, f, start, len, base); - if (error) - return (error); - } - - return (0); -} - -static int -cfginitbar(struct vmctx *ctx, struct passthru_softc *sc) -{ - int i, error; - struct pci_devinst *pi; - struct pci_bar_io bar; - enum pcibar_type bartype; - uint64_t base, size; - - pi = sc->psc_pi; - - /* - * Initialize BAR registers - */ - for (i = 0; i <= PCI_BARMAX; i++) { - bzero(&bar, sizeof(bar)); - bar.pbi_sel = sc->psc_sel; - bar.pbi_reg = PCIR_BAR(i); - - if (ioctl(pcifd, PCIOCGETBAR, &bar) < 0) - continue; - - if (PCI_BAR_IO(bar.pbi_base)) { - bartype = PCIBAR_IO; - base = bar.pbi_base & PCIM_BAR_IO_BASE; - } else { - switch (bar.pbi_base & PCIM_BAR_MEM_TYPE) { - case PCIM_BAR_MEM_64: - bartype = PCIBAR_MEM64; - break; - default: - bartype = PCIBAR_MEM32; - break; - } - base = bar.pbi_base & PCIM_BAR_MEM_BASE; - } - size = bar.pbi_length; - - if (bartype != PCIBAR_IO) { - if (((base | size) & PAGE_MASK) != 0) { - printf("passthru device %d/%d/%d BAR %d: " - "base %#lx or size %#lx not page aligned\n", - sc->psc_sel.pc_bus, sc->psc_sel.pc_dev, - sc->psc_sel.pc_func, i, base, size); - return (-1); - } - } - - /* Cache information about the "real" BAR */ - sc->psc_bar[i].type = bartype; - sc->psc_bar[i].size = size; - sc->psc_bar[i].addr = base; - - /* Allocate the BAR in the guest I/O or MMIO space */ - error = pci_emul_alloc_pbar(pi, i, base, bartype, size); - if (error) - return (-1); - - /* The MSI-X table needs special handling */ - if (i == pci_msix_table_bar(pi)) { - error = init_msix_table(ctx, sc, base); - if (error) - return (-1); - } else if (bartype != PCIBAR_IO) { - /* Map the physical BAR in the guest MMIO space */ - error = vm_map_pptdev_mmio(ctx, sc->psc_sel.pc_bus, - sc->psc_sel.pc_dev, sc->psc_sel.pc_func, - pi->pi_bar[i].addr, pi->pi_bar[i].size, base); - if (error) - return (-1); - } - - /* - * 64-bit BAR takes up two slots so skip the next one. - */ - if (bartype == PCIBAR_MEM64) { - i++; - assert(i <= PCI_BARMAX); - sc->psc_bar[i].type = PCIBAR_MEMHI64; - } - } - return (0); -} - -static int -cfginit(struct vmctx *ctx, struct pci_devinst *pi, int bus, int slot, int func) -{ - int error; - struct passthru_softc *sc; - - error = 1; - sc = pi->pi_arg; - - bzero(&sc->psc_sel, sizeof(struct pcisel)); - sc->psc_sel.pc_bus = bus; - sc->psc_sel.pc_dev = slot; - sc->psc_sel.pc_func = func; - - if (cfginitmsi(sc) != 0) - goto done; - - if (cfginitbar(ctx, sc) != 0) - goto done; - - error = 0; /* success */ -done: - return (error); -} - -static int -passthru_init(struct vmctx *ctx, struct pci_devinst *pi, char *opts) -{ - int bus, slot, func, error; - struct passthru_softc *sc; - - sc = NULL; - error = 1; - - if (pcifd < 0) { - pcifd = open(_PATH_DEVPCI, O_RDWR, 0); - if (pcifd < 0) - goto done; - } - - if (iofd < 0) { - iofd = open(_PATH_DEVIO, O_RDWR, 0); - if (iofd < 0) - goto done; - } - - if (opts == NULL || - sscanf(opts, "%d/%d/%d", &bus, &slot, &func) != 3) - goto done; - - if (vm_assign_pptdev(ctx, bus, slot, func) != 0) - goto done; - - sc = calloc(1, sizeof(struct passthru_softc)); - - pi->pi_arg = sc; - sc->psc_pi = pi; - - /* initialize config space */ - if ((error = cfginit(ctx, pi, bus, slot, func)) != 0) - goto done; - - error = 0; /* success */ -done: - if (error) { - free(sc); - vm_unassign_pptdev(ctx, bus, slot, func); - } - return (error); -} - -static int -bar_access(int coff) -{ - if (coff >= PCIR_BAR(0) && coff < PCIR_BAR(PCI_BARMAX + 1)) - return (1); - else - return (0); -} - -static int -msicap_access(struct passthru_softc *sc, int coff) -{ - int caplen; - - if (sc->psc_msi.capoff == 0) - return (0); - - caplen = msi_caplen(sc->psc_msi.msgctrl); - - if (coff >= sc->psc_msi.capoff && coff < sc->psc_msi.capoff + caplen) - return (1); - else - return (0); -} - -static int -msixcap_access(struct passthru_softc *sc, int coff) -{ - if (sc->psc_msix.capoff == 0) - return (0); - - return (coff >= sc->psc_msix.capoff && - coff < sc->psc_msix.capoff + MSIX_CAPLEN); -} - -static int -passthru_cfgread(struct vmctx *ctx, int vcpu, struct pci_devinst *pi, - int coff, int bytes, uint32_t *rv) -{ - struct passthru_softc *sc; - - sc = pi->pi_arg; - - /* - * PCI BARs and MSI capability is emulated. - */ - if (bar_access(coff) || msicap_access(sc, coff)) - return (-1); - -#ifdef LEGACY_SUPPORT - /* - * Emulate PCIR_CAP_PTR if this device does not support MSI capability - * natively. - */ - if (sc->psc_msi.emulated) { - if (coff >= PCIR_CAP_PTR && coff < PCIR_CAP_PTR + 4) - return (-1); - } -#endif - - /* Everything else just read from the device's config space */ - *rv = read_config(&sc->psc_sel, coff, bytes); - - return (0); -} - -static int -passthru_cfgwrite(struct vmctx *ctx, int vcpu, struct pci_devinst *pi, - int coff, int bytes, uint32_t val) -{ - int error, msix_table_entries, i; - struct passthru_softc *sc; - - sc = pi->pi_arg; - - /* - * PCI BARs are emulated - */ - if (bar_access(coff)) - return (-1); - - /* - * MSI capability is emulated - */ - if (msicap_access(sc, coff)) { - msicap_cfgwrite(pi, sc->psc_msi.capoff, coff, bytes, val); - - error = vm_setup_pptdev_msi(ctx, vcpu, sc->psc_sel.pc_bus, - sc->psc_sel.pc_dev, sc->psc_sel.pc_func, - pi->pi_msi.addr, pi->pi_msi.msg_data, - pi->pi_msi.maxmsgnum); - if (error != 0) { - printf("vm_setup_pptdev_msi error %d\r\n", errno); - exit(1); - } - return (0); - } - - if (msixcap_access(sc, coff)) { - msixcap_cfgwrite(pi, sc->psc_msix.capoff, coff, bytes, val); - if (pi->pi_msix.enabled) { - msix_table_entries = pi->pi_msix.table_count; - for (i = 0; i < msix_table_entries; i++) { - error = vm_setup_pptdev_msix(ctx, vcpu, - sc->psc_sel.pc_bus, sc->psc_sel.pc_dev, - sc->psc_sel.pc_func, i, - pi->pi_msix.table[i].addr, - pi->pi_msix.table[i].msg_data, - pi->pi_msix.table[i].vector_control); - - if (error) { - printf("vm_setup_pptdev_msix error " - "%d\r\n", errno); - exit(1); - } - } - } - return (0); - } - -#ifdef LEGACY_SUPPORT - /* - * If this device does not support MSI natively then we cannot let - * the guest disable legacy interrupts from the device. It is the - * legacy interrupt that is triggering the virtual MSI to the guest. - */ - if (sc->psc_msi.emulated && pci_msi_enabled(pi)) { - if (coff == PCIR_COMMAND && bytes == 2) - val &= ~PCIM_CMD_INTxDIS; - } -#endif - - write_config(&sc->psc_sel, coff, bytes, val); - - return (0); -} - -static void -passthru_write(struct vmctx *ctx, int vcpu, struct pci_devinst *pi, int baridx, - uint64_t offset, int size, uint64_t value) -{ - struct passthru_softc *sc; - struct iodev_pio_req pio; - - sc = pi->pi_arg; - - if (baridx == pci_msix_table_bar(pi)) { - msix_table_write(ctx, vcpu, sc, offset, size, value); - } else { - assert(pi->pi_bar[baridx].type == PCIBAR_IO); - bzero(&pio, sizeof(struct iodev_pio_req)); - pio.access = IODEV_PIO_WRITE; - pio.port = sc->psc_bar[baridx].addr + offset; - pio.width = size; - pio.val = value; - - (void)ioctl(iofd, IODEV_PIO, &pio); - } -} - -static uint64_t -passthru_read(struct vmctx *ctx, int vcpu, struct pci_devinst *pi, int baridx, - uint64_t offset, int size) -{ - struct passthru_softc *sc; - struct iodev_pio_req pio; - uint64_t val; - - sc = pi->pi_arg; - - if (baridx == pci_msix_table_bar(pi)) { - val = msix_table_read(sc, offset, size); - } else { - assert(pi->pi_bar[baridx].type == PCIBAR_IO); - bzero(&pio, sizeof(struct iodev_pio_req)); - pio.access = IODEV_PIO_READ; - pio.port = sc->psc_bar[baridx].addr + offset; - pio.width = size; - pio.val = 0; - - (void)ioctl(iofd, IODEV_PIO, &pio); - - val = pio.val; - } - - return (val); -} - -struct pci_devemu passthru = { - .pe_emu = "passthru", - .pe_init = passthru_init, - .pe_cfgwrite = passthru_cfgwrite, - .pe_cfgread = passthru_cfgread, - .pe_barwrite = passthru_write, - .pe_barread = passthru_read, -}; -PCI_EMUL_SET(passthru); diff --git a/bhyve/spinup_ap.c b/bhyve/spinup_ap.c deleted file mode 100644 index c597023..0000000 --- a/bhyve/spinup_ap.c +++ /dev/null @@ -1,104 +0,0 @@ -/*- - * Copyright (c) 2012 NetApp, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY NETAPP, INC ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL NETAPP, INC OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD$ - */ - -#include -__FBSDID("$FreeBSD$"); - -#include -#include - -#include -#include - -#include -#include -#include - -#include "bhyverun.h" -#include "spinup_ap.h" - -static void -spinup_ap_realmode(struct vmctx *ctx, int newcpu, uint64_t *rip) -{ - int vector, error; - uint16_t cs; - uint64_t desc_base; - uint32_t desc_limit, desc_access; - - vector = *rip >> PAGE_SHIFT; - *rip = 0; - - /* - * Update the %cs and %rip of the guest so that it starts - * executing real mode code at at 'vector << 12'. - */ - error = vm_set_register(ctx, newcpu, VM_REG_GUEST_RIP, *rip); - assert(error == 0); - - error = vm_get_desc(ctx, newcpu, VM_REG_GUEST_CS, &desc_base, - &desc_limit, &desc_access); - assert(error == 0); - - desc_base = vector << PAGE_SHIFT; - error = vm_set_desc(ctx, newcpu, VM_REG_GUEST_CS, - desc_base, desc_limit, desc_access); - assert(error == 0); - - cs = (vector << PAGE_SHIFT) >> 4; - error = vm_set_register(ctx, newcpu, VM_REG_GUEST_CS, cs); - assert(error == 0); -} - -int -spinup_ap(struct vmctx *ctx, int vcpu, int newcpu, uint64_t rip) -{ - int error; - - assert(newcpu != 0); - assert(newcpu < guest_ncpus); - - error = vcpu_reset(ctx, newcpu); - assert(error == 0); - - fbsdrun_set_capabilities(ctx, newcpu); - - /* - * Enable the 'unrestricted guest' mode for 'newcpu'. - * - * Set up the processor state in power-on 16-bit mode, with the CS:IP - * init'd to the specified low-mem 4K page. - */ - error = vm_set_capability(ctx, newcpu, VM_CAP_UNRESTRICTED_GUEST, 1); - assert(error == 0); - - spinup_ap_realmode(ctx, newcpu, &rip); - - fbsdrun_addcpu(ctx, vcpu, newcpu, rip); - - return (newcpu); -} diff --git a/bhyve/xmsr.c b/bhyve/xmsr.c deleted file mode 100644 index 5b7bfbb..0000000 --- a/bhyve/xmsr.c +++ /dev/null @@ -1,230 +0,0 @@ -/*- - * Copyright (c) 2011 NetApp, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY NETAPP, INC ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL NETAPP, INC OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD$ - */ - -#include -__FBSDID("$FreeBSD$"); - -#include - -#include -#include -#include - -#include - -#include -#include -#include - -#include "xmsr.h" - -static int cpu_vendor_intel, cpu_vendor_amd; - -int -emulate_wrmsr(struct vmctx *ctx, int vcpu, uint32_t num, uint64_t val) -{ - - if (cpu_vendor_intel) { - switch (num) { - case 0xd04: /* Sandy Bridge uncore PMCs */ - case 0xc24: - return (0); - case MSR_BIOS_UPDT_TRIG: - return (0); - case MSR_BIOS_SIGN: - return (0); - default: - break; - } - } else if (cpu_vendor_amd) { - switch (num) { - case MSR_HWCR: - /* - * Ignore writes to hardware configuration MSR. - */ - return (0); - - case MSR_NB_CFG1: - case MSR_IC_CFG: - return (0); /* Ignore writes */ - - case MSR_PERFEVSEL0: - case MSR_PERFEVSEL1: - case MSR_PERFEVSEL2: - case MSR_PERFEVSEL3: - /* Ignore writes to the PerfEvtSel MSRs */ - return (0); - - case MSR_K7_PERFCTR0: - case MSR_K7_PERFCTR1: - case MSR_K7_PERFCTR2: - case MSR_K7_PERFCTR3: - /* Ignore writes to the PerfCtr MSRs */ - return (0); - - case MSR_P_STATE_CONTROL: - /* Ignore write to change the P-state */ - return (0); - - default: - break; - } - } - return (-1); -} - -int -emulate_rdmsr(struct vmctx *ctx, int vcpu, uint32_t num, uint64_t *val) -{ - int error = 0; - - if (cpu_vendor_intel) { - switch (num) { - case MSR_BIOS_SIGN: - case MSR_IA32_PLATFORM_ID: - case MSR_PKG_ENERGY_STATUS: - case MSR_PP0_ENERGY_STATUS: - case MSR_PP1_ENERGY_STATUS: - case MSR_DRAM_ENERGY_STATUS: - *val = 0; - break; - case MSR_RAPL_POWER_UNIT: - /* - * Use the default value documented in section - * "RAPL Interfaces" in Intel SDM vol3. - */ - *val = 0x000a1003; - break; - default: - error = -1; - break; - } - } else if (cpu_vendor_amd) { - switch (num) { - case MSR_BIOS_SIGN: - *val = 0; - break; - case MSR_HWCR: - /* - * Bios and Kernel Developer's Guides for AMD Families - * 12H, 14H, 15H and 16H. - */ - *val = 0x01000010; /* Reset value */ - *val |= 1 << 9; /* MONITOR/MWAIT disable */ - break; - - case MSR_NB_CFG1: - case MSR_IC_CFG: - /* - * The reset value is processor family dependent so - * just return 0. - */ - *val = 0; - break; - - case MSR_PERFEVSEL0: - case MSR_PERFEVSEL1: - case MSR_PERFEVSEL2: - case MSR_PERFEVSEL3: - /* - * PerfEvtSel MSRs are not properly virtualized so just - * return zero. - */ - *val = 0; - break; - - case MSR_K7_PERFCTR0: - case MSR_K7_PERFCTR1: - case MSR_K7_PERFCTR2: - case MSR_K7_PERFCTR3: - /* - * PerfCtr MSRs are not properly virtualized so just - * return zero. - */ - *val = 0; - break; - - case MSR_SMM_ADDR: - case MSR_SMM_MASK: - /* - * Return the reset value defined in the AMD Bios and - * Kernel Developer's Guide. - */ - *val = 0; - break; - - case MSR_P_STATE_LIMIT: - case MSR_P_STATE_CONTROL: - case MSR_P_STATE_STATUS: - case MSR_P_STATE_CONFIG(0): /* P0 configuration */ - *val = 0; - break; - - /* - * OpenBSD guests test bit 0 of this MSR to detect if the - * workaround for erratum 721 is already applied. - * http://support.amd.com/TechDocs/41322_10h_Rev_Gd.pdf - */ - case 0xC0011029: - *val = 1; - break; - - default: - error = -1; - break; - } - } else { - error = -1; - } - return (error); -} - -int -init_msr(void) -{ - int error; - u_int regs[4]; - char cpu_vendor[13]; - - do_cpuid(0, regs); - ((u_int *)&cpu_vendor)[0] = regs[1]; - ((u_int *)&cpu_vendor)[1] = regs[3]; - ((u_int *)&cpu_vendor)[2] = regs[2]; - cpu_vendor[12] = '\0'; - - error = 0; - if (strcmp(cpu_vendor, "AuthenticAMD") == 0) { - cpu_vendor_amd = 1; - } else if (strcmp(cpu_vendor, "GenuineIntel") == 0) { - cpu_vendor_intel = 1; - } else { - fprintf(stderr, "Unknown cpu vendor \"%s\"\n", cpu_vendor); - error = -1; - } - return (error); -} diff --git a/bhyvectl/Makefile b/bhyvectl/Makefile deleted file mode 100644 index dba3f12..0000000 --- a/bhyvectl/Makefile +++ /dev/null @@ -1,16 +0,0 @@ -# -# $FreeBSD$ -# - -PROG= bhyvectl -SRCS= bhyvectl.c - -MAN= - -LIBADD= vmmapi - -WARNS?= 3 - -CFLAGS+= -I${.CURDIR}/../../sys/amd64/vmm - -.include diff --git a/bhyvectl/bhyvectl.c b/bhyvectl/bhyvectl.c deleted file mode 100644 index 223ee25..0000000 --- a/bhyvectl/bhyvectl.c +++ /dev/null @@ -1,2142 +0,0 @@ -/*- - * Copyright (c) 2011 NetApp, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY NETAPP, INC ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL NETAPP, INC OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD$ - */ - -#include -__FBSDID("$FreeBSD$"); - -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include "amd/vmcb.h" -#include "intel/vmcs.h" - -#define MB (1UL << 20) -#define GB (1UL << 30) - -#define REQ_ARG required_argument -#define NO_ARG no_argument -#define OPT_ARG optional_argument - -static const char *progname; - -static void -usage(bool cpu_intel) -{ - - (void)fprintf(stderr, - "Usage: %s --vm=\n" - " [--cpu=]\n" - " [--create]\n" - " [--destroy]\n" - " [--get-all]\n" - " [--get-stats]\n" - " [--set-desc-ds]\n" - " [--get-desc-ds]\n" - " [--set-desc-es]\n" - " [--get-desc-es]\n" - " [--set-desc-gs]\n" - " [--get-desc-gs]\n" - " [--set-desc-fs]\n" - " [--get-desc-fs]\n" - " [--set-desc-cs]\n" - " [--get-desc-cs]\n" - " [--set-desc-ss]\n" - " [--get-desc-ss]\n" - " [--set-desc-tr]\n" - " [--get-desc-tr]\n" - " [--set-desc-ldtr]\n" - " [--get-desc-ldtr]\n" - " [--set-desc-gdtr]\n" - " [--get-desc-gdtr]\n" - " [--set-desc-idtr]\n" - " [--get-desc-idtr]\n" - " [--run]\n" - " [--capname=]\n" - " [--getcap]\n" - " [--setcap=<0|1>]\n" - " [--desc-base=]\n" - " [--desc-limit=]\n" - " [--desc-access=]\n" - " [--set-cr0=]\n" - " [--get-cr0]\n" - " [--set-cr3=]\n" - " [--get-cr3]\n" - " [--set-cr4=]\n" - " [--get-cr4]\n" - " [--set-dr7=]\n" - " [--get-dr7]\n" - " [--set-rsp=]\n" - " [--get-rsp]\n" - " [--set-rip=]\n" - " [--get-rip]\n" - " [--get-rax]\n" - " [--set-rax=]\n" - " [--get-rbx]\n" - " [--get-rcx]\n" - " [--get-rdx]\n" - " [--get-rsi]\n" - " [--get-rdi]\n" - " [--get-rbp]\n" - " [--get-r8]\n" - " [--get-r9]\n" - " [--get-r10]\n" - " [--get-r11]\n" - " [--get-r12]\n" - " [--get-r13]\n" - " [--get-r14]\n" - " [--get-r15]\n" - " [--set-rflags=]\n" - " [--get-rflags]\n" - " [--set-cs]\n" - " [--get-cs]\n" - " [--set-ds]\n" - " [--get-ds]\n" - " [--set-es]\n" - " [--get-es]\n" - " [--set-fs]\n" - " [--get-fs]\n" - " [--set-gs]\n" - " [--get-gs]\n" - " [--set-ss]\n" - " [--get-ss]\n" - " [--get-tr]\n" - " [--get-ldtr]\n" - " [--set-x2apic-state=]\n" - " [--get-x2apic-state]\n" - " [--unassign-pptdev=]\n" - " [--set-mem=]\n" - " [--get-lowmem]\n" - " [--get-highmem]\n" - " [--get-gpa-pmap]\n" - " [--assert-lapic-lvt=]\n" - " [--inject-nmi]\n" - " [--force-reset]\n" - " [--force-poweroff]\n" - " [--get-rtc-time]\n" - " [--set-rtc-time=]\n" - " [--get-rtc-nvram]\n" - " [--set-rtc-nvram=]\n" - " [--rtc-nvram-offset=]\n" - " [--get-active-cpus]\n" - " [--get-suspended-cpus]\n" - " [--get-intinfo]\n" - " [--get-eptp]\n" - " [--set-exception-bitmap]\n" - " [--get-exception-bitmap]\n" - " [--get-tsc-offset]\n" - " [--get-guest-pat]\n" - " [--get-io-bitmap-address]\n" - " [--get-msr-bitmap]\n" - " [--get-msr-bitmap-address]\n" - " [--get-guest-sysenter]\n" - " [--get-exit-reason]\n", - progname); - - if (cpu_intel) { - (void)fprintf(stderr, - " [--get-vmcs-pinbased-ctls]\n" - " [--get-vmcs-procbased-ctls]\n" - " [--get-vmcs-procbased-ctls2]\n" - " [--get-vmcs-entry-interruption-info]\n" - " [--set-vmcs-entry-interruption-info=]\n" - " [--get-vmcs-guest-physical-address\n" - " [--get-vmcs-guest-linear-address\n" - " [--get-vmcs-host-pat]\n" - " [--get-vmcs-host-cr0]\n" - " [--get-vmcs-host-cr3]\n" - " [--get-vmcs-host-cr4]\n" - " [--get-vmcs-host-rip]\n" - " [--get-vmcs-host-rsp]\n" - " [--get-vmcs-cr0-mask]\n" - " [--get-vmcs-cr0-shadow]\n" - " [--get-vmcs-cr4-mask]\n" - " [--get-vmcs-cr4-shadow]\n" - " [--get-vmcs-cr3-targets]\n" - " [--get-vmcs-apic-access-address]\n" - " [--get-vmcs-virtual-apic-address]\n" - " [--get-vmcs-tpr-threshold]\n" - " [--get-vmcs-vpid]\n" - " [--get-vmcs-instruction-error]\n" - " [--get-vmcs-exit-ctls]\n" - " [--get-vmcs-entry-ctls]\n" - " [--get-vmcs-link]\n" - " [--get-vmcs-exit-qualification]\n" - " [--get-vmcs-exit-interruption-info]\n" - " [--get-vmcs-exit-interruption-error]\n" - " [--get-vmcs-interruptibility]\n" - ); - } else { - (void)fprintf(stderr, - " [--get-vmcb-intercepts]\n" - " [--get-vmcb-asid]\n" - " [--get-vmcb-exit-details]\n" - " [--get-vmcb-tlb-ctrl]\n" - " [--get-vmcb-virq]\n" - " [--get-avic-apic-bar]\n" - " [--get-avic-backing-page]\n" - " [--get-avic-table]\n" - ); - } - exit(1); -} - -static int get_rtc_time, set_rtc_time; -static int get_rtc_nvram, set_rtc_nvram; -static int rtc_nvram_offset; -static uint8_t rtc_nvram_value; -static time_t rtc_secs; - -static int get_stats, getcap, setcap, capval, get_gpa_pmap; -static int inject_nmi, assert_lapic_lvt; -static int force_reset, force_poweroff; -static const char *capname; -static int create, destroy, get_lowmem, get_highmem; -static int get_intinfo; -static int get_active_cpus, get_suspended_cpus; -static uint64_t memsize; -static int set_cr0, get_cr0, set_cr3, get_cr3, set_cr4, get_cr4; -static int set_efer, get_efer; -static int set_dr7, get_dr7; -static int set_rsp, get_rsp, set_rip, get_rip, set_rflags, get_rflags; -static int set_rax, get_rax; -static int get_rbx, get_rcx, get_rdx, get_rsi, get_rdi, get_rbp; -static int get_r8, get_r9, get_r10, get_r11, get_r12, get_r13, get_r14, get_r15; -static int set_desc_ds, get_desc_ds; -static int set_desc_es, get_desc_es; -static int set_desc_fs, get_desc_fs; -static int set_desc_gs, get_desc_gs; -static int set_desc_cs, get_desc_cs; -static int set_desc_ss, get_desc_ss; -static int set_desc_gdtr, get_desc_gdtr; -static int set_desc_idtr, get_desc_idtr; -static int set_desc_tr, get_desc_tr; -static int set_desc_ldtr, get_desc_ldtr; -static int set_cs, set_ds, set_es, set_fs, set_gs, set_ss, set_tr, set_ldtr; -static int get_cs, get_ds, get_es, get_fs, get_gs, get_ss, get_tr, get_ldtr; -static int set_x2apic_state, get_x2apic_state; -enum x2apic_state x2apic_state; -static int unassign_pptdev, bus, slot, func; -static int run; - -/* - * VMCB specific. - */ -static int get_vmcb_intercept, get_vmcb_exit_details, get_vmcb_tlb_ctrl; -static int get_vmcb_virq, get_avic_table; - -/* - * VMCS-specific fields - */ -static int get_pinbased_ctls, get_procbased_ctls, get_procbased_ctls2; -static int get_eptp, get_io_bitmap, get_tsc_offset; -static int get_vmcs_entry_interruption_info, set_vmcs_entry_interruption_info; -static int get_vmcs_interruptibility; -uint32_t vmcs_entry_interruption_info; -static int get_vmcs_gpa, get_vmcs_gla; -static int get_exception_bitmap, set_exception_bitmap, exception_bitmap; -static int get_cr0_mask, get_cr0_shadow; -static int get_cr4_mask, get_cr4_shadow; -static int get_cr3_targets; -static int get_apic_access_addr, get_virtual_apic_addr, get_tpr_threshold; -static int get_msr_bitmap, get_msr_bitmap_address; -static int get_vpid_asid; -static int get_inst_err, get_exit_ctls, get_entry_ctls; -static int get_host_cr0, get_host_cr3, get_host_cr4; -static int get_host_rip, get_host_rsp; -static int get_guest_pat, get_host_pat; -static int get_guest_sysenter, get_vmcs_link; -static int get_exit_reason, get_vmcs_exit_qualification; -static int get_vmcs_exit_interruption_info, get_vmcs_exit_interruption_error; - -static uint64_t desc_base; -static uint32_t desc_limit, desc_access; - -static int get_all; - -static void -dump_vm_run_exitcode(struct vm_exit *vmexit, int vcpu) -{ - printf("vm exit[%d]\n", vcpu); - printf("\trip\t\t0x%016lx\n", vmexit->rip); - printf("\tinst_length\t%d\n", vmexit->inst_length); - switch (vmexit->exitcode) { - case VM_EXITCODE_INOUT: - printf("\treason\t\tINOUT\n"); - printf("\tdirection\t%s\n", vmexit->u.inout.in ? "IN" : "OUT"); - printf("\tbytes\t\t%d\n", vmexit->u.inout.bytes); - printf("\tflags\t\t%s%s\n", - vmexit->u.inout.string ? "STRING " : "", - vmexit->u.inout.rep ? "REP " : ""); - printf("\tport\t\t0x%04x\n", vmexit->u.inout.port); - printf("\teax\t\t0x%08x\n", vmexit->u.inout.eax); - break; - case VM_EXITCODE_VMX: - printf("\treason\t\tVMX\n"); - printf("\tstatus\t\t%d\n", vmexit->u.vmx.status); - printf("\texit_reason\t0x%08x (%u)\n", - vmexit->u.vmx.exit_reason, vmexit->u.vmx.exit_reason); - printf("\tqualification\t0x%016lx\n", - vmexit->u.vmx.exit_qualification); - printf("\tinst_type\t\t%d\n", vmexit->u.vmx.inst_type); - printf("\tinst_error\t\t%d\n", vmexit->u.vmx.inst_error); - break; - case VM_EXITCODE_SVM: - printf("\treason\t\tSVM\n"); - printf("\texit_reason\t\t%#lx\n", vmexit->u.svm.exitcode); - printf("\texitinfo1\t\t%#lx\n", vmexit->u.svm.exitinfo1); - printf("\texitinfo2\t\t%#lx\n", vmexit->u.svm.exitinfo2); - break; - default: - printf("*** unknown vm run exitcode %d\n", vmexit->exitcode); - break; - } -} - -/* AMD 6th generation and Intel compatible MSRs */ -#define MSR_AMD6TH_START 0xC0000000 -#define MSR_AMD6TH_END 0xC0001FFF -/* AMD 7th and 8th generation compatible MSRs */ -#define MSR_AMD7TH_START 0xC0010000 -#define MSR_AMD7TH_END 0xC0011FFF - -static const char * -msr_name(uint32_t msr) -{ - static char buf[32]; - - switch(msr) { - case MSR_TSC: - return ("MSR_TSC"); - case MSR_EFER: - return ("MSR_EFER"); - case MSR_STAR: - return ("MSR_STAR"); - case MSR_LSTAR: - return ("MSR_LSTAR"); - case MSR_CSTAR: - return ("MSR_CSTAR"); - case MSR_SF_MASK: - return ("MSR_SF_MASK"); - case MSR_FSBASE: - return ("MSR_FSBASE"); - case MSR_GSBASE: - return ("MSR_GSBASE"); - case MSR_KGSBASE: - return ("MSR_KGSBASE"); - case MSR_SYSENTER_CS_MSR: - return ("MSR_SYSENTER_CS_MSR"); - case MSR_SYSENTER_ESP_MSR: - return ("MSR_SYSENTER_ESP_MSR"); - case MSR_SYSENTER_EIP_MSR: - return ("MSR_SYSENTER_EIP_MSR"); - case MSR_PAT: - return ("MSR_PAT"); - } - snprintf(buf, sizeof(buf), "MSR %#08x", msr); - - return (buf); -} - -static inline void -print_msr_pm(uint64_t msr, int vcpu, int readable, int writeable) -{ - - if (readable || writeable) { - printf("%-20s[%d]\t\t%c%c\n", msr_name(msr), vcpu, - readable ? 'R' : '-', writeable ? 'W' : '-'); - } -} - -/* - * Reference APM vol2, section 15.11 MSR Intercepts. - */ -static void -dump_amd_msr_pm(const char *bitmap, int vcpu) -{ - int byte, bit, readable, writeable; - uint32_t msr; - - for (msr = 0; msr < 0x2000; msr++) { - byte = msr / 4; - bit = (msr % 4) * 2; - - /* Look at MSRs in the range 0x00000000 to 0x00001FFF */ - readable = (bitmap[byte] & (1 << bit)) ? 0 : 1; - writeable = (bitmap[byte] & (2 << bit)) ? 0 : 1; - print_msr_pm(msr, vcpu, readable, writeable); - - /* Look at MSRs in the range 0xC0000000 to 0xC0001FFF */ - byte += 2048; - readable = (bitmap[byte] & (1 << bit)) ? 0 : 1; - writeable = (bitmap[byte] & (2 << bit)) ? 0 : 1; - print_msr_pm(msr + MSR_AMD6TH_START, vcpu, readable, - writeable); - - /* MSR 0xC0010000 to 0xC0011FF is only for AMD */ - byte += 4096; - readable = (bitmap[byte] & (1 << bit)) ? 0 : 1; - writeable = (bitmap[byte] & (2 << bit)) ? 0 : 1; - print_msr_pm(msr + MSR_AMD7TH_START, vcpu, readable, - writeable); - } -} - -/* - * Reference Intel SDM Vol3 Section 24.6.9 MSR-Bitmap Address - */ -static void -dump_intel_msr_pm(const char *bitmap, int vcpu) -{ - int byte, bit, readable, writeable; - uint32_t msr; - - for (msr = 0; msr < 0x2000; msr++) { - byte = msr / 8; - bit = msr & 0x7; - - /* Look at MSRs in the range 0x00000000 to 0x00001FFF */ - readable = (bitmap[byte] & (1 << bit)) ? 0 : 1; - writeable = (bitmap[2048 + byte] & (1 << bit)) ? 0 : 1; - print_msr_pm(msr, vcpu, readable, writeable); - - /* Look at MSRs in the range 0xC0000000 to 0xC0001FFF */ - byte += 1024; - readable = (bitmap[byte] & (1 << bit)) ? 0 : 1; - writeable = (bitmap[2048 + byte] & (1 << bit)) ? 0 : 1; - print_msr_pm(msr + MSR_AMD6TH_START, vcpu, readable, - writeable); - } -} - -static int -dump_msr_bitmap(int vcpu, uint64_t addr, bool cpu_intel) -{ - int error, fd, map_size; - const char *bitmap; - - error = -1; - bitmap = MAP_FAILED; - - fd = open("/dev/mem", O_RDONLY, 0); - if (fd < 0) { - perror("Couldn't open /dev/mem"); - goto done; - } - - if (cpu_intel) - map_size = PAGE_SIZE; - else - map_size = 2 * PAGE_SIZE; - - bitmap = mmap(NULL, map_size, PROT_READ, MAP_SHARED, fd, addr); - if (bitmap == MAP_FAILED) { - perror("mmap failed"); - goto done; - } - - if (cpu_intel) - dump_intel_msr_pm(bitmap, vcpu); - else - dump_amd_msr_pm(bitmap, vcpu); - - error = 0; -done: - if (bitmap != MAP_FAILED) - munmap((void *)bitmap, map_size); - if (fd >= 0) - close(fd); - - return (error); -} - -static int -vm_get_vmcs_field(struct vmctx *ctx, int vcpu, int field, uint64_t *ret_val) -{ - - return (vm_get_register(ctx, vcpu, VMCS_IDENT(field), ret_val)); -} - -static int -vm_set_vmcs_field(struct vmctx *ctx, int vcpu, int field, uint64_t val) -{ - - return (vm_set_register(ctx, vcpu, VMCS_IDENT(field), val)); -} - -static int -vm_get_vmcb_field(struct vmctx *ctx, int vcpu, int off, int bytes, - uint64_t *ret_val) -{ - - return (vm_get_register(ctx, vcpu, VMCB_ACCESS(off, bytes), ret_val)); -} - -static int -vm_set_vmcb_field(struct vmctx *ctx, int vcpu, int off, int bytes, - uint64_t val) -{ - - return (vm_set_register(ctx, vcpu, VMCB_ACCESS(off, bytes), val)); -} - -enum { - VMNAME = 1000, /* avoid collision with return values from getopt */ - VCPU, - SET_MEM, - SET_EFER, - SET_CR0, - SET_CR3, - SET_CR4, - SET_DR7, - SET_RSP, - SET_RIP, - SET_RAX, - SET_RFLAGS, - DESC_BASE, - DESC_LIMIT, - DESC_ACCESS, - SET_CS, - SET_DS, - SET_ES, - SET_FS, - SET_GS, - SET_SS, - SET_TR, - SET_LDTR, - SET_X2APIC_STATE, - SET_EXCEPTION_BITMAP, - SET_VMCS_ENTRY_INTERRUPTION_INFO, - SET_CAP, - CAPNAME, - UNASSIGN_PPTDEV, - GET_GPA_PMAP, - ASSERT_LAPIC_LVT, - SET_RTC_TIME, - SET_RTC_NVRAM, - RTC_NVRAM_OFFSET, -}; - -static void -print_cpus(const char *banner, const cpuset_t *cpus) -{ - int i, first; - - first = 1; - printf("%s:\t", banner); - if (!CPU_EMPTY(cpus)) { - for (i = 0; i < CPU_SETSIZE; i++) { - if (CPU_ISSET(i, cpus)) { - printf("%s%d", first ? " " : ", ", i); - first = 0; - } - } - } else - printf(" (none)"); - printf("\n"); -} - -static void -print_intinfo(const char *banner, uint64_t info) -{ - int type; - - printf("%s:\t", banner); - if (info & VM_INTINFO_VALID) { - type = info & VM_INTINFO_TYPE; - switch (type) { - case VM_INTINFO_HWINTR: - printf("extint"); - break; - case VM_INTINFO_NMI: - printf("nmi"); - break; - case VM_INTINFO_SWINTR: - printf("swint"); - break; - default: - printf("exception"); - break; - } - printf(" vector %d", (int)VM_INTINFO_VECTOR(info)); - if (info & VM_INTINFO_DEL_ERRCODE) - printf(" errcode %#x", (u_int)(info >> 32)); - } else { - printf("n/a"); - } - printf("\n"); -} - -static bool -cpu_vendor_intel(void) -{ - u_int regs[4]; - char cpu_vendor[13]; - - do_cpuid(0, regs); - ((u_int *)&cpu_vendor)[0] = regs[1]; - ((u_int *)&cpu_vendor)[1] = regs[3]; - ((u_int *)&cpu_vendor)[2] = regs[2]; - cpu_vendor[12] = '\0'; - - if (strcmp(cpu_vendor, "AuthenticAMD") == 0) { - return (false); - } else if (strcmp(cpu_vendor, "GenuineIntel") == 0) { - return (true); - } else { - fprintf(stderr, "Unknown cpu vendor \"%s\"\n", cpu_vendor); - exit(1); - } -} - -static int -get_all_registers(struct vmctx *ctx, int vcpu) -{ - uint64_t cr0, cr3, cr4, dr7, rsp, rip, rflags, efer; - uint64_t rax, rbx, rcx, rdx, rsi, rdi, rbp; - uint64_t r8, r9, r10, r11, r12, r13, r14, r15; - int error = 0; - - if (!error && (get_efer || get_all)) { - error = vm_get_register(ctx, vcpu, VM_REG_GUEST_EFER, &efer); - if (error == 0) - printf("efer[%d]\t\t0x%016lx\n", vcpu, efer); - } - - if (!error && (get_cr0 || get_all)) { - error = vm_get_register(ctx, vcpu, VM_REG_GUEST_CR0, &cr0); - if (error == 0) - printf("cr0[%d]\t\t0x%016lx\n", vcpu, cr0); - } - - if (!error && (get_cr3 || get_all)) { - error = vm_get_register(ctx, vcpu, VM_REG_GUEST_CR3, &cr3); - if (error == 0) - printf("cr3[%d]\t\t0x%016lx\n", vcpu, cr3); - } - - if (!error && (get_cr4 || get_all)) { - error = vm_get_register(ctx, vcpu, VM_REG_GUEST_CR4, &cr4); - if (error == 0) - printf("cr4[%d]\t\t0x%016lx\n", vcpu, cr4); - } - - if (!error && (get_dr7 || get_all)) { - error = vm_get_register(ctx, vcpu, VM_REG_GUEST_DR7, &dr7); - if (error == 0) - printf("dr7[%d]\t\t0x%016lx\n", vcpu, dr7); - } - - if (!error && (get_rsp || get_all)) { - error = vm_get_register(ctx, vcpu, VM_REG_GUEST_RSP, &rsp); - if (error == 0) - printf("rsp[%d]\t\t0x%016lx\n", vcpu, rsp); - } - - if (!error && (get_rip || get_all)) { - error = vm_get_register(ctx, vcpu, VM_REG_GUEST_RIP, &rip); - if (error == 0) - printf("rip[%d]\t\t0x%016lx\n", vcpu, rip); - } - - if (!error && (get_rax || get_all)) { - error = vm_get_register(ctx, vcpu, VM_REG_GUEST_RAX, &rax); - if (error == 0) - printf("rax[%d]\t\t0x%016lx\n", vcpu, rax); - } - - if (!error && (get_rbx || get_all)) { - error = vm_get_register(ctx, vcpu, VM_REG_GUEST_RBX, &rbx); - if (error == 0) - printf("rbx[%d]\t\t0x%016lx\n", vcpu, rbx); - } - - if (!error && (get_rcx || get_all)) { - error = vm_get_register(ctx, vcpu, VM_REG_GUEST_RCX, &rcx); - if (error == 0) - printf("rcx[%d]\t\t0x%016lx\n", vcpu, rcx); - } - - if (!error && (get_rdx || get_all)) { - error = vm_get_register(ctx, vcpu, VM_REG_GUEST_RDX, &rdx); - if (error == 0) - printf("rdx[%d]\t\t0x%016lx\n", vcpu, rdx); - } - - if (!error && (get_rsi || get_all)) { - error = vm_get_register(ctx, vcpu, VM_REG_GUEST_RSI, &rsi); - if (error == 0) - printf("rsi[%d]\t\t0x%016lx\n", vcpu, rsi); - } - - if (!error && (get_rdi || get_all)) { - error = vm_get_register(ctx, vcpu, VM_REG_GUEST_RDI, &rdi); - if (error == 0) - printf("rdi[%d]\t\t0x%016lx\n", vcpu, rdi); - } - - if (!error && (get_rbp || get_all)) { - error = vm_get_register(ctx, vcpu, VM_REG_GUEST_RBP, &rbp); - if (error == 0) - printf("rbp[%d]\t\t0x%016lx\n", vcpu, rbp); - } - - if (!error && (get_r8 || get_all)) { - error = vm_get_register(ctx, vcpu, VM_REG_GUEST_R8, &r8); - if (error == 0) - printf("r8[%d]\t\t0x%016lx\n", vcpu, r8); - } - - if (!error && (get_r9 || get_all)) { - error = vm_get_register(ctx, vcpu, VM_REG_GUEST_R9, &r9); - if (error == 0) - printf("r9[%d]\t\t0x%016lx\n", vcpu, r9); - } - - if (!error && (get_r10 || get_all)) { - error = vm_get_register(ctx, vcpu, VM_REG_GUEST_R10, &r10); - if (error == 0) - printf("r10[%d]\t\t0x%016lx\n", vcpu, r10); - } - - if (!error && (get_r11 || get_all)) { - error = vm_get_register(ctx, vcpu, VM_REG_GUEST_R11, &r11); - if (error == 0) - printf("r11[%d]\t\t0x%016lx\n", vcpu, r11); - } - - if (!error && (get_r12 || get_all)) { - error = vm_get_register(ctx, vcpu, VM_REG_GUEST_R12, &r12); - if (error == 0) - printf("r12[%d]\t\t0x%016lx\n", vcpu, r12); - } - - if (!error && (get_r13 || get_all)) { - error = vm_get_register(ctx, vcpu, VM_REG_GUEST_R13, &r13); - if (error == 0) - printf("r13[%d]\t\t0x%016lx\n", vcpu, r13); - } - - if (!error && (get_r14 || get_all)) { - error = vm_get_register(ctx, vcpu, VM_REG_GUEST_R14, &r14); - if (error == 0) - printf("r14[%d]\t\t0x%016lx\n", vcpu, r14); - } - - if (!error && (get_r15 || get_all)) { - error = vm_get_register(ctx, vcpu, VM_REG_GUEST_R15, &r15); - if (error == 0) - printf("r15[%d]\t\t0x%016lx\n", vcpu, r15); - } - - if (!error && (get_rflags || get_all)) { - error = vm_get_register(ctx, vcpu, VM_REG_GUEST_RFLAGS, - &rflags); - if (error == 0) - printf("rflags[%d]\t0x%016lx\n", vcpu, rflags); - } - - return (error); -} - -static int -get_all_segments(struct vmctx *ctx, int vcpu) -{ - uint64_t cs, ds, es, fs, gs, ss, tr, ldtr; - int error = 0; - - if (!error && (get_desc_ds || get_all)) { - error = vm_get_desc(ctx, vcpu, VM_REG_GUEST_DS, - &desc_base, &desc_limit, &desc_access); - if (error == 0) { - printf("ds desc[%d]\t0x%016lx/0x%08x/0x%08x\n", - vcpu, desc_base, desc_limit, desc_access); - } - } - - if (!error && (get_desc_es || get_all)) { - error = vm_get_desc(ctx, vcpu, VM_REG_GUEST_ES, - &desc_base, &desc_limit, &desc_access); - if (error == 0) { - printf("es desc[%d]\t0x%016lx/0x%08x/0x%08x\n", - vcpu, desc_base, desc_limit, desc_access); - } - } - - if (!error && (get_desc_fs || get_all)) { - error = vm_get_desc(ctx, vcpu, VM_REG_GUEST_FS, - &desc_base, &desc_limit, &desc_access); - if (error == 0) { - printf("fs desc[%d]\t0x%016lx/0x%08x/0x%08x\n", - vcpu, desc_base, desc_limit, desc_access); - } - } - - if (!error && (get_desc_gs || get_all)) { - error = vm_get_desc(ctx, vcpu, VM_REG_GUEST_GS, - &desc_base, &desc_limit, &desc_access); - if (error == 0) { - printf("gs desc[%d]\t0x%016lx/0x%08x/0x%08x\n", - vcpu, desc_base, desc_limit, desc_access); - } - } - - if (!error && (get_desc_ss || get_all)) { - error = vm_get_desc(ctx, vcpu, VM_REG_GUEST_SS, - &desc_base, &desc_limit, &desc_access); - if (error == 0) { - printf("ss desc[%d]\t0x%016lx/0x%08x/0x%08x\n", - vcpu, desc_base, desc_limit, desc_access); - } - } - - if (!error && (get_desc_cs || get_all)) { - error = vm_get_desc(ctx, vcpu, VM_REG_GUEST_CS, - &desc_base, &desc_limit, &desc_access); - if (error == 0) { - printf("cs desc[%d]\t0x%016lx/0x%08x/0x%08x\n", - vcpu, desc_base, desc_limit, desc_access); - } - } - - if (!error && (get_desc_tr || get_all)) { - error = vm_get_desc(ctx, vcpu, VM_REG_GUEST_TR, - &desc_base, &desc_limit, &desc_access); - if (error == 0) { - printf("tr desc[%d]\t0x%016lx/0x%08x/0x%08x\n", - vcpu, desc_base, desc_limit, desc_access); - } - } - - if (!error && (get_desc_ldtr || get_all)) { - error = vm_get_desc(ctx, vcpu, VM_REG_GUEST_LDTR, - &desc_base, &desc_limit, &desc_access); - if (error == 0) { - printf("ldtr desc[%d]\t0x%016lx/0x%08x/0x%08x\n", - vcpu, desc_base, desc_limit, desc_access); - } - } - - if (!error && (get_desc_gdtr || get_all)) { - error = vm_get_desc(ctx, vcpu, VM_REG_GUEST_GDTR, - &desc_base, &desc_limit, &desc_access); - if (error == 0) { - printf("gdtr[%d]\t\t0x%016lx/0x%08x\n", - vcpu, desc_base, desc_limit); - } - } - - if (!error && (get_desc_idtr || get_all)) { - error = vm_get_desc(ctx, vcpu, VM_REG_GUEST_IDTR, - &desc_base, &desc_limit, &desc_access); - if (error == 0) { - printf("idtr[%d]\t\t0x%016lx/0x%08x\n", - vcpu, desc_base, desc_limit); - } - } - - if (!error && (get_cs || get_all)) { - error = vm_get_register(ctx, vcpu, VM_REG_GUEST_CS, &cs); - if (error == 0) - printf("cs[%d]\t\t0x%04lx\n", vcpu, cs); - } - - if (!error && (get_ds || get_all)) { - error = vm_get_register(ctx, vcpu, VM_REG_GUEST_DS, &ds); - if (error == 0) - printf("ds[%d]\t\t0x%04lx\n", vcpu, ds); - } - - if (!error && (get_es || get_all)) { - error = vm_get_register(ctx, vcpu, VM_REG_GUEST_ES, &es); - if (error == 0) - printf("es[%d]\t\t0x%04lx\n", vcpu, es); - } - - if (!error && (get_fs || get_all)) { - error = vm_get_register(ctx, vcpu, VM_REG_GUEST_FS, &fs); - if (error == 0) - printf("fs[%d]\t\t0x%04lx\n", vcpu, fs); - } - - if (!error && (get_gs || get_all)) { - error = vm_get_register(ctx, vcpu, VM_REG_GUEST_GS, &gs); - if (error == 0) - printf("gs[%d]\t\t0x%04lx\n", vcpu, gs); - } - - if (!error && (get_ss || get_all)) { - error = vm_get_register(ctx, vcpu, VM_REG_GUEST_SS, &ss); - if (error == 0) - printf("ss[%d]\t\t0x%04lx\n", vcpu, ss); - } - - if (!error && (get_tr || get_all)) { - error = vm_get_register(ctx, vcpu, VM_REG_GUEST_TR, &tr); - if (error == 0) - printf("tr[%d]\t\t0x%04lx\n", vcpu, tr); - } - - if (!error && (get_ldtr || get_all)) { - error = vm_get_register(ctx, vcpu, VM_REG_GUEST_LDTR, &ldtr); - if (error == 0) - printf("ldtr[%d]\t\t0x%04lx\n", vcpu, ldtr); - } - - return (error); -} - -static int -get_misc_vmcs(struct vmctx *ctx, int vcpu) -{ - uint64_t ctl, cr0, cr3, cr4, rsp, rip, pat, addr, u64; - int error = 0; - - if (!error && (get_cr0_mask || get_all)) { - uint64_t cr0mask; - error = vm_get_vmcs_field(ctx, vcpu, VMCS_CR0_MASK, &cr0mask); - if (error == 0) - printf("cr0_mask[%d]\t\t0x%016lx\n", vcpu, cr0mask); - } - - if (!error && (get_cr0_shadow || get_all)) { - uint64_t cr0shadow; - error = vm_get_vmcs_field(ctx, vcpu, VMCS_CR0_SHADOW, - &cr0shadow); - if (error == 0) - printf("cr0_shadow[%d]\t\t0x%016lx\n", vcpu, cr0shadow); - } - - if (!error && (get_cr4_mask || get_all)) { - uint64_t cr4mask; - error = vm_get_vmcs_field(ctx, vcpu, VMCS_CR4_MASK, &cr4mask); - if (error == 0) - printf("cr4_mask[%d]\t\t0x%016lx\n", vcpu, cr4mask); - } - - if (!error && (get_cr4_shadow || get_all)) { - uint64_t cr4shadow; - error = vm_get_vmcs_field(ctx, vcpu, VMCS_CR4_SHADOW, - &cr4shadow); - if (error == 0) - printf("cr4_shadow[%d]\t\t0x%016lx\n", vcpu, cr4shadow); - } - - if (!error && (get_cr3_targets || get_all)) { - uint64_t target_count, target_addr; - error = vm_get_vmcs_field(ctx, vcpu, VMCS_CR3_TARGET_COUNT, - &target_count); - if (error == 0) { - printf("cr3_target_count[%d]\t0x%016lx\n", - vcpu, target_count); - } - - error = vm_get_vmcs_field(ctx, vcpu, VMCS_CR3_TARGET0, - &target_addr); - if (error == 0) { - printf("cr3_target0[%d]\t\t0x%016lx\n", - vcpu, target_addr); - } - - error = vm_get_vmcs_field(ctx, vcpu, VMCS_CR3_TARGET1, - &target_addr); - if (error == 0) { - printf("cr3_target1[%d]\t\t0x%016lx\n", - vcpu, target_addr); - } - - error = vm_get_vmcs_field(ctx, vcpu, VMCS_CR3_TARGET2, - &target_addr); - if (error == 0) { - printf("cr3_target2[%d]\t\t0x%016lx\n", - vcpu, target_addr); - } - - error = vm_get_vmcs_field(ctx, vcpu, VMCS_CR3_TARGET3, - &target_addr); - if (error == 0) { - printf("cr3_target3[%d]\t\t0x%016lx\n", - vcpu, target_addr); - } - } - - if (!error && (get_pinbased_ctls || get_all)) { - error = vm_get_vmcs_field(ctx, vcpu, VMCS_PIN_BASED_CTLS, &ctl); - if (error == 0) - printf("pinbased_ctls[%d]\t0x%016lx\n", vcpu, ctl); - } - - if (!error && (get_procbased_ctls || get_all)) { - error = vm_get_vmcs_field(ctx, vcpu, - VMCS_PRI_PROC_BASED_CTLS, &ctl); - if (error == 0) - printf("procbased_ctls[%d]\t0x%016lx\n", vcpu, ctl); - } - - if (!error && (get_procbased_ctls2 || get_all)) { - error = vm_get_vmcs_field(ctx, vcpu, - VMCS_SEC_PROC_BASED_CTLS, &ctl); - if (error == 0) - printf("procbased_ctls2[%d]\t0x%016lx\n", vcpu, ctl); - } - - if (!error && (get_vmcs_gla || get_all)) { - error = vm_get_vmcs_field(ctx, vcpu, - VMCS_GUEST_LINEAR_ADDRESS, &u64); - if (error == 0) - printf("gla[%d]\t\t0x%016lx\n", vcpu, u64); - } - - if (!error && (get_vmcs_gpa || get_all)) { - error = vm_get_vmcs_field(ctx, vcpu, - VMCS_GUEST_PHYSICAL_ADDRESS, &u64); - if (error == 0) - printf("gpa[%d]\t\t0x%016lx\n", vcpu, u64); - } - - if (!error && (get_vmcs_entry_interruption_info || - get_all)) { - error = vm_get_vmcs_field(ctx, vcpu, VMCS_ENTRY_INTR_INFO,&u64); - if (error == 0) { - printf("entry_interruption_info[%d]\t0x%016lx\n", - vcpu, u64); - } - } - - if (!error && (get_tpr_threshold || get_all)) { - uint64_t threshold; - error = vm_get_vmcs_field(ctx, vcpu, VMCS_TPR_THRESHOLD, - &threshold); - if (error == 0) - printf("tpr_threshold[%d]\t0x%016lx\n", vcpu, threshold); - } - - if (!error && (get_inst_err || get_all)) { - uint64_t insterr; - error = vm_get_vmcs_field(ctx, vcpu, VMCS_INSTRUCTION_ERROR, - &insterr); - if (error == 0) { - printf("instruction_error[%d]\t0x%016lx\n", - vcpu, insterr); - } - } - - if (!error && (get_exit_ctls || get_all)) { - error = vm_get_vmcs_field(ctx, vcpu, VMCS_EXIT_CTLS, &ctl); - if (error == 0) - printf("exit_ctls[%d]\t\t0x%016lx\n", vcpu, ctl); - } - - if (!error && (get_entry_ctls || get_all)) { - error = vm_get_vmcs_field(ctx, vcpu, VMCS_ENTRY_CTLS, &ctl); - if (error == 0) - printf("entry_ctls[%d]\t\t0x%016lx\n", vcpu, ctl); - } - - if (!error && (get_host_pat || get_all)) { - error = vm_get_vmcs_field(ctx, vcpu, VMCS_HOST_IA32_PAT, &pat); - if (error == 0) - printf("host_pat[%d]\t\t0x%016lx\n", vcpu, pat); - } - - if (!error && (get_host_cr0 || get_all)) { - error = vm_get_vmcs_field(ctx, vcpu, VMCS_HOST_CR0, &cr0); - if (error == 0) - printf("host_cr0[%d]\t\t0x%016lx\n", vcpu, cr0); - } - - if (!error && (get_host_cr3 || get_all)) { - error = vm_get_vmcs_field(ctx, vcpu, VMCS_HOST_CR3, &cr3); - if (error == 0) - printf("host_cr3[%d]\t\t0x%016lx\n", vcpu, cr3); - } - - if (!error && (get_host_cr4 || get_all)) { - error = vm_get_vmcs_field(ctx, vcpu, VMCS_HOST_CR4, &cr4); - if (error == 0) - printf("host_cr4[%d]\t\t0x%016lx\n", vcpu, cr4); - } - - if (!error && (get_host_rip || get_all)) { - error = vm_get_vmcs_field(ctx, vcpu, VMCS_HOST_RIP, &rip); - if (error == 0) - printf("host_rip[%d]\t\t0x%016lx\n", vcpu, rip); - } - - if (!error && (get_host_rsp || get_all)) { - error = vm_get_vmcs_field(ctx, vcpu, VMCS_HOST_RSP, &rsp); - if (error == 0) - printf("host_rsp[%d]\t\t0x%016lx\n", vcpu, rsp); - } - - if (!error && (get_vmcs_link || get_all)) { - error = vm_get_vmcs_field(ctx, vcpu, VMCS_LINK_POINTER, &addr); - if (error == 0) - printf("vmcs_pointer[%d]\t0x%016lx\n", vcpu, addr); - } - - if (!error && (get_vmcs_exit_interruption_info || get_all)) { - error = vm_get_vmcs_field(ctx, vcpu, VMCS_EXIT_INTR_INFO, &u64); - if (error == 0) { - printf("vmcs_exit_interruption_info[%d]\t0x%016lx\n", - vcpu, u64); - } - } - - if (!error && (get_vmcs_exit_interruption_error || get_all)) { - error = vm_get_vmcs_field(ctx, vcpu, VMCS_EXIT_INTR_ERRCODE, - &u64); - if (error == 0) { - printf("vmcs_exit_interruption_error[%d]\t0x%016lx\n", - vcpu, u64); - } - } - - if (!error && (get_vmcs_interruptibility || get_all)) { - error = vm_get_vmcs_field(ctx, vcpu, - VMCS_GUEST_INTERRUPTIBILITY, &u64); - if (error == 0) { - printf("vmcs_guest_interruptibility[%d]\t0x%016lx\n", - vcpu, u64); - } - } - - if (!error && (get_vmcs_exit_qualification || get_all)) { - error = vm_get_vmcs_field(ctx, vcpu, VMCS_EXIT_QUALIFICATION, - &u64); - if (error == 0) - printf("vmcs_exit_qualification[%d]\t0x%016lx\n", - vcpu, u64); - } - - return (error); -} - -static int -get_misc_vmcb(struct vmctx *ctx, int vcpu) -{ - uint64_t ctl, addr; - int error = 0; - - if (!error && (get_vmcb_intercept || get_all)) { - error = vm_get_vmcb_field(ctx, vcpu, VMCB_OFF_CR_INTERCEPT, 4, - &ctl); - if (error == 0) - printf("cr_intercept[%d]\t0x%08x\n", vcpu, (int)ctl); - - error = vm_get_vmcb_field(ctx, vcpu, VMCB_OFF_DR_INTERCEPT, 4, - &ctl); - if (error == 0) - printf("dr_intercept[%d]\t0x%08x\n", vcpu, (int)ctl); - - error = vm_get_vmcb_field(ctx, vcpu, VMCB_OFF_EXC_INTERCEPT, 4, - &ctl); - if (error == 0) - printf("exc_intercept[%d]\t0x%08x\n", vcpu, (int)ctl); - - error = vm_get_vmcb_field(ctx, vcpu, VMCB_OFF_INST1_INTERCEPT, - 4, &ctl); - if (error == 0) - printf("inst1_intercept[%d]\t0x%08x\n", vcpu, (int)ctl); - - error = vm_get_vmcb_field(ctx, vcpu, VMCB_OFF_INST2_INTERCEPT, - 4, &ctl); - if (error == 0) - printf("inst2_intercept[%d]\t0x%08x\n", vcpu, (int)ctl); - } - - if (!error && (get_vmcb_tlb_ctrl || get_all)) { - error = vm_get_vmcb_field(ctx, vcpu, VMCB_OFF_TLB_CTRL, - 4, &ctl); - if (error == 0) - printf("TLB ctrl[%d]\t0x%016lx\n", vcpu, ctl); - } - - if (!error && (get_vmcb_exit_details || get_all)) { - error = vm_get_vmcb_field(ctx, vcpu, VMCB_OFF_EXITINFO1, - 8, &ctl); - if (error == 0) - printf("exitinfo1[%d]\t0x%016lx\n", vcpu, ctl); - error = vm_get_vmcb_field(ctx, vcpu, VMCB_OFF_EXITINFO2, - 8, &ctl); - if (error == 0) - printf("exitinfo2[%d]\t0x%016lx\n", vcpu, ctl); - error = vm_get_vmcb_field(ctx, vcpu, VMCB_OFF_EXITINTINFO, - 8, &ctl); - if (error == 0) - printf("exitintinfo[%d]\t0x%016lx\n", vcpu, ctl); - } - - if (!error && (get_vmcb_virq || get_all)) { - error = vm_get_vmcb_field(ctx, vcpu, VMCB_OFF_VIRQ, - 8, &ctl); - if (error == 0) - printf("v_irq/tpr[%d]\t0x%016lx\n", vcpu, ctl); - } - - if (!error && (get_apic_access_addr || get_all)) { - error = vm_get_vmcb_field(ctx, vcpu, VMCB_OFF_AVIC_BAR, 8, - &addr); - if (error == 0) - printf("AVIC apic_bar[%d]\t0x%016lx\n", vcpu, addr); - } - - if (!error && (get_virtual_apic_addr || get_all)) { - error = vm_get_vmcb_field(ctx, vcpu, VMCB_OFF_AVIC_PAGE, 8, - &addr); - if (error == 0) - printf("AVIC backing page[%d]\t0x%016lx\n", vcpu, addr); - } - - if (!error && (get_avic_table || get_all)) { - error = vm_get_vmcb_field(ctx, vcpu, VMCB_OFF_AVIC_LT, 8, - &addr); - if (error == 0) - printf("AVIC logical table[%d]\t0x%016lx\n", - vcpu, addr); - error = vm_get_vmcb_field(ctx, vcpu, VMCB_OFF_AVIC_PT, 8, - &addr); - if (error == 0) - printf("AVIC physical table[%d]\t0x%016lx\n", - vcpu, addr); - } - - return (error); -} - -static struct option * -setup_options(bool cpu_intel) -{ - const struct option common_opts[] = { - { "vm", REQ_ARG, 0, VMNAME }, - { "cpu", REQ_ARG, 0, VCPU }, - { "set-mem", REQ_ARG, 0, SET_MEM }, - { "set-efer", REQ_ARG, 0, SET_EFER }, - { "set-cr0", REQ_ARG, 0, SET_CR0 }, - { "set-cr3", REQ_ARG, 0, SET_CR3 }, - { "set-cr4", REQ_ARG, 0, SET_CR4 }, - { "set-dr7", REQ_ARG, 0, SET_DR7 }, - { "set-rsp", REQ_ARG, 0, SET_RSP }, - { "set-rip", REQ_ARG, 0, SET_RIP }, - { "set-rax", REQ_ARG, 0, SET_RAX }, - { "set-rflags", REQ_ARG, 0, SET_RFLAGS }, - { "desc-base", REQ_ARG, 0, DESC_BASE }, - { "desc-limit", REQ_ARG, 0, DESC_LIMIT }, - { "desc-access",REQ_ARG, 0, DESC_ACCESS }, - { "set-cs", REQ_ARG, 0, SET_CS }, - { "set-ds", REQ_ARG, 0, SET_DS }, - { "set-es", REQ_ARG, 0, SET_ES }, - { "set-fs", REQ_ARG, 0, SET_FS }, - { "set-gs", REQ_ARG, 0, SET_GS }, - { "set-ss", REQ_ARG, 0, SET_SS }, - { "set-tr", REQ_ARG, 0, SET_TR }, - { "set-ldtr", REQ_ARG, 0, SET_LDTR }, - { "set-x2apic-state",REQ_ARG, 0, SET_X2APIC_STATE }, - { "set-exception-bitmap", - REQ_ARG, 0, SET_EXCEPTION_BITMAP }, - { "capname", REQ_ARG, 0, CAPNAME }, - { "unassign-pptdev", REQ_ARG, 0, UNASSIGN_PPTDEV }, - { "setcap", REQ_ARG, 0, SET_CAP }, - { "get-gpa-pmap", REQ_ARG, 0, GET_GPA_PMAP }, - { "assert-lapic-lvt", REQ_ARG, 0, ASSERT_LAPIC_LVT }, - { "get-rtc-time", NO_ARG, &get_rtc_time, 1 }, - { "set-rtc-time", REQ_ARG, 0, SET_RTC_TIME }, - { "rtc-nvram-offset", REQ_ARG, 0, RTC_NVRAM_OFFSET }, - { "get-rtc-nvram", NO_ARG, &get_rtc_nvram, 1 }, - { "set-rtc-nvram", REQ_ARG, 0, SET_RTC_NVRAM }, - { "getcap", NO_ARG, &getcap, 1 }, - { "get-stats", NO_ARG, &get_stats, 1 }, - { "get-desc-ds",NO_ARG, &get_desc_ds, 1 }, - { "set-desc-ds",NO_ARG, &set_desc_ds, 1 }, - { "get-desc-es",NO_ARG, &get_desc_es, 1 }, - { "set-desc-es",NO_ARG, &set_desc_es, 1 }, - { "get-desc-ss",NO_ARG, &get_desc_ss, 1 }, - { "set-desc-ss",NO_ARG, &set_desc_ss, 1 }, - { "get-desc-cs",NO_ARG, &get_desc_cs, 1 }, - { "set-desc-cs",NO_ARG, &set_desc_cs, 1 }, - { "get-desc-fs",NO_ARG, &get_desc_fs, 1 }, - { "set-desc-fs",NO_ARG, &set_desc_fs, 1 }, - { "get-desc-gs",NO_ARG, &get_desc_gs, 1 }, - { "set-desc-gs",NO_ARG, &set_desc_gs, 1 }, - { "get-desc-tr",NO_ARG, &get_desc_tr, 1 }, - { "set-desc-tr",NO_ARG, &set_desc_tr, 1 }, - { "set-desc-ldtr", NO_ARG, &set_desc_ldtr, 1 }, - { "get-desc-ldtr", NO_ARG, &get_desc_ldtr, 1 }, - { "set-desc-gdtr", NO_ARG, &set_desc_gdtr, 1 }, - { "get-desc-gdtr", NO_ARG, &get_desc_gdtr, 1 }, - { "set-desc-idtr", NO_ARG, &set_desc_idtr, 1 }, - { "get-desc-idtr", NO_ARG, &get_desc_idtr, 1 }, - { "get-lowmem", NO_ARG, &get_lowmem, 1 }, - { "get-highmem",NO_ARG, &get_highmem, 1 }, - { "get-efer", NO_ARG, &get_efer, 1 }, - { "get-cr0", NO_ARG, &get_cr0, 1 }, - { "get-cr3", NO_ARG, &get_cr3, 1 }, - { "get-cr4", NO_ARG, &get_cr4, 1 }, - { "get-dr7", NO_ARG, &get_dr7, 1 }, - { "get-rsp", NO_ARG, &get_rsp, 1 }, - { "get-rip", NO_ARG, &get_rip, 1 }, - { "get-rax", NO_ARG, &get_rax, 1 }, - { "get-rbx", NO_ARG, &get_rbx, 1 }, - { "get-rcx", NO_ARG, &get_rcx, 1 }, - { "get-rdx", NO_ARG, &get_rdx, 1 }, - { "get-rsi", NO_ARG, &get_rsi, 1 }, - { "get-rdi", NO_ARG, &get_rdi, 1 }, - { "get-rbp", NO_ARG, &get_rbp, 1 }, - { "get-r8", NO_ARG, &get_r8, 1 }, - { "get-r9", NO_ARG, &get_r9, 1 }, - { "get-r10", NO_ARG, &get_r10, 1 }, - { "get-r11", NO_ARG, &get_r11, 1 }, - { "get-r12", NO_ARG, &get_r12, 1 }, - { "get-r13", NO_ARG, &get_r13, 1 }, - { "get-r14", NO_ARG, &get_r14, 1 }, - { "get-r15", NO_ARG, &get_r15, 1 }, - { "get-rflags", NO_ARG, &get_rflags, 1 }, - { "get-cs", NO_ARG, &get_cs, 1 }, - { "get-ds", NO_ARG, &get_ds, 1 }, - { "get-es", NO_ARG, &get_es, 1 }, - { "get-fs", NO_ARG, &get_fs, 1 }, - { "get-gs", NO_ARG, &get_gs, 1 }, - { "get-ss", NO_ARG, &get_ss, 1 }, - { "get-tr", NO_ARG, &get_tr, 1 }, - { "get-ldtr", NO_ARG, &get_ldtr, 1 }, - { "get-eptp", NO_ARG, &get_eptp, 1 }, - { "get-exception-bitmap", - NO_ARG, &get_exception_bitmap, 1 }, - { "get-io-bitmap-address", - NO_ARG, &get_io_bitmap, 1 }, - { "get-tsc-offset", NO_ARG, &get_tsc_offset, 1 }, - { "get-msr-bitmap", - NO_ARG, &get_msr_bitmap, 1 }, - { "get-msr-bitmap-address", - NO_ARG, &get_msr_bitmap_address, 1 }, - { "get-guest-pat", NO_ARG, &get_guest_pat, 1 }, - { "get-guest-sysenter", - NO_ARG, &get_guest_sysenter, 1 }, - { "get-exit-reason", - NO_ARG, &get_exit_reason, 1 }, - { "get-x2apic-state", NO_ARG, &get_x2apic_state, 1 }, - { "get-all", NO_ARG, &get_all, 1 }, - { "run", NO_ARG, &run, 1 }, - { "create", NO_ARG, &create, 1 }, - { "destroy", NO_ARG, &destroy, 1 }, - { "inject-nmi", NO_ARG, &inject_nmi, 1 }, - { "force-reset", NO_ARG, &force_reset, 1 }, - { "force-poweroff", NO_ARG, &force_poweroff, 1 }, - { "get-active-cpus", NO_ARG, &get_active_cpus, 1 }, - { "get-suspended-cpus", NO_ARG, &get_suspended_cpus, 1 }, - { "get-intinfo", NO_ARG, &get_intinfo, 1 }, - }; - - const struct option intel_opts[] = { - { "get-vmcs-pinbased-ctls", - NO_ARG, &get_pinbased_ctls, 1 }, - { "get-vmcs-procbased-ctls", - NO_ARG, &get_procbased_ctls, 1 }, - { "get-vmcs-procbased-ctls2", - NO_ARG, &get_procbased_ctls2, 1 }, - { "get-vmcs-guest-linear-address", - NO_ARG, &get_vmcs_gla, 1 }, - { "get-vmcs-guest-physical-address", - NO_ARG, &get_vmcs_gpa, 1 }, - { "get-vmcs-entry-interruption-info", - NO_ARG, &get_vmcs_entry_interruption_info, 1}, - { "get-vmcs-cr0-mask", NO_ARG, &get_cr0_mask, 1 }, - { "get-vmcs-cr0-shadow", NO_ARG,&get_cr0_shadow, 1 }, - { "get-vmcs-cr4-mask", NO_ARG, &get_cr4_mask, 1 }, - { "get-vmcs-cr4-shadow", NO_ARG, &get_cr4_shadow, 1 }, - { "get-vmcs-cr3-targets", NO_ARG, &get_cr3_targets, 1 }, - { "get-vmcs-tpr-threshold", - NO_ARG, &get_tpr_threshold, 1 }, - { "get-vmcs-vpid", NO_ARG, &get_vpid_asid, 1 }, - { "get-vmcs-exit-ctls", NO_ARG, &get_exit_ctls, 1 }, - { "get-vmcs-entry-ctls", - NO_ARG, &get_entry_ctls, 1 }, - { "get-vmcs-instruction-error", - NO_ARG, &get_inst_err, 1 }, - { "get-vmcs-host-pat", NO_ARG, &get_host_pat, 1 }, - { "get-vmcs-host-cr0", - NO_ARG, &get_host_cr0, 1 }, - { "set-vmcs-entry-interruption-info", - REQ_ARG, 0, SET_VMCS_ENTRY_INTERRUPTION_INFO }, - { "get-vmcs-exit-qualification", - NO_ARG, &get_vmcs_exit_qualification, 1 }, - { "get-vmcs-interruptibility", - NO_ARG, &get_vmcs_interruptibility, 1 }, - { "get-vmcs-exit-interruption-error", - NO_ARG, &get_vmcs_exit_interruption_error, 1 }, - { "get-vmcs-exit-interruption-info", - NO_ARG, &get_vmcs_exit_interruption_info, 1 }, - { "get-vmcs-link", NO_ARG, &get_vmcs_link, 1 }, - { "get-vmcs-host-cr3", - NO_ARG, &get_host_cr3, 1 }, - { "get-vmcs-host-cr4", - NO_ARG, &get_host_cr4, 1 }, - { "get-vmcs-host-rip", - NO_ARG, &get_host_rip, 1 }, - { "get-vmcs-host-rsp", - NO_ARG, &get_host_rsp, 1 }, - { "get-apic-access-address", - NO_ARG, &get_apic_access_addr, 1}, - { "get-virtual-apic-address", - NO_ARG, &get_virtual_apic_addr, 1} - }; - - const struct option amd_opts[] = { - { "get-vmcb-intercepts", - NO_ARG, &get_vmcb_intercept, 1 }, - { "get-vmcb-asid", - NO_ARG, &get_vpid_asid, 1 }, - { "get-vmcb-exit-details", - NO_ARG, &get_vmcb_exit_details, 1 }, - { "get-vmcb-tlb-ctrl", - NO_ARG, &get_vmcb_tlb_ctrl, 1 }, - { "get-vmcb-virq", - NO_ARG, &get_vmcb_virq, 1 }, - { "get-avic-apic-bar", - NO_ARG, &get_apic_access_addr, 1 }, - { "get-avic-backing-page", - NO_ARG, &get_virtual_apic_addr, 1 }, - { "get-avic-table", - NO_ARG, &get_avic_table, 1 } - }; - - const struct option null_opt = { - NULL, 0, NULL, 0 - }; - - struct option *all_opts; - char *cp; - int optlen; - - optlen = sizeof(common_opts); - - if (cpu_intel) - optlen += sizeof(intel_opts); - else - optlen += sizeof(amd_opts); - - optlen += sizeof(null_opt); - - all_opts = malloc(optlen); - - cp = (char *)all_opts; - memcpy(cp, common_opts, sizeof(common_opts)); - cp += sizeof(common_opts); - - if (cpu_intel) { - memcpy(cp, intel_opts, sizeof(intel_opts)); - cp += sizeof(intel_opts); - } else { - memcpy(cp, amd_opts, sizeof(amd_opts)); - cp += sizeof(amd_opts); - } - - memcpy(cp, &null_opt, sizeof(null_opt)); - cp += sizeof(null_opt); - - return (all_opts); -} - -static const char * -wday_str(int idx) -{ - static const char *weekdays[] = { - "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" - }; - - if (idx >= 0 && idx < 7) - return (weekdays[idx]); - else - return ("UNK"); -} - -static const char * -mon_str(int idx) -{ - static const char *months[] = { - "Jan", "Feb", "Mar", "Apr", "May", "Jun", - "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" - }; - - if (idx >= 0 && idx < 12) - return (months[idx]); - else - return ("UNK"); -} - -int -main(int argc, char *argv[]) -{ - char *vmname; - int error, ch, vcpu, ptenum; - vm_paddr_t gpa, gpa_pmap; - size_t len; - struct vm_exit vmexit; - uint64_t rax, cr0, cr3, cr4, dr7, rsp, rip, rflags, efer, pat; - uint64_t eptp, bm, addr, u64, pteval[4], *pte, info[2]; - struct vmctx *ctx; - int wired; - cpuset_t cpus; - bool cpu_intel; - uint64_t cs, ds, es, fs, gs, ss, tr, ldtr; - struct tm tm; - struct option *opts; - - cpu_intel = cpu_vendor_intel(); - opts = setup_options(cpu_intel); - - vcpu = 0; - vmname = NULL; - assert_lapic_lvt = -1; - progname = basename(argv[0]); - - while ((ch = getopt_long(argc, argv, "", opts, NULL)) != -1) { - switch (ch) { - case 0: - break; - case VMNAME: - vmname = optarg; - break; - case VCPU: - vcpu = atoi(optarg); - break; - case SET_MEM: - memsize = atoi(optarg) * MB; - memsize = roundup(memsize, 2 * MB); - break; - case SET_EFER: - efer = strtoul(optarg, NULL, 0); - set_efer = 1; - break; - case SET_CR0: - cr0 = strtoul(optarg, NULL, 0); - set_cr0 = 1; - break; - case SET_CR3: - cr3 = strtoul(optarg, NULL, 0); - set_cr3 = 1; - break; - case SET_CR4: - cr4 = strtoul(optarg, NULL, 0); - set_cr4 = 1; - break; - case SET_DR7: - dr7 = strtoul(optarg, NULL, 0); - set_dr7 = 1; - break; - case SET_RSP: - rsp = strtoul(optarg, NULL, 0); - set_rsp = 1; - break; - case SET_RIP: - rip = strtoul(optarg, NULL, 0); - set_rip = 1; - break; - case SET_RAX: - rax = strtoul(optarg, NULL, 0); - set_rax = 1; - break; - case SET_RFLAGS: - rflags = strtoul(optarg, NULL, 0); - set_rflags = 1; - break; - case DESC_BASE: - desc_base = strtoul(optarg, NULL, 0); - break; - case DESC_LIMIT: - desc_limit = strtoul(optarg, NULL, 0); - break; - case DESC_ACCESS: - desc_access = strtoul(optarg, NULL, 0); - break; - case SET_CS: - cs = strtoul(optarg, NULL, 0); - set_cs = 1; - break; - case SET_DS: - ds = strtoul(optarg, NULL, 0); - set_ds = 1; - break; - case SET_ES: - es = strtoul(optarg, NULL, 0); - set_es = 1; - break; - case SET_FS: - fs = strtoul(optarg, NULL, 0); - set_fs = 1; - break; - case SET_GS: - gs = strtoul(optarg, NULL, 0); - set_gs = 1; - break; - case SET_SS: - ss = strtoul(optarg, NULL, 0); - set_ss = 1; - break; - case SET_TR: - tr = strtoul(optarg, NULL, 0); - set_tr = 1; - break; - case SET_LDTR: - ldtr = strtoul(optarg, NULL, 0); - set_ldtr = 1; - break; - case SET_X2APIC_STATE: - x2apic_state = strtol(optarg, NULL, 0); - set_x2apic_state = 1; - break; - case SET_EXCEPTION_BITMAP: - exception_bitmap = strtoul(optarg, NULL, 0); - set_exception_bitmap = 1; - break; - case SET_VMCS_ENTRY_INTERRUPTION_INFO: - vmcs_entry_interruption_info = strtoul(optarg, NULL, 0); - set_vmcs_entry_interruption_info = 1; - break; - case SET_CAP: - capval = strtoul(optarg, NULL, 0); - setcap = 1; - break; - case SET_RTC_TIME: - rtc_secs = strtoul(optarg, NULL, 0); - set_rtc_time = 1; - break; - case SET_RTC_NVRAM: - rtc_nvram_value = (uint8_t)strtoul(optarg, NULL, 0); - set_rtc_nvram = 1; - break; - case RTC_NVRAM_OFFSET: - rtc_nvram_offset = strtoul(optarg, NULL, 0); - break; - case GET_GPA_PMAP: - gpa_pmap = strtoul(optarg, NULL, 0); - get_gpa_pmap = 1; - break; - case CAPNAME: - capname = optarg; - break; - case UNASSIGN_PPTDEV: - unassign_pptdev = 1; - if (sscanf(optarg, "%d/%d/%d", &bus, &slot, &func) != 3) - usage(cpu_intel); - break; - case ASSERT_LAPIC_LVT: - assert_lapic_lvt = atoi(optarg); - break; - default: - usage(cpu_intel); - } - } - argc -= optind; - argv += optind; - - if (vmname == NULL) - usage(cpu_intel); - - error = 0; - - if (!error && create) - error = vm_create(vmname); - - if (!error) { - ctx = vm_open(vmname); - if (ctx == NULL) { - printf("VM:%s is not created.\n", vmname); - exit (1); - } - } - - if (!error && memsize) - error = vm_setup_memory(ctx, memsize, VM_MMAP_NONE); - - if (!error && set_efer) - error = vm_set_register(ctx, vcpu, VM_REG_GUEST_EFER, efer); - - if (!error && set_cr0) - error = vm_set_register(ctx, vcpu, VM_REG_GUEST_CR0, cr0); - - if (!error && set_cr3) - error = vm_set_register(ctx, vcpu, VM_REG_GUEST_CR3, cr3); - - if (!error && set_cr4) - error = vm_set_register(ctx, vcpu, VM_REG_GUEST_CR4, cr4); - - if (!error && set_dr7) - error = vm_set_register(ctx, vcpu, VM_REG_GUEST_DR7, dr7); - - if (!error && set_rsp) - error = vm_set_register(ctx, vcpu, VM_REG_GUEST_RSP, rsp); - - if (!error && set_rip) - error = vm_set_register(ctx, vcpu, VM_REG_GUEST_RIP, rip); - - if (!error && set_rax) - error = vm_set_register(ctx, vcpu, VM_REG_GUEST_RAX, rax); - - if (!error && set_rflags) { - error = vm_set_register(ctx, vcpu, VM_REG_GUEST_RFLAGS, - rflags); - } - - if (!error && set_desc_ds) { - error = vm_set_desc(ctx, vcpu, VM_REG_GUEST_DS, - desc_base, desc_limit, desc_access); - } - - if (!error && set_desc_es) { - error = vm_set_desc(ctx, vcpu, VM_REG_GUEST_ES, - desc_base, desc_limit, desc_access); - } - - if (!error && set_desc_ss) { - error = vm_set_desc(ctx, vcpu, VM_REG_GUEST_SS, - desc_base, desc_limit, desc_access); - } - - if (!error && set_desc_cs) { - error = vm_set_desc(ctx, vcpu, VM_REG_GUEST_CS, - desc_base, desc_limit, desc_access); - } - - if (!error && set_desc_fs) { - error = vm_set_desc(ctx, vcpu, VM_REG_GUEST_FS, - desc_base, desc_limit, desc_access); - } - - if (!error && set_desc_gs) { - error = vm_set_desc(ctx, vcpu, VM_REG_GUEST_GS, - desc_base, desc_limit, desc_access); - } - - if (!error && set_desc_tr) { - error = vm_set_desc(ctx, vcpu, VM_REG_GUEST_TR, - desc_base, desc_limit, desc_access); - } - - if (!error && set_desc_ldtr) { - error = vm_set_desc(ctx, vcpu, VM_REG_GUEST_LDTR, - desc_base, desc_limit, desc_access); - } - - if (!error && set_desc_gdtr) { - error = vm_set_desc(ctx, vcpu, VM_REG_GUEST_GDTR, - desc_base, desc_limit, 0); - } - - if (!error && set_desc_idtr) { - error = vm_set_desc(ctx, vcpu, VM_REG_GUEST_IDTR, - desc_base, desc_limit, 0); - } - - if (!error && set_cs) - error = vm_set_register(ctx, vcpu, VM_REG_GUEST_CS, cs); - - if (!error && set_ds) - error = vm_set_register(ctx, vcpu, VM_REG_GUEST_DS, ds); - - if (!error && set_es) - error = vm_set_register(ctx, vcpu, VM_REG_GUEST_ES, es); - - if (!error && set_fs) - error = vm_set_register(ctx, vcpu, VM_REG_GUEST_FS, fs); - - if (!error && set_gs) - error = vm_set_register(ctx, vcpu, VM_REG_GUEST_GS, gs); - - if (!error && set_ss) - error = vm_set_register(ctx, vcpu, VM_REG_GUEST_SS, ss); - - if (!error && set_tr) - error = vm_set_register(ctx, vcpu, VM_REG_GUEST_TR, tr); - - if (!error && set_ldtr) - error = vm_set_register(ctx, vcpu, VM_REG_GUEST_LDTR, ldtr); - - if (!error && set_x2apic_state) - error = vm_set_x2apic_state(ctx, vcpu, x2apic_state); - - if (!error && unassign_pptdev) - error = vm_unassign_pptdev(ctx, bus, slot, func); - - if (!error && set_exception_bitmap) { - if (cpu_intel) - error = vm_set_vmcs_field(ctx, vcpu, - VMCS_EXCEPTION_BITMAP, - exception_bitmap); - else - error = vm_set_vmcb_field(ctx, vcpu, - VMCB_OFF_EXC_INTERCEPT, - 4, exception_bitmap); - } - - if (!error && cpu_intel && set_vmcs_entry_interruption_info) { - error = vm_set_vmcs_field(ctx, vcpu, VMCS_ENTRY_INTR_INFO, - vmcs_entry_interruption_info); - } - - if (!error && inject_nmi) { - error = vm_inject_nmi(ctx, vcpu); - } - - if (!error && assert_lapic_lvt != -1) { - error = vm_lapic_local_irq(ctx, vcpu, assert_lapic_lvt); - } - - if (!error && (get_lowmem || get_all)) { - gpa = 0; - error = vm_get_memory_seg(ctx, gpa, &len, &wired); - if (error == 0) - printf("lowmem\t\t0x%016lx/%ld%s\n", gpa, len, - wired ? " wired" : ""); - } - - if (!error && (get_highmem || get_all)) { - gpa = 4 * GB; - error = vm_get_memory_seg(ctx, gpa, &len, &wired); - if (error == 0) - printf("highmem\t\t0x%016lx/%ld%s\n", gpa, len, - wired ? " wired" : ""); - } - - if (!error) - error = get_all_registers(ctx, vcpu); - - if (!error) - error = get_all_segments(ctx, vcpu); - - if (!error) { - if (cpu_intel) - error = get_misc_vmcs(ctx, vcpu); - else - error = get_misc_vmcb(ctx, vcpu); - } - - if (!error && (get_x2apic_state || get_all)) { - error = vm_get_x2apic_state(ctx, vcpu, &x2apic_state); - if (error == 0) - printf("x2apic_state[%d]\t%d\n", vcpu, x2apic_state); - } - - if (!error && (get_eptp || get_all)) { - if (cpu_intel) - error = vm_get_vmcs_field(ctx, vcpu, VMCS_EPTP, &eptp); - else - error = vm_get_vmcb_field(ctx, vcpu, VMCB_OFF_NPT_BASE, - 8, &eptp); - if (error == 0) - printf("%s[%d]\t\t0x%016lx\n", - cpu_intel ? "eptp" : "rvi/npt", vcpu, eptp); - } - - if (!error && (get_exception_bitmap || get_all)) { - if(cpu_intel) - error = vm_get_vmcs_field(ctx, vcpu, - VMCS_EXCEPTION_BITMAP, &bm); - else - error = vm_get_vmcb_field(ctx, vcpu, - VMCB_OFF_EXC_INTERCEPT, - 4, &bm); - if (error == 0) - printf("exception_bitmap[%d]\t%#lx\n", vcpu, bm); - } - - if (!error && (get_io_bitmap || get_all)) { - if (cpu_intel) { - error = vm_get_vmcs_field(ctx, vcpu, VMCS_IO_BITMAP_A, - &bm); - if (error == 0) - printf("io_bitmap_a[%d]\t%#lx\n", vcpu, bm); - error = vm_get_vmcs_field(ctx, vcpu, VMCS_IO_BITMAP_B, - &bm); - if (error == 0) - printf("io_bitmap_b[%d]\t%#lx\n", vcpu, bm); - } else { - error = vm_get_vmcb_field(ctx, vcpu, - VMCB_OFF_IO_PERM, 8, &bm); - if (error == 0) - printf("io_bitmap[%d]\t%#lx\n", vcpu, bm); - } - } - - if (!error && (get_tsc_offset || get_all)) { - uint64_t tscoff; - if (cpu_intel) - error = vm_get_vmcs_field(ctx, vcpu, VMCS_TSC_OFFSET, - &tscoff); - else - error = vm_get_vmcb_field(ctx, vcpu, - VMCB_OFF_TSC_OFFSET, - 8, &tscoff); - if (error == 0) - printf("tsc_offset[%d]\t0x%016lx\n", vcpu, tscoff); - } - - if (!error && (get_msr_bitmap_address || get_all)) { - if (cpu_intel) - error = vm_get_vmcs_field(ctx, vcpu, VMCS_MSR_BITMAP, - &addr); - else - error = vm_get_vmcb_field(ctx, vcpu, - VMCB_OFF_MSR_PERM, 8, &addr); - if (error == 0) - printf("msr_bitmap[%d]\t\t%#lx\n", vcpu, addr); - } - - if (!error && (get_msr_bitmap || get_all)) { - if (cpu_intel) { - error = vm_get_vmcs_field(ctx, vcpu, - VMCS_MSR_BITMAP, &addr); - } else { - error = vm_get_vmcb_field(ctx, vcpu, - VMCB_OFF_MSR_PERM, 8, - &addr); - } - - if (error == 0) - error = dump_msr_bitmap(vcpu, addr, cpu_intel); - } - - if (!error && (get_vpid_asid || get_all)) { - uint64_t vpid; - if (cpu_intel) - error = vm_get_vmcs_field(ctx, vcpu, VMCS_VPID, &vpid); - else - error = vm_get_vmcb_field(ctx, vcpu, VMCB_OFF_ASID, - 4, &vpid); - if (error == 0) - printf("%s[%d]\t\t0x%04lx\n", - cpu_intel ? "vpid" : "asid", vcpu, vpid); - } - - if (!error && (get_guest_pat || get_all)) { - if (cpu_intel) - error = vm_get_vmcs_field(ctx, vcpu, - VMCS_GUEST_IA32_PAT, &pat); - else - error = vm_get_vmcb_field(ctx, vcpu, - VMCB_OFF_GUEST_PAT, 8, &pat); - if (error == 0) - printf("guest_pat[%d]\t\t0x%016lx\n", vcpu, pat); - } - - if (!error && (get_guest_sysenter || get_all)) { - if (cpu_intel) - error = vm_get_vmcs_field(ctx, vcpu, - VMCS_GUEST_IA32_SYSENTER_CS, - &cs); - else - error = vm_get_vmcb_field(ctx, vcpu, - VMCB_OFF_SYSENTER_CS, 8, - &cs); - - if (error == 0) - printf("guest_sysenter_cs[%d]\t%#lx\n", vcpu, cs); - if (cpu_intel) - error = vm_get_vmcs_field(ctx, vcpu, - VMCS_GUEST_IA32_SYSENTER_ESP, - &rsp); - else - error = vm_get_vmcb_field(ctx, vcpu, - VMCB_OFF_SYSENTER_ESP, 8, - &rsp); - - if (error == 0) - printf("guest_sysenter_sp[%d]\t%#lx\n", vcpu, rsp); - if (cpu_intel) - error = vm_get_vmcs_field(ctx, vcpu, - VMCS_GUEST_IA32_SYSENTER_EIP, - &rip); - else - error = vm_get_vmcb_field(ctx, vcpu, - VMCB_OFF_SYSENTER_EIP, 8, - &rip); - if (error == 0) - printf("guest_sysenter_ip[%d]\t%#lx\n", vcpu, rip); - } - - if (!error && (get_exit_reason || get_all)) { - if (cpu_intel) - error = vm_get_vmcs_field(ctx, vcpu, VMCS_EXIT_REASON, - &u64); - else - error = vm_get_vmcb_field(ctx, vcpu, - VMCB_OFF_EXIT_REASON, 8, - &u64); - if (error == 0) - printf("exit_reason[%d]\t%#lx\n", vcpu, u64); - } - - if (!error && setcap) { - int captype; - captype = vm_capability_name2type(capname); - error = vm_set_capability(ctx, vcpu, captype, capval); - if (error != 0 && errno == ENOENT) - printf("Capability \"%s\" is not available\n", capname); - } - - if (!error && get_gpa_pmap) { - error = vm_get_gpa_pmap(ctx, gpa_pmap, pteval, &ptenum); - if (error == 0) { - printf("gpa %#lx:", gpa_pmap); - pte = &pteval[0]; - while (ptenum-- > 0) - printf(" %#lx", *pte++); - printf("\n"); - } - } - - if (!error && set_rtc_nvram) - error = vm_rtc_write(ctx, rtc_nvram_offset, rtc_nvram_value); - - if (!error && (get_rtc_nvram || get_all)) { - error = vm_rtc_read(ctx, rtc_nvram_offset, &rtc_nvram_value); - if (error == 0) { - printf("rtc nvram[%03d]: 0x%02x\n", rtc_nvram_offset, - rtc_nvram_value); - } - } - - if (!error && set_rtc_time) - error = vm_rtc_settime(ctx, rtc_secs); - - if (!error && (get_rtc_time || get_all)) { - error = vm_rtc_gettime(ctx, &rtc_secs); - if (error == 0) { - gmtime_r(&rtc_secs, &tm); - printf("rtc time %#lx: %s %s %02d %02d:%02d:%02d %d\n", - rtc_secs, wday_str(tm.tm_wday), mon_str(tm.tm_mon), - tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec, - 1900 + tm.tm_year); - } - } - - if (!error && (getcap || get_all)) { - int captype, val, getcaptype; - - if (getcap && capname) - getcaptype = vm_capability_name2type(capname); - else - getcaptype = -1; - - for (captype = 0; captype < VM_CAP_MAX; captype++) { - if (getcaptype >= 0 && captype != getcaptype) - continue; - error = vm_get_capability(ctx, vcpu, captype, &val); - if (error == 0) { - printf("Capability \"%s\" is %s on vcpu %d\n", - vm_capability_type2name(captype), - val ? "set" : "not set", vcpu); - } else if (errno == ENOENT) { - error = 0; - printf("Capability \"%s\" is not available\n", - vm_capability_type2name(captype)); - } else { - break; - } - } - } - - if (!error && (get_active_cpus || get_all)) { - error = vm_active_cpus(ctx, &cpus); - if (!error) - print_cpus("active cpus", &cpus); - } - - if (!error && (get_suspended_cpus || get_all)) { - error = vm_suspended_cpus(ctx, &cpus); - if (!error) - print_cpus("suspended cpus", &cpus); - } - - if (!error && (get_intinfo || get_all)) { - error = vm_get_intinfo(ctx, vcpu, &info[0], &info[1]); - if (!error) { - print_intinfo("pending", info[0]); - print_intinfo("current", info[1]); - } - } - - if (!error && (get_stats || get_all)) { - int i, num_stats; - uint64_t *stats; - struct timeval tv; - const char *desc; - - stats = vm_get_stats(ctx, vcpu, &tv, &num_stats); - if (stats != NULL) { - printf("vcpu%d stats:\n", vcpu); - for (i = 0; i < num_stats; i++) { - desc = vm_get_stat_desc(ctx, i); - printf("%-40s\t%ld\n", desc, stats[i]); - } - } - } - - if (!error && run) { - error = vm_run(ctx, vcpu, &vmexit); - if (error == 0) - dump_vm_run_exitcode(&vmexit, vcpu); - else - printf("vm_run error %d\n", error); - } - - if (!error && force_reset) - error = vm_suspend(ctx, VM_SUSPEND_RESET); - - if (!error && force_poweroff) - error = vm_suspend(ctx, VM_SUSPEND_POWEROFF); - - if (error) - printf("errno = %d\n", errno); - - if (!error && destroy) - vm_destroy(ctx); - - free (opts); - exit(error); -} diff --git a/bhyveload/Makefile b/bhyveload/Makefile deleted file mode 100644 index fce0c1b..0000000 --- a/bhyveload/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -# $FreeBSD$ - -PROG= bhyveload -SRCS= bhyveload.c -MAN= bhyveload.8 - -LIBADD= vmmapi - -WARNS?= 3 - -CFLAGS+=-I${.CURDIR}/../../sys/boot/userboot - -.include diff --git a/bhyveload/bhyveload.8 b/bhyveload/bhyveload.8 deleted file mode 100644 index c168832..0000000 --- a/bhyveload/bhyveload.8 +++ /dev/null @@ -1,157 +0,0 @@ -.\" -.\" Copyright (c) 2012 NetApp Inc -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $FreeBSD$ -.\" -.Dd January 7, 2012 -.Dt BHYVELOAD 8 -.Os -.Sh NAME -.Nm bhyveload -.Nd load a -.Fx -guest inside a bhyve virtual machine -.Sh SYNOPSIS -.Nm -.Op Fl c Ar cons-dev -.Op Fl d Ar disk-path -.Op Fl e Ar name=value -.Op Fl h Ar host-path -.Op Fl m Ar mem-size -.Ar vmname -.Sh DESCRIPTION -.Nm -is used to load a -.Fx -guest inside a -.Xr bhyve 4 -virtual machine. -.Pp -.Nm -is based on -.Xr loader 8 -and will present an interface identical to the -.Fx -loader on the user's terminal. -.Pp -The virtual machine is identified as -.Ar vmname -and will be created if it does not already exist. -.Sh OPTIONS -The following options are available: -.Bl -tag -width indent -.It Fl c Ar cons-dev -.Ar cons-dev -is a -.Xr tty 4 -device to use for -.Nm -terminal I/O. -.Pp -The text string "stdio" is also accepted and selects the use of -unbuffered standard I/O. This is the default value. -.It Fl d Ar disk-path -The -.Ar disk-path -is the pathname of the guest's boot disk image. -.It Fl e Ar name=value -Set the FreeBSD loader environment variable -.Ar name -to -.Ar value . -.Pp -The option may be used more than once to set more than one environment -variable. -.It Fl h Ar host-path -The -.Ar host-path -is the directory at the top of the guest's boot filesystem. -.It Fl m Ar mem-size Xo -.Sm off -.Op Cm K | k | M | m | G | g | T | t -.Xc -.Sm on -.Ar mem-size -is the amount of memory allocated to the guest. -.Pp -The -.Ar mem-size -argument may be suffixed with one of -.Cm K , -.Cm M , -.Cm G -or -.Cm T -(either upper or lower case) to indicate a multiple of -Kilobytes, Megabytes, Gigabytes or Terabytes -respectively. -.Pp -The default value of -.Ar mem-size -is 256M. -.El -.Sh EXAMPLES -To create a virtual machine named -.Ar freebsd-vm -that boots off the ISO image -.Pa /freebsd/release.iso -and has 1GB memory allocated to it: -.Pp -.Dl "bhyveload -m 1G -d /freebsd/release.iso freebsd-vm" -.Pp -To create a virtual machine named -.Ar test-vm -with 256MB of memory allocated, the guest root filesystem under the host -directory -.Pa /user/images/test -and terminal I/O sent to the -.Xr nmdm 4 -device -.Pa /dev/nmdm1B -.Pp -.Dl "bhyveload -m 256MB -h /usr/images/test -c /dev/nmdm1B test-vm" -.Sh SEE ALSO -.Xr bhyve 4 , -.Xr nmdm 4 , -.Xr vmm 4 , -.Xr bhyve 8 , -.Xr loader 8 -.Sh HISTORY -.Nm -first appeared in -.Fx 10.0 , -and was developed at NetApp Inc. -.Sh AUTHORS -.Nm -was developed by -.An -nosplit -.An Neel Natu Aq Mt neel@FreeBSD.org -at NetApp Inc with a lot of help from -.An Doug Rabson Aq Mt dfr@FreeBSD.org . -.Sh BUGS -.Nm -can only load -.Fx -as a guest. diff --git a/bhyveload/bhyveload.c b/bhyveload/bhyveload.c deleted file mode 100644 index 8ebf116..0000000 --- a/bhyveload/bhyveload.c +++ /dev/null @@ -1,746 +0,0 @@ -/*- - * Copyright (c) 2011 NetApp, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY NETAPP, INC ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL NETAPP, INC OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD$ - */ - -/*- - * Copyright (c) 2011 Google, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD$ - */ - -#include -__FBSDID("$FreeBSD$"); - -#include -#include -#include -#include - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include "userboot.h" - -#define MB (1024 * 1024UL) -#define GB (1024 * 1024 * 1024UL) -#define BSP 0 - -#define NDISKS 32 - -static char *host_base; -static struct termios term, oldterm; -static int disk_fd[NDISKS]; -static int ndisks; -static int consin_fd, consout_fd; - -static char *vmname, *progname; -static struct vmctx *ctx; - -static uint64_t gdtbase, cr3, rsp; - -static void cb_exit(void *arg, int v); - -/* - * Console i/o callbacks - */ - -static void -cb_putc(void *arg, int ch) -{ - char c = ch; - - (void) write(consout_fd, &c, 1); -} - -static int -cb_getc(void *arg) -{ - char c; - - if (read(consin_fd, &c, 1) == 1) - return (c); - return (-1); -} - -static int -cb_poll(void *arg) -{ - int n; - - if (ioctl(consin_fd, FIONREAD, &n) >= 0) - return (n > 0); - return (0); -} - -/* - * Host filesystem i/o callbacks - */ - -struct cb_file { - int cf_isdir; - size_t cf_size; - struct stat cf_stat; - union { - int fd; - DIR *dir; - } cf_u; -}; - -static int -cb_open(void *arg, const char *filename, void **hp) -{ - struct stat st; - struct cb_file *cf; - char path[PATH_MAX]; - - if (!host_base) - return (ENOENT); - - strlcpy(path, host_base, PATH_MAX); - if (path[strlen(path) - 1] == '/') - path[strlen(path) - 1] = 0; - strlcat(path, filename, PATH_MAX); - cf = malloc(sizeof(struct cb_file)); - if (stat(path, &cf->cf_stat) < 0) { - free(cf); - return (errno); - } - - cf->cf_size = st.st_size; - if (S_ISDIR(cf->cf_stat.st_mode)) { - cf->cf_isdir = 1; - cf->cf_u.dir = opendir(path); - if (!cf->cf_u.dir) - goto out; - *hp = cf; - return (0); - } - if (S_ISREG(cf->cf_stat.st_mode)) { - cf->cf_isdir = 0; - cf->cf_u.fd = open(path, O_RDONLY); - if (cf->cf_u.fd < 0) - goto out; - *hp = cf; - return (0); - } - -out: - free(cf); - return (EINVAL); -} - -static int -cb_close(void *arg, void *h) -{ - struct cb_file *cf = h; - - if (cf->cf_isdir) - closedir(cf->cf_u.dir); - else - close(cf->cf_u.fd); - free(cf); - - return (0); -} - -static int -cb_isdir(void *arg, void *h) -{ - struct cb_file *cf = h; - - return (cf->cf_isdir); -} - -static int -cb_read(void *arg, void *h, void *buf, size_t size, size_t *resid) -{ - struct cb_file *cf = h; - ssize_t sz; - - if (cf->cf_isdir) - return (EINVAL); - sz = read(cf->cf_u.fd, buf, size); - if (sz < 0) - return (EINVAL); - *resid = size - sz; - return (0); -} - -static int -cb_readdir(void *arg, void *h, uint32_t *fileno_return, uint8_t *type_return, - size_t *namelen_return, char *name) -{ - struct cb_file *cf = h; - struct dirent *dp; - - if (!cf->cf_isdir) - return (EINVAL); - - dp = readdir(cf->cf_u.dir); - if (!dp) - return (ENOENT); - - /* - * Note: d_namlen is in the range 0..255 and therefore less - * than PATH_MAX so we don't need to test before copying. - */ - *fileno_return = dp->d_fileno; - *type_return = dp->d_type; - *namelen_return = dp->d_namlen; - memcpy(name, dp->d_name, dp->d_namlen); - name[dp->d_namlen] = 0; - - return (0); -} - -static int -cb_seek(void *arg, void *h, uint64_t offset, int whence) -{ - struct cb_file *cf = h; - - if (cf->cf_isdir) - return (EINVAL); - if (lseek(cf->cf_u.fd, offset, whence) < 0) - return (errno); - return (0); -} - -static int -cb_stat(void *arg, void *h, int *mode, int *uid, int *gid, uint64_t *size) -{ - struct cb_file *cf = h; - - *mode = cf->cf_stat.st_mode; - *uid = cf->cf_stat.st_uid; - *gid = cf->cf_stat.st_gid; - *size = cf->cf_stat.st_size; - return (0); -} - -/* - * Disk image i/o callbacks - */ - -static int -cb_diskread(void *arg, int unit, uint64_t from, void *to, size_t size, - size_t *resid) -{ - ssize_t n; - - if (unit < 0 || unit >= ndisks ) - return (EIO); - n = pread(disk_fd[unit], to, size, from); - if (n < 0) - return (errno); - *resid = size - n; - return (0); -} - -static int -cb_diskioctl(void *arg, int unit, u_long cmd, void *data) -{ - struct stat sb; - - if (unit < 0 || unit >= ndisks) - return (EBADF); - - switch (cmd) { - case DIOCGSECTORSIZE: - *(u_int *)data = 512; - break; - case DIOCGMEDIASIZE: - if (fstat(disk_fd[unit], &sb) == 0) - *(off_t *)data = sb.st_size; - else - return (ENOTTY); - break; - default: - return (ENOTTY); - } - - return (0); -} - -/* - * Guest virtual machine i/o callbacks - */ -static int -cb_copyin(void *arg, const void *from, uint64_t to, size_t size) -{ - char *ptr; - - to &= 0x7fffffff; - - ptr = vm_map_gpa(ctx, to, size); - if (ptr == NULL) - return (EFAULT); - - memcpy(ptr, from, size); - return (0); -} - -static int -cb_copyout(void *arg, uint64_t from, void *to, size_t size) -{ - char *ptr; - - from &= 0x7fffffff; - - ptr = vm_map_gpa(ctx, from, size); - if (ptr == NULL) - return (EFAULT); - - memcpy(to, ptr, size); - return (0); -} - -static void -cb_setreg(void *arg, int r, uint64_t v) -{ - int error; - enum vm_reg_name vmreg; - - vmreg = VM_REG_LAST; - - switch (r) { - case 4: - vmreg = VM_REG_GUEST_RSP; - rsp = v; - break; - default: - break; - } - - if (vmreg == VM_REG_LAST) { - printf("test_setreg(%d): not implemented\n", r); - cb_exit(NULL, USERBOOT_EXIT_QUIT); - } - - error = vm_set_register(ctx, BSP, vmreg, v); - if (error) { - perror("vm_set_register"); - cb_exit(NULL, USERBOOT_EXIT_QUIT); - } -} - -static void -cb_setmsr(void *arg, int r, uint64_t v) -{ - int error; - enum vm_reg_name vmreg; - - vmreg = VM_REG_LAST; - - switch (r) { - case MSR_EFER: - vmreg = VM_REG_GUEST_EFER; - break; - default: - break; - } - - if (vmreg == VM_REG_LAST) { - printf("test_setmsr(%d): not implemented\n", r); - cb_exit(NULL, USERBOOT_EXIT_QUIT); - } - - error = vm_set_register(ctx, BSP, vmreg, v); - if (error) { - perror("vm_set_msr"); - cb_exit(NULL, USERBOOT_EXIT_QUIT); - } -} - -static void -cb_setcr(void *arg, int r, uint64_t v) -{ - int error; - enum vm_reg_name vmreg; - - vmreg = VM_REG_LAST; - - switch (r) { - case 0: - vmreg = VM_REG_GUEST_CR0; - break; - case 3: - vmreg = VM_REG_GUEST_CR3; - cr3 = v; - break; - case 4: - vmreg = VM_REG_GUEST_CR4; - break; - default: - break; - } - - if (vmreg == VM_REG_LAST) { - printf("test_setcr(%d): not implemented\n", r); - cb_exit(NULL, USERBOOT_EXIT_QUIT); - } - - error = vm_set_register(ctx, BSP, vmreg, v); - if (error) { - perror("vm_set_cr"); - cb_exit(NULL, USERBOOT_EXIT_QUIT); - } -} - -static void -cb_setgdt(void *arg, uint64_t base, size_t size) -{ - int error; - - error = vm_set_desc(ctx, BSP, VM_REG_GUEST_GDTR, base, size - 1, 0); - if (error != 0) { - perror("vm_set_desc(gdt)"); - cb_exit(NULL, USERBOOT_EXIT_QUIT); - } - - gdtbase = base; -} - -static void -cb_exec(void *arg, uint64_t rip) -{ - int error; - - if (cr3 == 0) - error = vm_setup_freebsd_registers_i386(ctx, BSP, rip, gdtbase, - rsp); - else - error = vm_setup_freebsd_registers(ctx, BSP, rip, cr3, gdtbase, - rsp); - if (error) { - perror("vm_setup_freebsd_registers"); - cb_exit(NULL, USERBOOT_EXIT_QUIT); - } - - cb_exit(NULL, 0); -} - -/* - * Misc - */ - -static void -cb_delay(void *arg, int usec) -{ - - usleep(usec); -} - -static void -cb_exit(void *arg, int v) -{ - - tcsetattr(consout_fd, TCSAFLUSH, &oldterm); - exit(v); -} - -static void -cb_getmem(void *arg, uint64_t *ret_lowmem, uint64_t *ret_highmem) -{ - - *ret_lowmem = vm_get_lowmem_size(ctx); - *ret_highmem = vm_get_highmem_size(ctx); -} - -struct env { - const char *str; /* name=value */ - SLIST_ENTRY(env) next; -}; - -static SLIST_HEAD(envhead, env) envhead; - -static void -addenv(const char *str) -{ - struct env *env; - - env = malloc(sizeof(struct env)); - env->str = str; - SLIST_INSERT_HEAD(&envhead, env, next); -} - -static const char * -cb_getenv(void *arg, int num) -{ - int i; - struct env *env; - - i = 0; - SLIST_FOREACH(env, &envhead, next) { - if (i == num) - return (env->str); - i++; - } - - return (NULL); -} - -static struct loader_callbacks cb = { - .getc = cb_getc, - .putc = cb_putc, - .poll = cb_poll, - - .open = cb_open, - .close = cb_close, - .isdir = cb_isdir, - .read = cb_read, - .readdir = cb_readdir, - .seek = cb_seek, - .stat = cb_stat, - - .diskread = cb_diskread, - .diskioctl = cb_diskioctl, - - .copyin = cb_copyin, - .copyout = cb_copyout, - .setreg = cb_setreg, - .setmsr = cb_setmsr, - .setcr = cb_setcr, - .setgdt = cb_setgdt, - .exec = cb_exec, - - .delay = cb_delay, - .exit = cb_exit, - .getmem = cb_getmem, - - .getenv = cb_getenv, -}; - -static int -altcons_open(char *path) -{ - struct stat sb; - int err; - int fd; - - /* - * Allow stdio to be passed in so that the same string - * can be used for the bhyveload console and bhyve com-port - * parameters - */ - if (!strcmp(path, "stdio")) - return (0); - - err = stat(path, &sb); - if (err == 0) { - if (!S_ISCHR(sb.st_mode)) - err = ENOTSUP; - else { - fd = open(path, O_RDWR | O_NONBLOCK); - if (fd < 0) - err = errno; - else - consin_fd = consout_fd = fd; - } - } - - return (err); -} - -static int -disk_open(char *path) -{ - int err, fd; - - if (ndisks >= NDISKS) - return (ERANGE); - - err = 0; - fd = open(path, O_RDONLY); - - if (fd > 0) { - disk_fd[ndisks] = fd; - ndisks++; - } else - err = errno; - - return (err); -} - -static void -usage(void) -{ - - fprintf(stderr, - "usage: %s [-c ] [-d ] [-e ]\n" - " %*s [-h ] [-m mem-size] \n", - progname, - (int)strlen(progname), ""); - exit(1); -} - -int -main(int argc, char** argv) -{ - void *h; - void (*func)(struct loader_callbacks *, void *, int, int); - uint64_t mem_size; - int opt, error, need_reinit; - - progname = basename(argv[0]); - - mem_size = 256 * MB; - - consin_fd = STDIN_FILENO; - consout_fd = STDOUT_FILENO; - - while ((opt = getopt(argc, argv, "c:d:e:h:m:")) != -1) { - switch (opt) { - case 'c': - error = altcons_open(optarg); - if (error != 0) - errx(EX_USAGE, "Could not open '%s'", optarg); - break; - - case 'd': - error = disk_open(optarg); - if (error != 0) - errx(EX_USAGE, "Could not open '%s'", optarg); - break; - - case 'e': - addenv(optarg); - break; - - case 'h': - host_base = optarg; - break; - - case 'm': - error = vm_parse_memsize(optarg, &mem_size); - if (error != 0) - errx(EX_USAGE, "Invalid memsize '%s'", optarg); - break; - case '?': - usage(); - } - } - - argc -= optind; - argv += optind; - - if (argc != 1) - usage(); - - vmname = argv[0]; - - need_reinit = 0; - error = vm_create(vmname); - if (error) { - if (errno != EEXIST) { - perror("vm_create"); - exit(1); - } - need_reinit = 1; - } - - ctx = vm_open(vmname); - if (ctx == NULL) { - perror("vm_open"); - exit(1); - } - - if (need_reinit) { - error = vm_reinit(ctx); - if (error) { - perror("vm_reinit"); - exit(1); - } - } - - error = vm_setup_memory(ctx, mem_size, VM_MMAP_ALL); - if (error) { - perror("vm_setup_memory"); - exit(1); - } - - tcgetattr(consout_fd, &term); - oldterm = term; - cfmakeraw(&term); - term.c_cflag |= CLOCAL; - - tcsetattr(consout_fd, TCSAFLUSH, &term); - - h = dlopen("/boot/userboot.so", RTLD_LOCAL); - if (!h) { - printf("%s\n", dlerror()); - return (1); - } - func = dlsym(h, "loader_main"); - if (!func) { - printf("%s\n", dlerror()); - return (1); - } - - addenv("smbios.bios.vendor=BHYVE"); - addenv("boot_serial=1"); - - func(&cb, NULL, USERBOOT_VERSION_3, ndisks); -} diff --git a/config.mk b/config.mk new file mode 100644 index 0000000..7818ce8 --- /dev/null +++ b/config.mk @@ -0,0 +1,73 @@ +############################################################################### +# Config # +# # +# [XHYVE_CONFIG_ASSERT] VMM asserts (disable for release builds?) # +# [XHYVE_CONFIG_TRACE] VMM event tracer # +# [XHYVE_CONFIG_STATS] VMM event profiler # +############################################################################### + +DEFINES := \ + -DXHYVE_CONFIG_ASSERT + +############################################################################### +# Toolchain # +############################################################################### + +CC := clang +AS := clang +LD := clang +STRIP := strip +DSYM := dsymutil + +ENV := \ + LANG=en_US.US-ASCII + +############################################################################### +# CFLAGS # +############################################################################### + +CFLAGS_OPT := \ + -Os \ + -flto \ + -fstrict-aliasing + +CFLAGS_WARN := \ + -Weverything \ + -Werror \ + -Wno-unknown-warning-option \ + -Wno-reserved-id-macro \ + -pedantic + +CFLAGS_DIAG := \ + -fmessage-length=152 \ + -fdiagnostics-show-note-include-stack \ + -fmacro-backtrace-limit=0 \ + -fcolor-diagnostics + +CFLAGS_DBG := \ + -g + +CFLAGS := \ + -arch x86_64 \ + -x c \ + -std=c11 \ + -fno-common \ + -fvisibility=hidden \ + $(DEFINES) \ + $(CFLAGS_OPT) \ + $(CFLAGS_WARN) \ + $(CFLAGS_DIAG) \ + $(CFLAGS_DBG) + +############################################################################### +# LDFLAGS # +############################################################################### + +LDFLAGS_DBG := \ + -Xlinker -object_path_lto + +LDFLAGS := \ + -arch x86_64 \ + -framework Hypervisor \ + -framework vmnet \ + $(LDFLAGS_DBG) diff --git a/bhyve/acpi.h b/include/xhyve/acpi.h similarity index 68% rename from bhyve/acpi.h rename to include/xhyve/acpi.h index 652164a..ebfb611 100644 --- a/bhyve/acpi.h +++ b/include/xhyve/acpi.h @@ -26,29 +26,27 @@ * $FreeBSD$ */ -#ifndef _ACPI_H_ -#define _ACPI_H_ +#pragma once -#define SCI_INT 9 +#include -#define SMI_CMD 0xb2 -#define BHYVE_ACPI_ENABLE 0xa0 -#define BHYVE_ACPI_DISABLE 0xa1 +#define SCI_INT 9 -#define PM1A_EVT_ADDR 0x400 -#define PM1A_CNT_ADDR 0x404 +#define SMI_CMD 0xb2 +#define BHYVE_ACPI_ENABLE 0xa0 +#define BHYVE_ACPI_DISABLE 0xa1 -#define IO_PMTMR 0x408 /* 4-byte i/o port for the timer */ +#define PM1A_EVT_ADDR 0x400 +#define PM1A_EVT_ADDR2 0x402 +#define PM1A_CNT_ADDR 0x404 -struct vmctx; +#define IO_PMTMR 0x408 /* 4-byte i/o port for the timer */ -int acpi_build(struct vmctx *ctx, int ncpu); -void dsdt_line(const char *fmt, ...); -void dsdt_fixed_ioport(uint16_t iobase, uint16_t length); -void dsdt_fixed_irq(uint8_t irq); -void dsdt_fixed_mem32(uint32_t base, uint32_t length); -void dsdt_indent(int levels); -void dsdt_unindent(int levels); -void sci_init(struct vmctx *ctx); - -#endif /* _ACPI_H_ */ +int acpi_build(int ncpu); +void dsdt_line(const char *fmt, ...); +void dsdt_fixed_ioport(uint16_t iobase, uint16_t length); +void dsdt_fixed_irq(uint8_t irq); +void dsdt_fixed_mem32(uint32_t base, uint32_t length); +void dsdt_indent(int levels); +void dsdt_unindent(int levels); +void sci_init(void); diff --git a/bhyve/ahci.h b/include/xhyve/ahci.h similarity index 96% rename from bhyve/ahci.h rename to include/xhyve/ahci.h index 1fd9f20..ec1916e 100644 --- a/bhyve/ahci.h +++ b/include/xhyve/ahci.h @@ -27,8 +27,7 @@ * $FreeBSD$ */ -#ifndef _AHCI_H_ -#define _AHCI_H_ +#pragma once /* ATA register defines */ #define ATA_DATA 0 /* (RW) data */ @@ -306,17 +305,15 @@ /* Just to be sure, if building as module. */ #if MAXPHYS < 512 * 1024 #undef MAXPHYS -#define MAXPHYS 512 * 1024 +#define MAXPHYS 512 * 1024 #endif /* Pessimistic prognosis on number of required S/G entries */ -#define AHCI_SG_ENTRIES (roundup(btoc(MAXPHYS) + 1, 8)) +#define AHCI_SG_ENTRIES (roundup(btoc(MAXPHYS) + 1, 8)) /* Command list. 32 commands. First, 1Kbyte aligned. */ -#define AHCI_CL_OFFSET 0 -#define AHCI_CL_SIZE 32 +#define AHCI_CL_OFFSET 0 +#define AHCI_CL_SIZE 32 /* Command tables. Up to 32 commands, Each, 128byte aligned. */ -#define AHCI_CT_OFFSET (AHCI_CL_OFFSET + AHCI_CL_SIZE * AHCI_MAX_SLOTS) -#define AHCI_CT_SIZE (128 + AHCI_SG_ENTRIES * 16) +#define AHCI_CT_OFFSET (AHCI_CL_OFFSET + AHCI_CL_SIZE * AHCI_MAX_SLOTS) +#define AHCI_CT_SIZE (128 + AHCI_SG_ENTRIES * 16) /* Total main work area. */ -#define AHCI_WORK_SIZE (AHCI_CT_OFFSET + AHCI_CT_SIZE * ch->numslots) - -#endif /* _AHCI_H_ */ +#define AHCI_WORK_SIZE (AHCI_CT_OFFSET + AHCI_CT_SIZE * ch->numslots) diff --git a/bhyve/block_if.h b/include/xhyve/block_if.h similarity index 62% rename from bhyve/block_if.h rename to include/xhyve/block_if.h index 8e63407..fecfdbc 100644 --- a/bhyve/block_if.h +++ b/include/xhyve/block_if.h @@ -33,38 +33,37 @@ * another thread. */ -#ifndef _BLOCK_IF_H_ -#define _BLOCK_IF_H_ +#pragma once #include #include -#define BLOCKIF_IOV_MAX 33 /* not practical to be IOV_MAX */ +#define BLOCKIF_IOV_MAX 33 /* not practical to be IOV_MAX */ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" struct blockif_req { - struct iovec br_iov[BLOCKIF_IOV_MAX]; - int br_iovcnt; - off_t br_offset; - ssize_t br_resid; - void (*br_callback)(struct blockif_req *req, int err); - void *br_param; + struct iovec br_iov[BLOCKIF_IOV_MAX]; + int br_iovcnt; + off_t br_offset; + ssize_t br_resid; + void (*br_callback)(struct blockif_req *req, int err); + void *br_param; }; +#pragma clang diagnostic pop struct blockif_ctxt; struct blockif_ctxt *blockif_open(const char *optstr, const char *ident); -off_t blockif_size(struct blockif_ctxt *bc); -void blockif_chs(struct blockif_ctxt *bc, uint16_t *c, uint8_t *h, - uint8_t *s); -int blockif_sectsz(struct blockif_ctxt *bc); -void blockif_psectsz(struct blockif_ctxt *bc, int *size, int *off); -int blockif_queuesz(struct blockif_ctxt *bc); -int blockif_is_ro(struct blockif_ctxt *bc); -int blockif_candelete(struct blockif_ctxt *bc); -int blockif_read(struct blockif_ctxt *bc, struct blockif_req *breq); -int blockif_write(struct blockif_ctxt *bc, struct blockif_req *breq); -int blockif_flush(struct blockif_ctxt *bc, struct blockif_req *breq); -int blockif_delete(struct blockif_ctxt *bc, struct blockif_req *breq); -int blockif_cancel(struct blockif_ctxt *bc, struct blockif_req *breq); -int blockif_close(struct blockif_ctxt *bc); - -#endif /* _BLOCK_IF_H_ */ +off_t blockif_size(struct blockif_ctxt *bc); +void blockif_chs(struct blockif_ctxt *bc, uint16_t *c, uint8_t *h, uint8_t *s); +int blockif_sectsz(struct blockif_ctxt *bc); +void blockif_psectsz(struct blockif_ctxt *bc, int *size, int *off); +int blockif_queuesz(struct blockif_ctxt *bc); +int blockif_is_ro(struct blockif_ctxt *bc); +int blockif_candelete(struct blockif_ctxt *bc); +int blockif_read(struct blockif_ctxt *bc, struct blockif_req *breq); +int blockif_write(struct blockif_ctxt *bc, struct blockif_req *breq); +int blockif_flush(struct blockif_ctxt *bc, struct blockif_req *breq); +int blockif_delete(struct blockif_ctxt *bc, struct blockif_req *breq); +int blockif_cancel(struct blockif_ctxt *bc, struct blockif_req *breq); +int blockif_close(struct blockif_ctxt *bc); diff --git a/bhyve/dbgport.h b/include/xhyve/dbgport.h similarity index 94% rename from bhyve/dbgport.h rename to include/xhyve/dbgport.h index 2ddcbf8..22a23af 100644 --- a/bhyve/dbgport.h +++ b/include/xhyve/dbgport.h @@ -26,9 +26,6 @@ * $FreeBSD$ */ -#ifndef _DBGPORT_H_ -#define _DBGPORT_H_ +#pragma once -void init_dbgport(int port); - -#endif +void init_dbgport(int port); diff --git a/include/xhyve/firmware/kexec.h b/include/xhyve/firmware/kexec.h new file mode 100644 index 0000000..791d963 --- /dev/null +++ b/include/xhyve/firmware/kexec.h @@ -0,0 +1,89 @@ +#pragma once + +#include + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpacked" +struct setup_header { + uint8_t setup_sects; /* The size of the setup in sectors */ + uint16_t root_flags; /* If set, the root is mounted readonly */ + uint32_t syssize; /* The size of the 32-bit code in 16-byte paras */ + uint16_t ram_size; /* DO NOT USE - for bootsect.S use only */ + uint16_t vid_mode; /* Video mode control */ + uint16_t root_dev; /* Default root device number */ + uint16_t boot_flag; /* 0xAA55 magic number */ + uint16_t jump; /* Jump instruction */ + uint32_t header; /* Magic signature "HdrS" */ + uint16_t version; /* Boot protocol version supported */ + uint32_t realmode_swtch; /* Boot loader hook (see below) */ + uint16_t start_sys_seg; /* The load-low segment (0x1000) (obsolete) */ + uint16_t kernel_version; /* Pointer to kernel version string */ + uint8_t type_of_loader; /* Boot loader identifier */ + uint8_t loadflags; /* Boot protocol option flags */ + uint16_t setup_move_size; /* Move to high memory size (used with hooks) */ + uint32_t code32_start; /* Boot loader hook (see below) */ + uint32_t ramdisk_image; /* initrd load address (set by boot loader) */ + uint32_t ramdisk_size; /* initrd size (set by boot loader) */ + uint32_t bootsect_kludge; /* DO NOT USE - for bootsect.S use only */ + uint16_t heap_end_ptr; /* Free memory after setup end */ + uint8_t ext_loader_ver; /* Extended boot loader version */ + uint8_t ext_loader_type; /* Extended boot loader ID */ + uint32_t cmd_line_ptr; /* 32-bit pointer to the kernel command line */ + uint32_t nitrd_addr_max; /* Highest legal initrd address */ + uint32_t kernel_alignment; /* Physical addr alignment required for kernel */ + uint8_t relocatable_kernel; /* Whether kernel is relocatable or not */ + uint8_t min_alignment; /* Minimum alignment, as a power of two */ + uint16_t xloadflags; /* Boot protocol option flags */ + uint32_t cmdline_size; /* Maximum size of the kernel command line */ + uint32_t hardware_subarch; /* Hardware subarchitecture */ + uint64_t hardware_subarch_data; /* Subarchitecture-specific data */ + uint32_t payload_offset; /* Offset of kernel payload */ + uint32_t payload_length; /* Length of kernel payload */ + uint64_t setup_data; /* 64bit pointer to linked list of struct setup_data */ + uint64_t pref_address; /* Preferred loading address */ + uint32_t init_size; /* Linear memory required during initialization */ + uint32_t handover_offset; /* Offset of handover entry point */ +} __attribute__((packed)); + +struct zero_page { + uint8_t screen_info[64]; + uint8_t apm_bios_info[20]; + uint8_t _0[4]; + uint64_t tboot_addr; + uint8_t ist_info[16]; + uint8_t _1[16]; + uint8_t hd0_info[16]; + uint8_t hd1_info[16]; + uint8_t sys_desc_table[16]; + uint8_t olpc_ofw_header[16]; + uint32_t ext_ramdisk_image; + uint32_t ext_ramdisk_size; + uint32_t ext_cmd_line_ptr; + uint8_t _2[116]; + uint8_t edid_info[128]; + uint8_t efi_info[32]; + uint32_t alt_mem_k; + uint32_t scratch; + uint8_t e820_entries; + uint8_t eddbuf_entries; + uint8_t edd_mbr_sig_buf_entries; + uint8_t kbd_status; + uint8_t _3[3]; + uint8_t sentinel; + uint8_t _4[1]; + struct setup_header setup_header; + uint8_t _5[(0x290 - 0x1f1 - sizeof(struct setup_header))]; + uint32_t edd_mbr_sig_buffer[16]; + struct { + uint64_t addr; + uint64_t size; + uint32_t type; + } __attribute__((packed)) e820_map[128]; + uint8_t _6[48]; + uint8_t eddbuf[492]; + uint8_t _7[276]; +} __attribute__((packed)); +#pragma clang diagnostic pop + +void kexec_init(char *kernel_path, char *initrd_path, char *cmdline); +uint64_t kexec(void); diff --git a/bhyve/inout.h b/include/xhyve/inout.h similarity index 61% rename from bhyve/inout.h rename to include/xhyve/inout.h index 7f39095..f2c6632 100644 --- a/bhyve/inout.h +++ b/include/xhyve/inout.h @@ -26,54 +26,54 @@ * $FreeBSD$ */ -#ifndef _INOUT_H_ -#define _INOUT_H_ +#pragma once -#include +#include +#include -struct vmctx; struct vm_exit; /* * inout emulation handlers return 0 on success and -1 on failure. */ -typedef int (*inout_func_t)(struct vmctx *ctx, int vcpu, int in, int port, - int bytes, uint32_t *eax, void *arg); +typedef int (*inout_func_t)(int vcpu, int in, int port, + int bytes, uint32_t *eax, void *arg); +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" struct inout_port { - const char *name; - int port; - int size; - int flags; - inout_func_t handler; - void *arg; + const char *name; + int port; + int size; + int flags; + inout_func_t handler; + void *arg; }; -#define IOPORT_F_IN 0x1 -#define IOPORT_F_OUT 0x2 -#define IOPORT_F_INOUT (IOPORT_F_IN | IOPORT_F_OUT) +#pragma clang diagnostic pop + +#define IOPORT_F_IN 0x1 +#define IOPORT_F_OUT 0x2 +#define IOPORT_F_INOUT (IOPORT_F_IN | IOPORT_F_OUT) /* * The following flags are used internally and must not be used by * device models. */ -#define IOPORT_F_DEFAULT 0x80000000 /* claimed by default handler */ +#define IOPORT_F_DEFAULT 0x80000000 /* claimed by default handler */ -#define INOUT_PORT(name, port, flags, handler) \ - static struct inout_port __CONCAT(__inout_port, __LINE__) = { \ - #name, \ - (port), \ - 1, \ - (flags), \ - (handler), \ - 0 \ - }; \ - DATA_SET(inout_port_set, __CONCAT(__inout_port, __LINE__)) - -void init_inout(void); -int emulate_inout(struct vmctx *, int vcpu, struct vm_exit *vmexit, - int strict); -int register_inout(struct inout_port *iop); -int unregister_inout(struct inout_port *iop); -void init_bvmcons(void); +#define INOUT_PORT(name, port, flags, handler) \ + static struct inout_port __CONCAT(__inout_port, port) = { \ + #name, \ + (port), \ + 1, \ + (flags), \ + (handler), \ + 0 \ + }; \ + DATA_SET(inout_port_set, __CONCAT(__inout_port, port)) -#endif /* _INOUT_H_ */ +void init_inout(void); +int emulate_inout(int vcpu, struct vm_exit *vmexit, int strict); +int register_inout(struct inout_port *iop); +int unregister_inout(struct inout_port *iop); +void init_bvmcons(void); diff --git a/bhyve/ioapic.h b/include/xhyve/ioapic.h similarity index 92% rename from bhyve/ioapic.h rename to include/xhyve/ioapic.h index efdd3c6..7f577ab 100644 --- a/bhyve/ioapic.h +++ b/include/xhyve/ioapic.h @@ -27,13 +27,10 @@ * $FreeBSD$ */ -#ifndef _IOAPIC_H_ -#define _IOAPIC_H_ +#pragma once /* * Allocate a PCI IRQ from the I/O APIC. */ -void ioapic_init(struct vmctx *ctx); -int ioapic_pci_alloc_irq(void); - -#endif +void ioapic_init(void); +int ioapic_pci_alloc_irq(void); diff --git a/bhyve/mem.h b/include/xhyve/mem.h similarity index 63% rename from bhyve/mem.h rename to include/xhyve/mem.h index f671eae..17d68f3 100644 --- a/bhyve/mem.h +++ b/include/xhyve/mem.h @@ -26,36 +26,36 @@ * $FreeBSD$ */ -#ifndef _MEM_H_ -#define _MEM_H_ +#pragma once -#include +#include +#include -struct vmctx; - -typedef int (*mem_func_t)(struct vmctx *ctx, int vcpu, int dir, uint64_t addr, - int size, uint64_t *val, void *arg1, long arg2); +typedef int (*mem_func_t)(int vcpu, int dir, uint64_t addr, int size, + uint64_t *val, void *arg1, long arg2); +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" struct mem_range { - const char *name; - int flags; - mem_func_t handler; - void *arg1; - long arg2; - uint64_t base; - uint64_t size; + const char *name; + int flags; + mem_func_t handler; + void *arg1; + long arg2; + uint64_t base; + uint64_t size; }; -#define MEM_F_READ 0x1 -#define MEM_F_WRITE 0x2 -#define MEM_F_RW 0x3 -#define MEM_F_IMMUTABLE 0x4 /* mem_range cannot be unregistered */ +#pragma clang diagnostic pop -void init_mem(void); -int emulate_mem(struct vmctx *, int vcpu, uint64_t paddr, struct vie *vie, - struct vm_guest_paging *paging); - -int register_mem(struct mem_range *memp); -int register_mem_fallback(struct mem_range *memp); -int unregister_mem(struct mem_range *memp); +#define MEM_F_READ 0x1 +#define MEM_F_WRITE 0x2 +#define MEM_F_RW 0x3 +#define MEM_F_IMMUTABLE 0x4 /* mem_range cannot be unregistered */ -#endif /* _MEM_H_ */ +void init_mem(void); +int emulate_mem(int vcpu, uint64_t paddr, struct vie *vie, + struct vm_guest_paging *paging); + +int register_mem(struct mem_range *memp); +int register_mem_fallback(struct mem_range *memp); +int unregister_mem(struct mem_range *memp); diff --git a/bhyve/mevent.h b/include/xhyve/mevent.h similarity index 79% rename from bhyve/mevent.h rename to include/xhyve/mevent.h index d6a59c6..48866bd 100644 --- a/bhyve/mevent.h +++ b/include/xhyve/mevent.h @@ -26,8 +26,7 @@ * $FreeBSD$ */ -#ifndef _MEVENT_H_ -#define _MEVENT_H_ +#pragma once enum ev_type { EVF_READ, @@ -38,14 +37,11 @@ enum ev_type { struct mevent; -struct mevent *mevent_add(int fd, enum ev_type type, - void (*func)(int, enum ev_type, void *), - void *param); -int mevent_enable(struct mevent *evp); -int mevent_disable(struct mevent *evp); -int mevent_delete(struct mevent *evp); -int mevent_delete_close(struct mevent *evp); +struct mevent *mevent_add(int fd, enum ev_type type, + void (*func)(int, enum ev_type, void *), void *param); +int mevent_enable(struct mevent *evp); +int mevent_disable(struct mevent *evp); +int mevent_delete(struct mevent *evp); +int mevent_delete_close(struct mevent *evp); -void mevent_dispatch(void); - -#endif /* _MEVENT_H_ */ +void mevent_dispatch(void); diff --git a/bhyve/mptbl.h b/include/xhyve/mptbl.h similarity index 89% rename from bhyve/mptbl.h rename to include/xhyve/mptbl.h index e9e1c42..df1b9e2 100644 --- a/bhyve/mptbl.h +++ b/include/xhyve/mptbl.h @@ -26,10 +26,7 @@ * $FreeBSD$ */ -#ifndef _MPTBL_H_ -#define _MPTBL_H_ +#pragma once -int mptable_build(struct vmctx *ctx, int ncpu); -void mptable_add_oemtbl(void *tbl, int tblsz); - -#endif /* _MPTBL_H_ */ +int mptable_build(int ncpu); +void mptable_add_oemtbl(void *tbl, int tblsz); diff --git a/include/xhyve/pci_emul.h b/include/xhyve/pci_emul.h new file mode 100644 index 0000000..04fcd7f --- /dev/null +++ b/include/xhyve/pci_emul.h @@ -0,0 +1,278 @@ +/*- + * Copyright (c) 2011 NetApp, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY NETAPP, INC ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL NETAPP, INC OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#pragma once + +#include +#include +#include +#include +#include +#include + +#define PCI_BARMAX PCIR_MAX_BAR_0 /* BAR registers in a Type 0 header */ + +struct pci_devinst; +struct memory_region; + +struct pci_devemu { + /* name of device emulation */ + char *pe_emu; + /* instance creation */ + int (*pe_init)(struct pci_devinst *, char *opts); + /* ACPI DSDT enumeration */ + void (*pe_write_dsdt)(struct pci_devinst *); + /* config space read/write callbacks */ + int (*pe_cfgwrite)(int vcpu, struct pci_devinst *pi, + int offset, int bytes, uint32_t val); + int (*pe_cfgread)(int vcpu, struct pci_devinst *pi, int offset, int bytes, + uint32_t *retval); + /* BAR read/write callbacks */ + void (*pe_barwrite)(int vcpu, struct pci_devinst *pi, int baridx, + uint64_t offset, int size, uint64_t value); + uint64_t (*pe_barread)(int vcpu, struct pci_devinst *pi, int baridx, + uint64_t offset, int size); +}; + +#define PCI_EMUL_SET(x) DATA_SET(pci_devemu_set, x) + +enum pcibar_type { + PCIBAR_NONE, + PCIBAR_IO, + PCIBAR_MEM32, + PCIBAR_MEM64, + PCIBAR_MEMHI64 +}; + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" +struct pcibar { + enum pcibar_type type; /* io or memory */ + uint64_t size; + uint64_t addr; +}; +#pragma clang diagnostic pop + +#define PI_NAMESZ 40 + +struct msix_table_entry { + uint64_t addr; + uint32_t msg_data; + uint32_t vector_control; +}; + +/* + * In case the structure is modified to hold extra information, use a define + * for the size that should be emulated. + */ +#define MSIX_TABLE_ENTRY_SIZE 16 +#define MAX_MSIX_TABLE_ENTRIES 2048 +#define PBA_SIZE(msgnum) (roundup2((msgnum), 64) / 8) + +enum lintr_stat { + IDLE, + ASSERTED, + PENDING +}; + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" +struct pci_devinst { + struct pci_devemu *pi_d; + uint8_t pi_bus, pi_slot, pi_func; + char pi_name[PI_NAMESZ]; + int pi_bar_getsize; + int pi_prevcap; + int pi_capend; + + struct { + int8_t pin; + enum lintr_stat state; + int pirq_pin; + int ioapic_irq; + pthread_mutex_t lock; + } pi_lintr; + + struct { + int enabled; + uint64_t addr; + uint64_t msg_data; + int maxmsgnum; + } pi_msi; + + struct { + int enabled; + int table_bar; + int pba_bar; + uint32_t table_offset; + int table_count; + uint32_t pba_offset; + int pba_size; + int function_mask; + struct msix_table_entry *table; /* allocated at runtime */ + } pi_msix; + + void *pi_arg; /* devemu-private data */ + + u_char pi_cfgdata[PCI_REGMAX + 1]; + struct pcibar pi_bar[PCI_BARMAX + 1]; +}; +#pragma clang diagnostic pop + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpacked" +struct msicap { + uint8_t capid; + uint8_t nextptr; + uint16_t msgctrl; + uint32_t addrlo; + uint32_t addrhi; + uint16_t msgdata; +} __packed; + +struct msixcap { + uint8_t capid; + uint8_t nextptr; + uint16_t msgctrl; + uint32_t table_info; /* bar index and offset within it */ + uint32_t pba_info; /* bar index and offset within it */ +} __packed; + +struct pciecap { + uint8_t capid; + uint8_t nextptr; + uint16_t pcie_capabilities; + + uint32_t dev_capabilities; /* all devices */ + uint16_t dev_control; + uint16_t dev_status; + + uint32_t link_capabilities; /* devices with links */ + uint16_t link_control; + uint16_t link_status; + + uint32_t slot_capabilities; /* ports with slots */ + uint16_t slot_control; + uint16_t slot_status; + + uint16_t root_control; /* root ports */ + uint16_t root_capabilities; + uint32_t root_status; + + uint32_t dev_capabilities2; /* all devices */ + uint16_t dev_control2; + uint16_t dev_status2; + + uint32_t link_capabilities2; /* devices with links */ + uint16_t link_control2; + uint16_t link_status2; + + uint32_t slot_capabilities2; /* ports with slots */ + uint16_t slot_control2; + uint16_t slot_status2; +} __packed; +#pragma clang diagnostic pop + +typedef void (*pci_lintr_cb)(int b, int s, int pin, int pirq_pin, + int ioapic_irq, void *arg); + +int init_pci(void); +void msicap_cfgwrite(struct pci_devinst *pi, int capoff, int offset, + int bytes, uint32_t val); +void msixcap_cfgwrite(struct pci_devinst *pi, int capoff, int offset, + int bytes, uint32_t val); +void pci_callback(void); +int pci_emul_alloc_bar(struct pci_devinst *pdi, int idx, + enum pcibar_type type, uint64_t size); +int pci_emul_alloc_pbar(struct pci_devinst *pdi, int idx, + uint64_t hostbase, enum pcibar_type type, uint64_t size); +int pci_emul_add_msicap(struct pci_devinst *pi, int msgnum); +int pci_emul_add_pciecap(struct pci_devinst *pi, int pcie_device_type); +void pci_generate_msi(struct pci_devinst *pi, int msgnum); +void pci_generate_msix(struct pci_devinst *pi, int msgnum); +void pci_lintr_assert(struct pci_devinst *pi); +void pci_lintr_deassert(struct pci_devinst *pi); +void pci_lintr_request(struct pci_devinst *pi); +int pci_msi_enabled(struct pci_devinst *pi); +int pci_msix_enabled(struct pci_devinst *pi); +int pci_msix_table_bar(struct pci_devinst *pi); +int pci_msix_pba_bar(struct pci_devinst *pi); +int pci_msi_msgnum(struct pci_devinst *pi); +int pci_parse_slot(char *opt); +void pci_populate_msicap(struct msicap *cap, int msgs, int nextptr); +int pci_emul_add_msixcap(struct pci_devinst *pi, int msgnum, int barnum); +int pci_emul_msix_twrite(struct pci_devinst *pi, uint64_t offset, int size, + uint64_t value); +uint64_t pci_emul_msix_tread(struct pci_devinst *pi, uint64_t offset, int size); +int pci_count_lintr(int bus); +void pci_walk_lintr(int bus, pci_lintr_cb cb, void *arg); +void pci_write_dsdt(void); +uint64_t pci_ecfg_base(void); +int pci_bus_configured(int bus); + +static __inline void +pci_set_cfgdata8(struct pci_devinst *pi, int offset, uint8_t val) +{ + assert(offset <= PCI_REGMAX); + *(uint8_t *)(((uintptr_t) &pi->pi_cfgdata) + ((unsigned) offset)) = val; +} + +static __inline void +pci_set_cfgdata16(struct pci_devinst *pi, int offset, uint16_t val) +{ + assert(offset <= (PCI_REGMAX - 1) && (offset & 1) == 0); + *(uint16_t *)(((uintptr_t) &pi->pi_cfgdata) + ((unsigned) offset)) = val; +} + +static __inline void +pci_set_cfgdata32(struct pci_devinst *pi, int offset, uint32_t val) +{ + assert(offset <= (PCI_REGMAX - 3) && (offset & 3) == 0); + *(uint32_t *)(((uintptr_t) &pi->pi_cfgdata) + ((unsigned) offset)) = val; +} + +static __inline uint8_t +pci_get_cfgdata8(struct pci_devinst *pi, int offset) +{ + assert(offset <= PCI_REGMAX); + return (*(uint8_t *)(((uintptr_t) &pi->pi_cfgdata) + ((unsigned) offset))); +} + +static __inline uint16_t +pci_get_cfgdata16(struct pci_devinst *pi, int offset) +{ + assert(offset <= (PCI_REGMAX - 1) && (offset & 1) == 0); + return (*(uint16_t *)(((uintptr_t) &pi->pi_cfgdata) + ((unsigned) offset))); +} + +static __inline uint32_t +pci_get_cfgdata32(struct pci_devinst *pi, int offset) +{ + assert(offset <= (PCI_REGMAX - 3) && (offset & 3) == 0); + return (*(uint32_t *)(((uintptr_t) &pi->pi_cfgdata) + ((unsigned) offset))); +} diff --git a/bhyve/pci_irq.h b/include/xhyve/pci_irq.h similarity index 78% rename from bhyve/pci_irq.h rename to include/xhyve/pci_irq.h index 24f9c99..76b72dd 100644 --- a/bhyve/pci_irq.h +++ b/include/xhyve/pci_irq.h @@ -27,19 +27,16 @@ * $FreeBSD$ */ -#ifndef __PCI_IRQ_H__ -#define __PCI_IRQ_H__ +#pragma once struct pci_devinst; -void pci_irq_assert(struct pci_devinst *pi); -void pci_irq_deassert(struct pci_devinst *pi); -void pci_irq_init(struct vmctx *ctx); -void pci_irq_reserve(int irq); -void pci_irq_use(int irq); -int pirq_alloc_pin(struct vmctx *ctx); -int pirq_irq(int pin); -uint8_t pirq_read(int pin); -void pirq_write(struct vmctx *ctx, int pin, uint8_t val); - -#endif +void pci_irq_assert(struct pci_devinst *pi); +void pci_irq_deassert(struct pci_devinst *pi); +void pci_irq_init(void); +void pci_irq_reserve(int irq); +void pci_irq_use(int irq); +int pirq_alloc_pin(void); +int pirq_irq(int pin); +uint8_t pirq_read(int pin); +void pirq_write(int pin, uint8_t val); diff --git a/bhyve/pci_lpc.h b/include/xhyve/pci_lpc.h similarity index 67% rename from bhyve/pci_lpc.h rename to include/xhyve/pci_lpc.h index 55a5865..7e8ed3c 100644 --- a/bhyve/pci_lpc.h +++ b/include/xhyve/pci_lpc.h @@ -26,10 +26,10 @@ * $FreeBSD$ */ -#ifndef _LPC_H_ -#define _LPC_H_ +#pragma once -#include +#include +#include typedef void (*lpc_write_dsdt_t)(void); @@ -37,36 +37,37 @@ struct lpc_dsdt { lpc_write_dsdt_t handler; }; -#define LPC_DSDT(handler) \ - static struct lpc_dsdt __CONCAT(__lpc_dsdt, __LINE__) = { \ - (handler), \ - }; \ - DATA_SET(lpc_dsdt_set, __CONCAT(__lpc_dsdt, __LINE__)) +#define LPC_DSDT(handler) \ + static struct lpc_dsdt __CONCAT(__lpc_dsdt, handler) = { \ + (handler), \ + }; \ + DATA_SET(lpc_dsdt_set, __CONCAT(__lpc_dsdt, handler)) enum lpc_sysres_type { LPC_SYSRES_IO, LPC_SYSRES_MEM }; +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" struct lpc_sysres { enum lpc_sysres_type type; uint32_t base; uint32_t length; }; +#pragma clang diagnostic pop -#define LPC_SYSRES(type, base, length) \ - static struct lpc_sysres __CONCAT(__lpc_sysres, __LINE__) = { \ - (type), \ - (base), \ - (length) \ - }; \ - DATA_SET(lpc_sysres_set, __CONCAT(__lpc_sysres, __LINE__)) +#define LPC_SYSRES(type, base, length) \ + static struct lpc_sysres __CONCAT(__lpc_sysres, base) = {\ + (type), \ + (base), \ + (length) \ + }; \ + DATA_SET(lpc_sysres_set, __CONCAT(__lpc_sysres, base)) -#define SYSRES_IO(base, length) LPC_SYSRES(LPC_SYSRES_IO, base, length) -#define SYSRES_MEM(base, length) LPC_SYSRES(LPC_SYSRES_MEM, base, length) +#define SYSRES_IO(base, length) LPC_SYSRES(LPC_SYSRES_IO, base, length) +#define SYSRES_MEM(base, length) LPC_SYSRES(LPC_SYSRES_MEM, base, length) -int lpc_device_parse(const char *opt); -char *lpc_pirq_name(int pin); -void lpc_pirq_routed(void); - -#endif +int lpc_device_parse(const char *opt); +char *lpc_pirq_name(int pin); +void lpc_pirq_routed(void); diff --git a/bhyve/rtc.h b/include/xhyve/rtc.h similarity index 92% rename from bhyve/rtc.h rename to include/xhyve/rtc.h index 5b08ca3..0437564 100644 --- a/bhyve/rtc.h +++ b/include/xhyve/rtc.h @@ -26,9 +26,7 @@ * $FreeBSD$ */ -#ifndef _RTC_H_ -#define _RTC_H_ +#pragma once -void rtc_init(struct vmctx *ctx, int use_localtime); +void rtc_init(int use_localtime); -#endif /* _RTC_H_ */ diff --git a/bhyve/smbiostbl.h b/include/xhyve/smbiostbl.h similarity index 91% rename from bhyve/smbiostbl.h rename to include/xhyve/smbiostbl.h index e8b3a4f..a860419 100644 --- a/bhyve/smbiostbl.h +++ b/include/xhyve/smbiostbl.h @@ -26,11 +26,6 @@ * $FreeBSD$ */ -#ifndef _SMBIOSTBL_H_ -#define _SMBIOSTBL_H_ +#pragma once -struct vmctx; - -int smbios_build(struct vmctx *ctx); - -#endif /* _SMBIOSTBL_H_ */ +int smbios_build(void); diff --git a/include/xhyve/support/acpi_hpet.h b/include/xhyve/support/acpi_hpet.h new file mode 100644 index 0000000..034d6af --- /dev/null +++ b/include/xhyve/support/acpi_hpet.h @@ -0,0 +1,64 @@ +/*- + * Copyright (c) 2005 Poul-Henning Kamp + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#pragma once + +#define HPET_MEM_WIDTH 0x400 /* Expected memory region size */ + +/* General registers */ +#define HPET_CAPABILITIES 0x0 /* General capabilities and ID */ +#define HPET_CAP_VENDOR_ID 0xffff0000 +#define HPET_CAP_LEG_RT 0x00008000 +#define HPET_CAP_COUNT_SIZE 0x00002000 /* 1 = 64-bit, 0 = 32-bit */ +#define HPET_CAP_NUM_TIM 0x00001f00 +#define HPET_CAP_REV_ID 0x000000ff +#define HPET_PERIOD 0x4 /* Period (1/hz) of timer */ +#define HPET_CONFIG 0x10 /* General configuration register */ +#define HPET_CNF_LEG_RT 0x00000002 +#define HPET_CNF_ENABLE 0x00000001 +#define HPET_ISR 0x20 /* General interrupt status register */ +#define HPET_MAIN_COUNTER 0xf0 /* Main counter register */ + +/* Timer registers */ +#define HPET_TIMER_CAP_CNF(x) ((x) * 0x20 + 0x100) +#define HPET_TCAP_INT_ROUTE 0xffffffff00000000 +#define HPET_TCAP_FSB_INT_DEL 0x00008000 +#define HPET_TCNF_FSB_EN 0x00004000 +#define HPET_TCNF_INT_ROUTE 0x00003e00 +#define HPET_TCNF_32MODE 0x00000100 +#define HPET_TCNF_VAL_SET 0x00000040 +#define HPET_TCAP_SIZE 0x00000020 /* 1 = 64-bit, 0 = 32-bit */ +#define HPET_TCAP_PER_INT 0x00000010 /* Supports periodic interrupts */ +#define HPET_TCNF_TYPE 0x00000008 /* 1 = periodic, 0 = one-shot */ +#define HPET_TCNF_INT_ENB 0x00000004 +#define HPET_TCNF_INT_TYPE 0x00000002 /* 1 = level triggered, 0 = edge */ +#define HPET_TIMER_COMPARATOR(x) ((x) * 0x20 + 0x108) +#define HPET_TIMER_FSB_VAL(x) ((x) * 0x20 + 0x110) +#define HPET_TIMER_FSB_ADDR(x) ((x) * 0x20 + 0x114) + +#define HPET_MIN_CYCLES 128 /* Period considered reliable. */ diff --git a/include/xhyve/support/apicreg.h b/include/xhyve/support/apicreg.h new file mode 100644 index 0000000..a36ccd5 --- /dev/null +++ b/include/xhyve/support/apicreg.h @@ -0,0 +1,509 @@ +/*- + * Copyright (c) 1996, by Peter Wemm and Steve Passe + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. The name of the developer may NOT be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#pragma once + +#include + +/* + * Local && I/O APIC definitions. + */ + +/* + * Pentium P54C+ Built-in APIC + * (Advanced programmable Interrupt Controller) + * + * Base Address of Built-in APIC in memory location + * is 0xfee00000. + * + * Map of APIC Registers: + * + * Offset (hex) Description Read/Write state + * 000 Reserved + * 010 Reserved + * 020 ID Local APIC ID R/W + * 030 VER Local APIC Version R + * 040 Reserved + * 050 Reserved + * 060 Reserved + * 070 Reserved + * 080 Task Priority Register R/W + * 090 Arbitration Priority Register R + * 0A0 Processor Priority Register R + * 0B0 EOI Register W + * 0C0 RRR Remote read R + * 0D0 Logical Destination R/W + * 0E0 Destination Format Register 0..27 R; 28..31 R/W + * 0F0 SVR Spurious Interrupt Vector Reg. 0..3 R; 4..9 R/W + * 100 ISR 000-031 R + * 110 ISR 032-063 R + * 120 ISR 064-095 R + * 130 ISR 095-128 R + * 140 ISR 128-159 R + * 150 ISR 160-191 R + * 160 ISR 192-223 R + * 170 ISR 224-255 R + * 180 TMR 000-031 R + * 190 TMR 032-063 R + * 1A0 TMR 064-095 R + * 1B0 TMR 095-128 R + * 1C0 TMR 128-159 R + * 1D0 TMR 160-191 R + * 1E0 TMR 192-223 R + * 1F0 TMR 224-255 R + * 200 IRR 000-031 R + * 210 IRR 032-063 R + * 220 IRR 064-095 R + * 230 IRR 095-128 R + * 240 IRR 128-159 R + * 250 IRR 160-191 R + * 260 IRR 192-223 R + * 270 IRR 224-255 R + * 280 Error Status Register R + * 290 Reserved + * 2A0 Reserved + * 2B0 Reserved + * 2C0 Reserved + * 2D0 Reserved + * 2E0 Reserved + * 2F0 Local Vector Table (CMCI) R/W + * 300 ICR_LOW Interrupt Command Reg. (0-31) R/W + * 310 ICR_HI Interrupt Command Reg. (32-63) R/W + * 320 Local Vector Table (Timer) R/W + * 330 Local Vector Table (Thermal) R/W (PIV+) + * 340 Local Vector Table (Performance) R/W (P6+) + * 350 LVT1 Local Vector Table (LINT0) R/W + * 360 LVT2 Local Vector Table (LINT1) R/W + * 370 LVT3 Local Vector Table (ERROR) R/W + * 380 Initial Count Reg. for Timer R/W + * 390 Current Count of Timer R + * 3A0 Reserved + * 3B0 Reserved + * 3C0 Reserved + * 3D0 Reserved + * 3E0 Timer Divide Configuration Reg. R/W + * 3F0 Reserved + */ + + +/****************************************************************************** + * global defines, etc. + */ + + +/****************************************************************************** + * LOCAL APIC structure + */ + +#define PAD3 int : 32; int : 32; int : 32 +#define PAD4 int : 32; int : 32; int : 32; int : 32 + +struct LAPIC { + /* reserved */ PAD4; + /* reserved */ PAD4; + uint32_t id; PAD3; + uint32_t version; PAD3; + /* reserved */ PAD4; + /* reserved */ PAD4; + /* reserved */ PAD4; + /* reserved */ PAD4; + uint32_t tpr; PAD3; + uint32_t apr; PAD3; + uint32_t ppr; PAD3; + uint32_t eoi; PAD3; + /* reserved */ PAD4; + uint32_t ldr; PAD3; + uint32_t dfr; PAD3; + uint32_t svr; PAD3; + uint32_t isr0; PAD3; + uint32_t isr1; PAD3; + uint32_t isr2; PAD3; + uint32_t isr3; PAD3; + uint32_t isr4; PAD3; + uint32_t isr5; PAD3; + uint32_t isr6; PAD3; + uint32_t isr7; PAD3; + uint32_t tmr0; PAD3; + uint32_t tmr1; PAD3; + uint32_t tmr2; PAD3; + uint32_t tmr3; PAD3; + uint32_t tmr4; PAD3; + uint32_t tmr5; PAD3; + uint32_t tmr6; PAD3; + uint32_t tmr7; PAD3; + uint32_t irr0; PAD3; + uint32_t irr1; PAD3; + uint32_t irr2; PAD3; + uint32_t irr3; PAD3; + uint32_t irr4; PAD3; + uint32_t irr5; PAD3; + uint32_t irr6; PAD3; + uint32_t irr7; PAD3; + uint32_t esr; PAD3; + /* reserved */ PAD4; + /* reserved */ PAD4; + /* reserved */ PAD4; + /* reserved */ PAD4; + /* reserved */ PAD4; + /* reserved */ PAD4; + uint32_t lvt_cmci; PAD3; + uint32_t icr_lo; PAD3; + uint32_t icr_hi; PAD3; + uint32_t lvt_timer; PAD3; + uint32_t lvt_thermal; PAD3; + uint32_t lvt_pcint; PAD3; + uint32_t lvt_lint0; PAD3; + uint32_t lvt_lint1; PAD3; + uint32_t lvt_error; PAD3; + uint32_t icr_timer; PAD3; + uint32_t ccr_timer; PAD3; + /* reserved */ PAD4; + /* reserved */ PAD4; + /* reserved */ PAD4; + /* reserved */ PAD4; + uint32_t dcr_timer; PAD3; + /* reserved */ PAD4; +}; + +typedef struct LAPIC lapic_t; + +enum LAPIC_REGISTERS { + LAPIC_ID = 0x2, + LAPIC_VERSION = 0x3, + LAPIC_TPR = 0x8, + LAPIC_APR = 0x9, + LAPIC_PPR = 0xa, + LAPIC_EOI = 0xb, + LAPIC_LDR = 0xd, + LAPIC_DFR = 0xe, /* Not in x2APIC */ + LAPIC_SVR = 0xf, + LAPIC_ISR0 = 0x10, + LAPIC_ISR1 = 0x11, + LAPIC_ISR2 = 0x12, + LAPIC_ISR3 = 0x13, + LAPIC_ISR4 = 0x14, + LAPIC_ISR5 = 0x15, + LAPIC_ISR6 = 0x16, + LAPIC_ISR7 = 0x17, + LAPIC_TMR0 = 0x18, + LAPIC_TMR1 = 0x19, + LAPIC_TMR2 = 0x1a, + LAPIC_TMR3 = 0x1b, + LAPIC_TMR4 = 0x1c, + LAPIC_TMR5 = 0x1d, + LAPIC_TMR6 = 0x1e, + LAPIC_TMR7 = 0x1f, + LAPIC_IRR0 = 0x20, + LAPIC_IRR1 = 0x21, + LAPIC_IRR2 = 0x22, + LAPIC_IRR3 = 0x23, + LAPIC_IRR4 = 0x24, + LAPIC_IRR5 = 0x25, + LAPIC_IRR6 = 0x26, + LAPIC_IRR7 = 0x27, + LAPIC_ESR = 0x28, + LAPIC_LVT_CMCI = 0x2f, + LAPIC_ICR_LO = 0x30, + LAPIC_ICR_HI = 0x31, /* Not in x2APIC */ + LAPIC_LVT_TIMER = 0x32, + LAPIC_LVT_THERMAL = 0x33, + LAPIC_LVT_PCINT = 0x34, + LAPIC_LVT_LINT0 = 0x35, + LAPIC_LVT_LINT1 = 0x36, + LAPIC_LVT_ERROR = 0x37, + LAPIC_ICR_TIMER = 0x38, + LAPIC_CCR_TIMER = 0x39, + LAPIC_DCR_TIMER = 0x3e, + LAPIC_SELF_IPI = 0x3f, /* Only in x2APIC */ +}; + +/* + * The LAPIC_SELF_IPI register only exists in x2APIC mode. The + * formula below is applicable only to reserve the memory region, + * i.e. for xAPIC mode, where LAPIC_SELF_IPI finely serves as the + * address past end of the region. + */ +#define LAPIC_MEM_REGION (LAPIC_SELF_IPI * 0x10) + +#define LAPIC_MEM_MUL 0x10 + +/****************************************************************************** + * I/O APIC structure + */ + +struct IOAPIC { + uint32_t ioregsel; PAD3; + uint32_t iowin; PAD3; +}; + +typedef struct IOAPIC ioapic_t; + +#undef PAD4 +#undef PAD3 + + +/****************************************************************************** + * various code 'logical' values + */ + +/****************************************************************************** + * LOCAL APIC defines + */ + +/* default physical locations of LOCAL (CPU) APICs */ +#define DEFAULT_APIC_BASE 0xfee00000 + +/* constants relating to APIC ID registers */ +#define APIC_ID_MASK 0xff000000 +#define APIC_ID_SHIFT 24 +#define APIC_ID_CLUSTER 0xf0 +#define APIC_ID_CLUSTER_ID 0x0f +#define APIC_MAX_CLUSTER 0xe +#define APIC_MAX_INTRACLUSTER_ID 3 +#define APIC_ID_CLUSTER_SHIFT 4 + +/* fields in VER */ +#define APIC_VER_VERSION 0x000000ff +#define APIC_VER_MAXLVT 0x00ff0000 +#define MAXLVTSHIFT 16 +#define APIC_VER_EOI_SUPPRESSION 0x01000000 + +/* fields in LDR */ +#define APIC_LDR_RESERVED 0x00ffffff + +/* fields in DFR */ +#define APIC_DFR_RESERVED 0x0fffffff +#define APIC_DFR_MODEL_MASK 0xf0000000 +#define APIC_DFR_MODEL_FLAT 0xf0000000 +#define APIC_DFR_MODEL_CLUSTER 0x00000000 + +/* fields in SVR */ +#define APIC_SVR_VECTOR 0x000000ff +#define APIC_SVR_VEC_PROG 0x000000f0 +#define APIC_SVR_VEC_FIX 0x0000000f +#define APIC_SVR_ENABLE 0x00000100 +# define APIC_SVR_SWDIS 0x00000000 +# define APIC_SVR_SWEN 0x00000100 +#define APIC_SVR_FOCUS 0x00000200 +# define APIC_SVR_FEN 0x00000000 +# define APIC_SVR_FDIS 0x00000200 +#define APIC_SVR_EOI_SUPPRESSION 0x00001000 + +/* fields in TPR */ +#define APIC_TPR_PRIO 0x000000ff +# define APIC_TPR_INT 0x000000f0 +# define APIC_TPR_SUB 0x0000000f + +/* fields in ESR */ +#define APIC_ESR_SEND_CS_ERROR 0x00000001 +#define APIC_ESR_RECEIVE_CS_ERROR 0x00000002 +#define APIC_ESR_SEND_ACCEPT 0x00000004 +#define APIC_ESR_RECEIVE_ACCEPT 0x00000008 +#define APIC_ESR_SEND_ILLEGAL_VECTOR 0x00000020 +#define APIC_ESR_RECEIVE_ILLEGAL_VECTOR 0x00000040 +#define APIC_ESR_ILLEGAL_REGISTER 0x00000080 + +/* fields in ICR_LOW */ +#define APIC_VECTOR_MASK 0x000000ff + +#define APIC_DELMODE_MASK 0x00000700 +# define APIC_DELMODE_FIXED 0x00000000 +# define APIC_DELMODE_LOWPRIO 0x00000100 +# define APIC_DELMODE_SMI 0x00000200 +# define APIC_DELMODE_RR 0x00000300 +# define APIC_DELMODE_NMI 0x00000400 +# define APIC_DELMODE_INIT 0x00000500 +# define APIC_DELMODE_STARTUP 0x00000600 +# define APIC_DELMODE_RESV 0x00000700 + +#define APIC_DESTMODE_MASK 0x00000800 +# define APIC_DESTMODE_PHY 0x00000000 +# define APIC_DESTMODE_LOG 0x00000800 + +#define APIC_DELSTAT_MASK 0x00001000 +# define APIC_DELSTAT_IDLE 0x00000000 +# define APIC_DELSTAT_PEND 0x00001000 + +#define APIC_RESV1_MASK 0x00002000 + +#define APIC_LEVEL_MASK 0x00004000 +# define APIC_LEVEL_DEASSERT 0x00000000 +# define APIC_LEVEL_ASSERT 0x00004000 + +#define APIC_TRIGMOD_MASK 0x00008000 +# define APIC_TRIGMOD_EDGE 0x00000000 +# define APIC_TRIGMOD_LEVEL 0x00008000 + +#define APIC_RRSTAT_MASK 0x00030000 +# define APIC_RRSTAT_INVALID 0x00000000 +# define APIC_RRSTAT_INPROG 0x00010000 +# define APIC_RRSTAT_VALID 0x00020000 +# define APIC_RRSTAT_RESV 0x00030000 + +#define APIC_DEST_MASK 0x000c0000 +# define APIC_DEST_DESTFLD 0x00000000 +# define APIC_DEST_SELF 0x00040000 +# define APIC_DEST_ALLISELF 0x00080000 +# define APIC_DEST_ALLESELF 0x000c0000 + +#define APIC_RESV2_MASK 0xfff00000 + +#define APIC_ICRLO_RESV_MASK (APIC_RESV1_MASK | APIC_RESV2_MASK) + +/* fields in LVT1/2 */ +#define APIC_LVT_VECTOR 0x000000ff +#define APIC_LVT_DM 0x00000700 +# define APIC_LVT_DM_FIXED 0x00000000 +# define APIC_LVT_DM_SMI 0x00000200 +# define APIC_LVT_DM_NMI 0x00000400 +# define APIC_LVT_DM_INIT 0x00000500 +# define APIC_LVT_DM_EXTINT 0x00000700 +#define APIC_LVT_DS 0x00001000 +#define APIC_LVT_IIPP 0x00002000 +#define APIC_LVT_IIPP_INTALO 0x00002000 +#define APIC_LVT_IIPP_INTAHI 0x00000000 +#define APIC_LVT_RIRR 0x00004000 +#define APIC_LVT_TM 0x00008000 +#define APIC_LVT_M 0x00010000 + + +/* fields in LVT Timer */ +#define APIC_LVTT_VECTOR 0x000000ff +#define APIC_LVTT_DS 0x00001000 +#define APIC_LVTT_M 0x00010000 +#define APIC_LVTT_TM 0x00020000 +# define APIC_LVTT_TM_ONE_SHOT 0x00000000 +# define APIC_LVTT_TM_PERIODIC 0x00020000 + + +/* APIC timer current count */ +#define APIC_TIMER_MAX_COUNT 0xffffffff + +/* fields in TDCR */ +#define APIC_TDCR_2 0x00 +#define APIC_TDCR_4 0x01 +#define APIC_TDCR_8 0x02 +#define APIC_TDCR_16 0x03 +#define APIC_TDCR_32 0x08 +#define APIC_TDCR_64 0x09 +#define APIC_TDCR_128 0x0a +#define APIC_TDCR_1 0x0b + +/* LVT table indices */ +#define APIC_LVT_LINT0 0 +#define APIC_LVT_LINT1 1 +#define APIC_LVT_TIMER 2 +#define APIC_LVT_ERROR 3 +#define APIC_LVT_PMC 4 +#define APIC_LVT_THERMAL 5 +#define APIC_LVT_CMCI 6 +#define APIC_LVT_MAX APIC_LVT_CMCI + +/****************************************************************************** + * I/O APIC defines + */ + +/* default physical locations of an IO APIC */ +#define DEFAULT_IO_APIC_BASE 0xfec00000 + +/* window register offset */ +#define IOAPIC_WINDOW 0x10 +#define IOAPIC_EOIR 0x40 + +/* indexes into IO APIC */ +#define IOAPIC_ID 0x00 +#define IOAPIC_VER 0x01 +#define IOAPIC_ARB 0x02 +#define IOAPIC_REDTBL 0x10 +#define IOAPIC_REDTBL0 IOAPIC_REDTBL +#define IOAPIC_REDTBL1 (IOAPIC_REDTBL+0x02) +#define IOAPIC_REDTBL2 (IOAPIC_REDTBL+0x04) +#define IOAPIC_REDTBL3 (IOAPIC_REDTBL+0x06) +#define IOAPIC_REDTBL4 (IOAPIC_REDTBL+0x08) +#define IOAPIC_REDTBL5 (IOAPIC_REDTBL+0x0a) +#define IOAPIC_REDTBL6 (IOAPIC_REDTBL+0x0c) +#define IOAPIC_REDTBL7 (IOAPIC_REDTBL+0x0e) +#define IOAPIC_REDTBL8 (IOAPIC_REDTBL+0x10) +#define IOAPIC_REDTBL9 (IOAPIC_REDTBL+0x12) +#define IOAPIC_REDTBL10 (IOAPIC_REDTBL+0x14) +#define IOAPIC_REDTBL11 (IOAPIC_REDTBL+0x16) +#define IOAPIC_REDTBL12 (IOAPIC_REDTBL+0x18) +#define IOAPIC_REDTBL13 (IOAPIC_REDTBL+0x1a) +#define IOAPIC_REDTBL14 (IOAPIC_REDTBL+0x1c) +#define IOAPIC_REDTBL15 (IOAPIC_REDTBL+0x1e) +#define IOAPIC_REDTBL16 (IOAPIC_REDTBL+0x20) +#define IOAPIC_REDTBL17 (IOAPIC_REDTBL+0x22) +#define IOAPIC_REDTBL18 (IOAPIC_REDTBL+0x24) +#define IOAPIC_REDTBL19 (IOAPIC_REDTBL+0x26) +#define IOAPIC_REDTBL20 (IOAPIC_REDTBL+0x28) +#define IOAPIC_REDTBL21 (IOAPIC_REDTBL+0x2a) +#define IOAPIC_REDTBL22 (IOAPIC_REDTBL+0x2c) +#define IOAPIC_REDTBL23 (IOAPIC_REDTBL+0x2e) + +/* fields in VER */ +#define IOART_VER_VERSION 0x000000ff +#define IOART_VER_MAXREDIR 0x00ff0000 +#define MAXREDIRSHIFT 16 + +/* + * fields in the IO APIC's redirection table entries + */ +#define IOART_DEST APIC_ID_MASK /* broadcast addr: all APICs */ + +#define IOART_RESV 0x00fe0000 /* reserved */ + +#define IOART_INTMASK 0x00010000 /* R/W: INTerrupt mask */ +# define IOART_INTMCLR 0x00000000 /* clear, allow INTs */ +# define IOART_INTMSET 0x00010000 /* set, inhibit INTs */ + +#define IOART_TRGRMOD 0x00008000 /* R/W: trigger mode */ +# define IOART_TRGREDG 0x00000000 /* edge */ +# define IOART_TRGRLVL 0x00008000 /* level */ + +#define IOART_REM_IRR 0x00004000 /* RO: remote IRR */ + +#define IOART_INTPOL 0x00002000 /* R/W: INT input pin polarity */ +# define IOART_INTAHI 0x00000000 /* active high */ +# define IOART_INTALO 0x00002000 /* active low */ + +#define IOART_DELIVS 0x00001000 /* RO: delivery status */ + +#define IOART_DESTMOD 0x00000800 /* R/W: destination mode */ +# define IOART_DESTPHY 0x00000000 /* physical */ +# define IOART_DESTLOG 0x00000800 /* logical */ + +#define IOART_DELMOD 0x00000700 /* R/W: delivery mode */ +# define IOART_DELFIXED 0x00000000 /* fixed */ +# define IOART_DELLOPRI 0x00000100 /* lowest priority */ +# define IOART_DELSMI 0x00000200 /* System Management INT */ +# define IOART_DELRSV1 0x00000300 /* reserved */ +# define IOART_DELNMI 0x00000400 /* NMI signal */ +# define IOART_DELINIT 0x00000500 /* INIT signal */ +# define IOART_DELRSV2 0x00000600 /* reserved */ +# define IOART_DELEXINT 0x00000700 /* External INTerrupt */ + +#define IOART_INTVEC 0x000000ff /* R/W: INTerrupt vector field */ diff --git a/include/xhyve/support/ata.h b/include/xhyve/support/ata.h new file mode 100644 index 0000000..7d0a7fd --- /dev/null +++ b/include/xhyve/support/ata.h @@ -0,0 +1,643 @@ +/*- + * Copyright (c) 2000 - 2008 Søren Schmidt + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer, + * without modification, immediately at the beginning of the file. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#pragma once + +#include + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" +#pragma clang diagnostic ignored "-Wpacked" + +/* ATA/ATAPI device parameters */ +struct ata_params { +/*000*/ u_int16_t config; /* configuration info */ +#define ATA_PROTO_MASK 0x8003 +#define ATA_PROTO_ATAPI 0x8000 +#define ATA_PROTO_ATAPI_12 0x8000 +#define ATA_PROTO_ATAPI_16 0x8001 +#define ATA_PROTO_CFA 0x848a +#define ATA_ATAPI_TYPE_MASK 0x1f00 +#define ATA_ATAPI_TYPE_DIRECT 0x0000 /* disk/floppy */ +#define ATA_ATAPI_TYPE_TAPE 0x0100 /* streaming tape */ +#define ATA_ATAPI_TYPE_CDROM 0x0500 /* CD-ROM device */ +#define ATA_ATAPI_TYPE_OPTICAL 0x0700 /* optical disk */ +#define ATA_DRQ_MASK 0x0060 +#define ATA_DRQ_SLOW 0x0000 /* cpu 3 ms delay */ +#define ATA_DRQ_INTR 0x0020 /* interrupt 10 ms delay */ +#define ATA_DRQ_FAST 0x0040 /* accel 50 us delay */ +#define ATA_RESP_INCOMPLETE 0x0004 + +/*001*/ u_int16_t cylinders; /* # of cylinders */ +/*002*/ u_int16_t specconf; /* specific configuration */ +/*003*/ u_int16_t heads; /* # heads */ + u_int16_t obsolete4; + u_int16_t obsolete5; +/*006*/ u_int16_t sectors; /* # sectors/track */ +/*007*/ u_int16_t vendor7[3]; +/*010*/ u_int8_t serial[20]; /* serial number */ +/*020*/ u_int16_t retired20; + u_int16_t retired21; + u_int16_t obsolete22; +/*023*/ u_int8_t revision[8]; /* firmware revision */ +/*027*/ u_int8_t model[40]; /* model name */ +/*047*/ u_int16_t sectors_intr; /* sectors per interrupt */ +/*048*/ u_int16_t usedmovsd; /* double word read/write? */ +/*049*/ u_int16_t capabilities1; +#define ATA_SUPPORT_DMA 0x0100 +#define ATA_SUPPORT_LBA 0x0200 +#define ATA_SUPPORT_IORDY 0x0400 +#define ATA_SUPPORT_IORDYDIS 0x0800 +#define ATA_SUPPORT_OVERLAP 0x4000 + +/*050*/ u_int16_t capabilities2; +/*051*/ u_int16_t retired_piomode; /* PIO modes 0-2 */ +#define ATA_RETIRED_PIO_MASK 0x0300 + +/*052*/ u_int16_t retired_dmamode; /* DMA modes */ +#define ATA_RETIRED_DMA_MASK 0x0003 + +/*053*/ u_int16_t atavalid; /* fields valid */ +#define ATA_FLAG_54_58 0x0001 /* words 54-58 valid */ +#define ATA_FLAG_64_70 0x0002 /* words 64-70 valid */ +#define ATA_FLAG_88 0x0004 /* word 88 valid */ + +/*054*/ u_int16_t current_cylinders; +/*055*/ u_int16_t current_heads; +/*056*/ u_int16_t current_sectors; +/*057*/ u_int16_t current_size_1; +/*058*/ u_int16_t current_size_2; +/*059*/ u_int16_t multi; +#define ATA_MULTI_VALID 0x0100 + +/*060*/ u_int16_t lba_size_1; + u_int16_t lba_size_2; + u_int16_t obsolete62; +/*063*/ u_int16_t mwdmamodes; /* multiword DMA modes */ +/*064*/ u_int16_t apiomodes; /* advanced PIO modes */ + +/*065*/ u_int16_t mwdmamin; /* min. M/W DMA time/word ns */ +/*066*/ u_int16_t mwdmarec; /* rec. M/W DMA time ns */ +/*067*/ u_int16_t pioblind; /* min. PIO cycle w/o flow */ +/*068*/ u_int16_t pioiordy; /* min. PIO cycle IORDY flow */ +/*069*/ u_int16_t support3; +#define ATA_SUPPORT_RZAT 0x0020 +#define ATA_SUPPORT_DRAT 0x4000 + u_int16_t reserved70; +/*071*/ u_int16_t rlsovlap; /* rel time (us) for overlap */ +/*072*/ u_int16_t rlsservice; /* rel time (us) for service */ + u_int16_t reserved73; + u_int16_t reserved74; +/*075*/ u_int16_t queue; +#define ATA_QUEUE_LEN(x) ((x) & 0x001f) + +/*76*/ u_int16_t satacapabilities; +#define ATA_SATA_GEN1 0x0002 +#define ATA_SATA_GEN2 0x0004 +#define ATA_SATA_GEN3 0x0008 +#define ATA_SUPPORT_NCQ 0x0100 +#define ATA_SUPPORT_IFPWRMNGTRCV 0x0200 +#define ATA_SUPPORT_PHYEVENTCNT 0x0400 +#define ATA_SUPPORT_NCQ_UNLOAD 0x0800 +#define ATA_SUPPORT_NCQ_PRIO 0x1000 +#define ATA_SUPPORT_HAPST 0x2000 +#define ATA_SUPPORT_DAPST 0x4000 +#define ATA_SUPPORT_READLOGDMAEXT 0x8000 + +/*77*/ u_int16_t satacapabilities2; +#define ATA_SATA_CURR_GEN_MASK 0x0006 +#define ATA_SUPPORT_NCQ_STREAM 0x0010 +#define ATA_SUPPORT_NCQ_QMANAGEMENT 0x0020 +#define ATA_SUPPORT_RCVSND_FPDMA_QUEUED 0x0040 +/*78*/ u_int16_t satasupport; +#define ATA_SUPPORT_NONZERO 0x0002 +#define ATA_SUPPORT_AUTOACTIVATE 0x0004 +#define ATA_SUPPORT_IFPWRMNGT 0x0008 +#define ATA_SUPPORT_INORDERDATA 0x0010 +#define ATA_SUPPORT_ASYNCNOTIF 0x0020 +#define ATA_SUPPORT_SOFTSETPRESERVE 0x0040 +/*79*/ u_int16_t sataenabled; +#define ATA_ENABLED_DAPST 0x0080 + +/*080*/ u_int16_t version_major; +/*081*/ u_int16_t version_minor; + + struct { +/*082/085*/ u_int16_t command1; +#define ATA_SUPPORT_SMART 0x0001 +#define ATA_SUPPORT_SECURITY 0x0002 +#define ATA_SUPPORT_REMOVABLE 0x0004 +#define ATA_SUPPORT_POWERMGT 0x0008 +#define ATA_SUPPORT_PACKET 0x0010 +#define ATA_SUPPORT_WRITECACHE 0x0020 +#define ATA_SUPPORT_LOOKAHEAD 0x0040 +#define ATA_SUPPORT_RELEASEIRQ 0x0080 +#define ATA_SUPPORT_SERVICEIRQ 0x0100 +#define ATA_SUPPORT_RESET 0x0200 +#define ATA_SUPPORT_PROTECTED 0x0400 +#define ATA_SUPPORT_WRITEBUFFER 0x1000 +#define ATA_SUPPORT_READBUFFER 0x2000 +#define ATA_SUPPORT_NOP 0x4000 + +/*083/086*/ u_int16_t command2; +#define ATA_SUPPORT_MICROCODE 0x0001 +#define ATA_SUPPORT_QUEUED 0x0002 +#define ATA_SUPPORT_CFA 0x0004 +#define ATA_SUPPORT_APM 0x0008 +#define ATA_SUPPORT_NOTIFY 0x0010 +#define ATA_SUPPORT_STANDBY 0x0020 +#define ATA_SUPPORT_SPINUP 0x0040 +#define ATA_SUPPORT_MAXSECURITY 0x0100 +#define ATA_SUPPORT_AUTOACOUSTIC 0x0200 +#define ATA_SUPPORT_ADDRESS48 0x0400 +#define ATA_SUPPORT_OVERLAY 0x0800 +#define ATA_SUPPORT_FLUSHCACHE 0x1000 +#define ATA_SUPPORT_FLUSHCACHE48 0x2000 + +/*084/087*/ u_int16_t extension; +#define ATA_SUPPORT_SMARTLOG 0x0001 +#define ATA_SUPPORT_SMARTTEST 0x0002 +#define ATA_SUPPORT_MEDIASN 0x0004 +#define ATA_SUPPORT_MEDIAPASS 0x0008 +#define ATA_SUPPORT_STREAMING 0x0010 +#define ATA_SUPPORT_GENLOG 0x0020 +#define ATA_SUPPORT_WRITEDMAFUAEXT 0x0040 +#define ATA_SUPPORT_WRITEDMAQFUAEXT 0x0080 +#define ATA_SUPPORT_64BITWWN 0x0100 +#define ATA_SUPPORT_UNLOAD 0x2000 + } __packed support, enabled; + +/*088*/ u_int16_t udmamodes; /* UltraDMA modes */ +/*089*/ u_int16_t erase_time; /* time req'd in 2min units */ +/*090*/ u_int16_t enhanced_erase_time; /* time req'd in 2min units */ +/*091*/ u_int16_t apm_value; +/*092*/ u_int16_t master_passwd_revision; /* password revision code */ +/*093*/ u_int16_t hwres; +#define ATA_CABLE_ID 0x2000 + +/*094*/ u_int16_t acoustic; +#define ATA_ACOUSTIC_CURRENT(x) ((x) & 0x00ff) +#define ATA_ACOUSTIC_VENDOR(x) (((x) & 0xff00) >> 8) + +/*095*/ u_int16_t stream_min_req_size; +/*096*/ u_int16_t stream_transfer_time; +/*097*/ u_int16_t stream_access_latency; +/*098*/ u_int32_t stream_granularity; +/*100*/ u_int16_t lba_size48_1; + u_int16_t lba_size48_2; + u_int16_t lba_size48_3; + u_int16_t lba_size48_4; + u_int16_t reserved104; +/*105*/ u_int16_t max_dsm_blocks; +/*106*/ u_int16_t pss; +#define ATA_PSS_LSPPS 0x000F +#define ATA_PSS_LSSABOVE512 0x1000 +#define ATA_PSS_MULTLS 0x2000 +#define ATA_PSS_VALID_MASK 0xC000 +#define ATA_PSS_VALID_VALUE 0x4000 +/*107*/ u_int16_t isd; +/*108*/ u_int16_t wwn[4]; + u_int16_t reserved112[5]; +/*117*/ u_int16_t lss_1; +/*118*/ u_int16_t lss_2; +/*119*/ u_int16_t support2; +#define ATA_SUPPORT_WRITEREADVERIFY 0x0002 +#define ATA_SUPPORT_WRITEUNCORREXT 0x0004 +#define ATA_SUPPORT_RWLOGDMAEXT 0x0008 +#define ATA_SUPPORT_MICROCODE3 0x0010 +#define ATA_SUPPORT_FREEFALL 0x0020 +/*120*/ u_int16_t enabled2; + u_int16_t reserved121[6]; +/*127*/ u_int16_t removable_status; +/*128*/ u_int16_t security_status; +#define ATA_SECURITY_LEVEL 0x0100 /* 0: high, 1: maximum */ +#define ATA_SECURITY_ENH_SUPP 0x0020 /* enhanced erase supported */ +#define ATA_SECURITY_COUNT_EXP 0x0010 /* count expired */ +#define ATA_SECURITY_FROZEN 0x0008 /* security config is frozen */ +#define ATA_SECURITY_LOCKED 0x0004 /* drive is locked */ +#define ATA_SECURITY_ENABLED 0x0002 /* ATA Security is enabled */ +#define ATA_SECURITY_SUPPORTED 0x0001 /* ATA Security is supported */ + + u_int16_t reserved129[31]; +/*160*/ u_int16_t cfa_powermode1; + u_int16_t reserved161; +/*162*/ u_int16_t cfa_kms_support; +/*163*/ u_int16_t cfa_trueide_modes; +/*164*/ u_int16_t cfa_memory_modes; + u_int16_t reserved165[4]; +/*169*/ u_int16_t support_dsm; +#define ATA_SUPPORT_DSM_TRIM 0x0001 + u_int16_t reserved170[6]; +/*176*/ u_int8_t media_serial[60]; +/*206*/ u_int16_t sct; + u_int16_t reserved206[2]; +/*209*/ u_int16_t lsalign; +/*210*/ u_int16_t wrv_sectors_m3_1; + u_int16_t wrv_sectors_m3_2; +/*212*/ u_int16_t wrv_sectors_m2_1; + u_int16_t wrv_sectors_m2_2; +/*214*/ u_int16_t nv_cache_caps; +/*215*/ u_int16_t nv_cache_size_1; + u_int16_t nv_cache_size_2; +/*217*/ u_int16_t media_rotation_rate; +#define ATA_RATE_NOT_REPORTED 0x0000 +#define ATA_RATE_NON_ROTATING 0x0001 + u_int16_t reserved218; +/*219*/ u_int16_t nv_cache_opt; +/*220*/ u_int16_t wrv_mode; + u_int16_t reserved221; +/*222*/ u_int16_t transport_major; +/*223*/ u_int16_t transport_minor; + u_int16_t reserved224[31]; +/*255*/ u_int16_t integrity; +} __packed; + +/* ATA Dataset Management */ +#define ATA_DSM_BLK_SIZE 512 +#define ATA_DSM_BLK_RANGES 64 +#define ATA_DSM_RANGE_SIZE 8 +#define ATA_DSM_RANGE_MAX 65535 + +/* + * ATA Device Register + * + * bit 7 Obsolete (was 1 in early ATA specs) + * bit 6 Sets LBA/CHS mode. 1=LBA, 0=CHS + * bit 5 Obsolete (was 1 in early ATA specs) + * bit 4 1 = Slave Drive, 0 = Master Drive + * bit 3-0 In LBA mode, 27-24 of address. In CHS mode, head number +*/ + +#define ATA_DEV_MASTER 0x00 +#define ATA_DEV_SLAVE 0x10 +#define ATA_DEV_LBA 0x40 + +/* ATA limits */ +#define ATA_MAX_28BIT_LBA 268435455UL + +/* ATA Status Register */ +#define ATA_STATUS_ERROR 0x01 +#define ATA_STATUS_DEVICE_FAULT 0x20 + +/* ATA Error Register */ +#define ATA_ERROR_ABORT 0x04 +#define ATA_ERROR_ID_NOT_FOUND 0x10 + +/* ATA HPA Features */ +#define ATA_HPA_FEAT_MAX_ADDR 0x00 +#define ATA_HPA_FEAT_SET_PWD 0x01 +#define ATA_HPA_FEAT_LOCK 0x02 +#define ATA_HPA_FEAT_UNLOCK 0x03 +#define ATA_HPA_FEAT_FREEZE 0x04 + +/* ATA transfer modes */ +#define ATA_MODE_MASK 0x0f +#define ATA_DMA_MASK 0xf0 +#define ATA_PIO 0x00 +#define ATA_PIO0 0x08 +#define ATA_PIO1 0x09 +#define ATA_PIO2 0x0a +#define ATA_PIO3 0x0b +#define ATA_PIO4 0x0c +#define ATA_PIO_MAX 0x0f +#define ATA_DMA 0x10 +#define ATA_WDMA0 0x20 +#define ATA_WDMA1 0x21 +#define ATA_WDMA2 0x22 +#define ATA_UDMA0 0x40 +#define ATA_UDMA1 0x41 +#define ATA_UDMA2 0x42 +#define ATA_UDMA3 0x43 +#define ATA_UDMA4 0x44 +#define ATA_UDMA5 0x45 +#define ATA_UDMA6 0x46 +#define ATA_SA150 0x47 +#define ATA_SA300 0x48 +#define ATA_DMA_MAX 0x4f + + +/* ATA commands */ +#define ATA_NOP 0x00 /* NOP */ +#define ATA_NF_FLUSHQUEUE 0x00 /* flush queued cmd's */ +#define ATA_NF_AUTOPOLL 0x01 /* start autopoll function */ +#define ATA_DATA_SET_MANAGEMENT 0x06 +#define ATA_DSM_TRIM 0x01 +#define ATA_DEVICE_RESET 0x08 /* reset device */ +#define ATA_READ 0x20 /* read */ +#define ATA_READ48 0x24 /* read 48bit LBA */ +#define ATA_READ_DMA48 0x25 /* read DMA 48bit LBA */ +#define ATA_READ_DMA_QUEUED48 0x26 /* read DMA QUEUED 48bit LBA */ +#define ATA_READ_NATIVE_MAX_ADDRESS48 0x27 /* read native max addr 48bit */ +#define ATA_READ_MUL48 0x29 /* read multi 48bit LBA */ +#define ATA_READ_STREAM_DMA48 0x2a /* read DMA stream 48bit LBA */ +#define ATA_READ_LOG_EXT 0x2f /* read log ext - PIO Data-In */ +#define ATA_READ_STREAM48 0x2b /* read stream 48bit LBA */ +#define ATA_WRITE 0x30 /* write */ +#define ATA_WRITE48 0x34 /* write 48bit LBA */ +#define ATA_WRITE_DMA48 0x35 /* write DMA 48bit LBA */ +#define ATA_WRITE_DMA_QUEUED48 0x36 /* write DMA QUEUED 48bit LBA*/ +#define ATA_SET_MAX_ADDRESS48 0x37 /* set max address 48bit */ +#define ATA_WRITE_MUL48 0x39 /* write multi 48bit LBA */ +#define ATA_WRITE_STREAM_DMA48 0x3a +#define ATA_WRITE_STREAM48 0x3b +#define ATA_WRITE_DMA_FUA48 0x3d +#define ATA_WRITE_DMA_QUEUED_FUA48 0x3e +#define ATA_WRITE_LOG_EXT 0x3f +#define ATA_READ_VERIFY 0x40 +#define ATA_READ_VERIFY48 0x42 +#define ATA_READ_LOG_DMA_EXT 0x47 /* read log DMA ext - PIO Data-In */ +#define ATA_READ_FPDMA_QUEUED 0x60 /* read DMA NCQ */ +#define ATA_WRITE_FPDMA_QUEUED 0x61 /* write DMA NCQ */ +#define ATA_NCQ_NON_DATA 0x63 /* NCQ non-data command */ +#define ATA_SEND_FPDMA_QUEUED 0x64 /* send DMA NCQ */ +#define ATA_SFPDMA_DSM 0x00 /* Data set management */ +#define ATA_SFPDMA_DSM_TRIM 0x01 /* Set trim bit in auxilary */ +#define ATA_SFPDMA_HYBRID_EVICT 0x01 /* Hybrid Evict */ +#define ATA_SFPDMA_WLDMA 0x02 /* Write Log DMA EXT */ +#define ATA_RECV_FPDMA_QUEUED 0x65 /* recieve DMA NCQ */ +#define ATA_SEP_ATTN 0x67 /* SEP request */ +#define ATA_SEEK 0x70 /* seek */ +#define ATA_PACKET_CMD 0xa0 /* packet command */ +#define ATA_ATAPI_IDENTIFY 0xa1 /* get ATAPI params*/ +#define ATA_SERVICE 0xa2 /* service command */ +#define ATA_SMART_CMD 0xb0 /* SMART command */ +#define ATA_CFA_ERASE 0xc0 /* CFA erase */ +#define ATA_READ_MUL 0xc4 /* read multi */ +#define ATA_WRITE_MUL 0xc5 /* write multi */ +#define ATA_SET_MULTI 0xc6 /* set multi size */ +#define ATA_READ_DMA_QUEUED 0xc7 /* read DMA QUEUED */ +#define ATA_READ_DMA 0xc8 /* read DMA */ +#define ATA_WRITE_DMA 0xca /* write DMA */ +#define ATA_WRITE_DMA_QUEUED 0xcc /* write DMA QUEUED */ +#define ATA_WRITE_MUL_FUA48 0xce +#define ATA_STANDBY_IMMEDIATE 0xe0 /* standby immediate */ +#define ATA_IDLE_IMMEDIATE 0xe1 /* idle immediate */ +#define ATA_STANDBY_CMD 0xe2 /* standby */ +#define ATA_IDLE_CMD 0xe3 /* idle */ +#define ATA_READ_BUFFER 0xe4 /* read buffer */ +#define ATA_READ_PM 0xe4 /* read portmultiplier */ +#define ATA_SLEEP 0xe6 /* sleep */ +#define ATA_FLUSHCACHE 0xe7 /* flush cache to disk */ +#define ATA_WRITE_PM 0xe8 /* write portmultiplier */ +#define ATA_FLUSHCACHE48 0xea /* flush cache to disk */ +#define ATA_ATA_IDENTIFY 0xec /* get ATA params */ +#define ATA_SETFEATURES 0xef /* features command */ +#define ATA_SF_SETXFER 0x03 /* set transfer mode */ +#define ATA_SF_ENAB_WCACHE 0x02 /* enable write cache */ +#define ATA_SF_DIS_WCACHE 0x82 /* disable write cache */ +#define ATA_SF_ENAB_PUIS 0x06 /* enable PUIS */ +#define ATA_SF_DIS_PUIS 0x86 /* disable PUIS */ +#define ATA_SF_PUIS_SPINUP 0x07 /* PUIS spin-up */ +#define ATA_SF_ENAB_RCACHE 0xaa /* enable readahead cache */ +#define ATA_SF_DIS_RCACHE 0x55 /* disable readahead cache */ +#define ATA_SF_ENAB_RELIRQ 0x5d /* enable release interrupt */ +#define ATA_SF_DIS_RELIRQ 0xdd /* disable release interrupt */ +#define ATA_SF_ENAB_SRVIRQ 0x5e /* enable service interrupt */ +#define ATA_SF_DIS_SRVIRQ 0xde /* disable service interrupt */ +#define ATA_SECURITY_SET_PASSWORD 0xf1 /* set drive password */ +#define ATA_SECURITY_UNLOCK 0xf2 /* unlock drive using passwd */ +#define ATA_SECURITY_ERASE_PREPARE 0xf3 /* prepare to erase drive */ +#define ATA_SECURITY_ERASE_UNIT 0xf4 /* erase all blocks on drive */ +#define ATA_SECURITY_FREEZE_LOCK 0xf5 /* freeze security config */ +#define ATA_SECURITY_DISABLE_PASSWORD 0xf6 /* disable drive password */ +#define ATA_READ_NATIVE_MAX_ADDRESS 0xf8 /* read native max address */ +#define ATA_SET_MAX_ADDRESS 0xf9 /* set max address */ + + +/* ATAPI commands */ +#define ATAPI_TEST_UNIT_READY 0x00 /* check if device is ready */ +#define ATAPI_REZERO 0x01 /* rewind */ +#define ATAPI_REQUEST_SENSE 0x03 /* get sense data */ +#define ATAPI_FORMAT 0x04 /* format unit */ +#define ATAPI_READ 0x08 /* read data */ +#define ATAPI_WRITE 0x0a /* write data */ +#define ATAPI_WEOF 0x10 /* write filemark */ +#define ATAPI_WF_WRITE 0x01 +#define ATAPI_SPACE 0x11 /* space command */ +#define ATAPI_SP_FM 0x01 +#define ATAPI_SP_EOD 0x03 +#define ATAPI_INQUIRY 0x12 /* get inquiry data */ +#define ATAPI_MODE_SELECT 0x15 /* mode select */ +#define ATAPI_ERASE 0x19 /* erase */ +#define ATAPI_MODE_SENSE 0x1a /* mode sense */ +#define ATAPI_START_STOP 0x1b /* start/stop unit */ +#define ATAPI_SS_LOAD 0x01 +#define ATAPI_SS_RETENSION 0x02 +#define ATAPI_SS_EJECT 0x04 +#define ATAPI_PREVENT_ALLOW 0x1e /* media removal */ +#define ATAPI_READ_FORMAT_CAPACITIES 0x23 /* get format capacities */ +#define ATAPI_READ_CAPACITY 0x25 /* get volume capacity */ +#define ATAPI_READ_BIG 0x28 /* read data */ +#define ATAPI_WRITE_BIG 0x2a /* write data */ +#define ATAPI_LOCATE 0x2b /* locate to position */ +#define ATAPI_READ_POSITION 0x34 /* read position */ +#define ATAPI_SYNCHRONIZE_CACHE 0x35 /* flush buf, close channel */ +#define ATAPI_WRITE_BUFFER 0x3b /* write device buffer */ +#define ATAPI_READ_BUFFER 0x3c /* read device buffer */ +#define ATAPI_READ_SUBCHANNEL 0x42 /* get subchannel info */ +#define ATAPI_READ_TOC 0x43 /* get table of contents */ +#define ATAPI_PLAY_10 0x45 /* play by lba */ +#define ATAPI_PLAY_MSF 0x47 /* play by MSF address */ +#define ATAPI_PLAY_TRACK 0x48 /* play by track number */ +#define ATAPI_PAUSE 0x4b /* pause audio operation */ +#define ATAPI_READ_DISK_INFO 0x51 /* get disk info structure */ +#define ATAPI_READ_TRACK_INFO 0x52 /* get track info structure */ +#define ATAPI_RESERVE_TRACK 0x53 /* reserve track */ +#define ATAPI_SEND_OPC_INFO 0x54 /* send OPC structurek */ +#define ATAPI_MODE_SELECT_BIG 0x55 /* set device parameters */ +#define ATAPI_REPAIR_TRACK 0x58 /* repair track */ +#define ATAPI_READ_MASTER_CUE 0x59 /* read master CUE info */ +#define ATAPI_MODE_SENSE_BIG 0x5a /* get device parameters */ +#define ATAPI_CLOSE_TRACK 0x5b /* close track/session */ +#define ATAPI_READ_BUFFER_CAPACITY 0x5c /* get buffer capicity */ +#define ATAPI_SEND_CUE_SHEET 0x5d /* send CUE sheet */ +#define ATAPI_SERVICE_ACTION_IN 0x96 /* get service data */ +#define ATAPI_BLANK 0xa1 /* blank the media */ +#define ATAPI_SEND_KEY 0xa3 /* send DVD key structure */ +#define ATAPI_REPORT_KEY 0xa4 /* get DVD key structure */ +#define ATAPI_PLAY_12 0xa5 /* play by lba */ +#define ATAPI_LOAD_UNLOAD 0xa6 /* changer control command */ +#define ATAPI_READ_STRUCTURE 0xad /* get DVD structure */ +#define ATAPI_PLAY_CD 0xb4 /* universal play command */ +#define ATAPI_SET_SPEED 0xbb /* set drive speed */ +#define ATAPI_MECH_STATUS 0xbd /* get changer status */ +#define ATAPI_READ_CD 0xbe /* read data */ +#define ATAPI_POLL_DSC 0xff /* poll DSC status bit */ + + +struct ata_ioc_devices { + int channel; + char name[2][32]; + struct ata_params params[2]; +}; + +/* pr channel ATA ioctl calls */ +#define IOCATAGMAXCHANNEL _IOR('a', 1, int) +#define IOCATAREINIT _IOW('a', 2, int) +#define IOCATAATTACH _IOW('a', 3, int) +#define IOCATADETACH _IOW('a', 4, int) +#define IOCATADEVICES _IOWR('a', 5, struct ata_ioc_devices) + +/* ATAPI request sense structure */ +struct atapi_sense { + u_int8_t error; /* current or deferred errors */ +#define ATA_SENSE_VALID 0x80 + + u_int8_t segment; /* segment number */ + u_int8_t key; /* sense key */ +#define ATA_SENSE_KEY_MASK 0x0f /* sense key mask */ +#define ATA_SENSE_NO_SENSE 0x00 /* no specific sense key info */ +#define ATA_SENSE_RECOVERED_ERROR 0x01 /* command OK, data recovered */ +#define ATA_SENSE_NOT_READY 0x02 /* no access to drive */ +#define ATA_SENSE_MEDIUM_ERROR 0x03 /* non-recovered data error */ +#define ATA_SENSE_HARDWARE_ERROR 0x04 /* non-recoverable HW failure */ +#define ATA_SENSE_ILLEGAL_REQUEST 0x05 /* invalid command param(s) */ +#define ATA_SENSE_UNIT_ATTENTION 0x06 /* media changed */ +#define ATA_SENSE_DATA_PROTECT 0x07 /* write protect */ +#define ATA_SENSE_BLANK_CHECK 0x08 /* blank check */ +#define ATA_SENSE_VENDOR_SPECIFIC 0x09 /* vendor specific skey */ +#define ATA_SENSE_COPY_ABORTED 0x0a /* copy aborted */ +#define ATA_SENSE_ABORTED_COMMAND 0x0b /* command aborted, try again */ +#define ATA_SENSE_EQUAL 0x0c /* equal */ +#define ATA_SENSE_VOLUME_OVERFLOW 0x0d /* volume overflow */ +#define ATA_SENSE_MISCOMPARE 0x0e /* data dont match the medium */ +#define ATA_SENSE_RESERVED 0x0f +#define ATA_SENSE_ILI 0x20; +#define ATA_SENSE_EOM 0x40; +#define ATA_SENSE_FILEMARK 0x80; + + u_int32_t cmd_info; /* cmd information */ + u_int8_t sense_length; /* additional sense len (n-7) */ + u_int32_t cmd_specific_info; /* additional cmd spec info */ + u_int8_t asc; /* additional sense code */ + u_int8_t ascq; /* additional sense code qual */ + u_int8_t replaceable_unit_code; /* replaceable unit code */ + u_int8_t specific; /* sense key specific */ +#define ATA_SENSE_SPEC_VALID 0x80 +#define ATA_SENSE_SPEC_MASK 0x7f + + u_int8_t specific1; /* sense key specific */ + u_int8_t specific2; /* sense key specific */ +} __packed; + +struct ata_ioc_request { + union { + struct { + u_int8_t command; + u_int8_t feature; + u_int64_t lba; + u_int16_t count; + } ata; + struct { + char ccb[16]; + struct atapi_sense sense; + } atapi; + } u; + caddr_t data; + int count; + int flags; +#define ATA_CMD_CONTROL 0x01 +#define ATA_CMD_READ 0x02 +#define ATA_CMD_WRITE 0x04 +#define ATA_CMD_ATAPI 0x08 + + int timeout; + int error; +}; + +struct ata_security_password { + u_int16_t ctrl; +#define ATA_SECURITY_PASSWORD_USER 0x0000 +#define ATA_SECURITY_PASSWORD_MASTER 0x0001 +#define ATA_SECURITY_ERASE_NORMAL 0x0000 +#define ATA_SECURITY_ERASE_ENHANCED 0x0002 +#define ATA_SECURITY_LEVEL_HIGH 0x0000 +#define ATA_SECURITY_LEVEL_MAXIMUM 0x0100 + + u_int8_t password[32]; + u_int16_t revision; + u_int16_t reserved[238]; +}; + +/* pr device ATA ioctl calls */ +#define IOCATAREQUEST _IOWR('a', 100, struct ata_ioc_request) +#define IOCATAGPARM _IOR('a', 101, struct ata_params) +#define IOCATAGMODE _IOR('a', 102, int) +#define IOCATASMODE _IOW('a', 103, int) + +#define IOCATAGSPINDOWN _IOR('a', 104, int) +#define IOCATASSPINDOWN _IOW('a', 105, int) + + +struct ata_ioc_raid_config { + int lun; + int type; +#define AR_JBOD 0x0001 +#define AR_SPAN 0x0002 +#define AR_RAID0 0x0004 +#define AR_RAID1 0x0008 +#define AR_RAID01 0x0010 +#define AR_RAID3 0x0020 +#define AR_RAID4 0x0040 +#define AR_RAID5 0x0080 + + int interleave; + int status; +#define AR_READY 1 +#define AR_DEGRADED 2 +#define AR_REBUILDING 4 + + int progress; + int total_disks; + int disks[16]; +}; + +struct ata_ioc_raid_status { + int lun; + int type; + int interleave; + int status; + int progress; + int total_disks; + struct { + int state; +#define AR_DISK_ONLINE 0x01 +#define AR_DISK_PRESENT 0x02 +#define AR_DISK_SPARE 0x04 + int lun; + } disks[16]; +}; + +/* ATA RAID ioctl calls */ +#define IOCATARAIDCREATE _IOWR('a', 200, struct ata_ioc_raid_config) +#define IOCATARAIDDELETE _IOW('a', 201, int) +#define IOCATARAIDSTATUS _IOWR('a', 202, struct ata_ioc_raid_status) +#define IOCATARAIDADDSPARE _IOW('a', 203, struct ata_ioc_raid_config) +#define IOCATARAIDREBUILD _IOW('a', 204, int) + +#pragma clang diagnostic pop diff --git a/include/xhyve/support/atomic.h b/include/xhyve/support/atomic.h new file mode 100644 index 0000000..b2a8903 --- /dev/null +++ b/include/xhyve/support/atomic.h @@ -0,0 +1,443 @@ +/*- + * Copyright (c) 1998 Doug Rabson + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#pragma once + +#include +#include + +#define __compiler_membar() __asm __volatile(" " : : : "memory") + +#define mb() __asm __volatile("mfence;" : : : "memory") +#define wmb() __asm __volatile("sfence;" : : : "memory") +#define rmb() __asm __volatile("lfence;" : : : "memory") + +/* + * Various simple operations on memory, each of which is atomic in the + * presence of interrupts and multiple processors. + * + * atomic_set_char(P, V) (*(u_char *)(P) |= (V)) + * atomic_clear_char(P, V) (*(u_char *)(P) &= ~(V)) + * atomic_add_char(P, V) (*(u_char *)(P) += (V)) + * atomic_subtract_char(P, V) (*(u_char *)(P) -= (V)) + * + * atomic_set_short(P, V) (*(u_short *)(P) |= (V)) + * atomic_clear_short(P, V) (*(u_short *)(P) &= ~(V)) + * atomic_add_short(P, V) (*(u_short *)(P) += (V)) + * atomic_subtract_short(P, V) (*(u_short *)(P) -= (V)) + * + * atomic_set_int(P, V) (*(u_int *)(P) |= (V)) + * atomic_clear_int(P, V) (*(u_int *)(P) &= ~(V)) + * atomic_add_int(P, V) (*(u_int *)(P) += (V)) + * atomic_subtract_int(P, V) (*(u_int *)(P) -= (V)) + * atomic_swap_int(P, V) (return (*(u_int *)(P)); *(u_int *)(P) = (V);) + * atomic_readandclear_int(P) (return (*(u_int *)(P)); *(u_int *)(P) = 0;) + * + * atomic_set_long(P, V) (*(u_long *)(P) |= (V)) + * atomic_clear_long(P, V) (*(u_long *)(P) &= ~(V)) + * atomic_add_long(P, V) (*(u_long *)(P) += (V)) + * atomic_subtract_long(P, V) (*(u_long *)(P) -= (V)) + * atomic_swap_long(P, V) (return (*(u_long *)(P)); *(u_long *)(P) = (V);) + * atomic_readandclear_long(P) (return (*(u_long *)(P)); *(u_long *)(P) = 0;) + */ + +#define MPLOCKED "lock ; " + +/* + * The assembly is volatilized to avoid code chunk removal by the compiler. + * GCC aggressively reorders operations and memory clobbering is necessary + * in order to avoid that for memory barriers. + */ +#define ATOMIC_ASM(NAME, TYPE, OP, CONS, V) \ +static __inline void \ +atomic_##NAME##_##TYPE(volatile u_##TYPE *p, u_##TYPE v)\ +{ \ + __asm __volatile(MPLOCKED OP \ + : "+m" (*p) \ + : CONS (V) \ + : "cc"); \ +} \ + \ +static __inline void \ +atomic_##NAME##_barr_##TYPE(volatile u_##TYPE *p, u_##TYPE v)\ +{ \ + __asm __volatile(MPLOCKED OP \ + : "+m" (*p) \ + : CONS (V) \ + : "memory", "cc"); \ +} \ +struct __hack + +/* + * Atomic compare and set, used by the mutex functions + * + * if (*dst == expect) *dst = src (all 32 bit words) + * + * Returns 0 on failure, non-zero on success + */ + +static __inline int +atomic_cmpset_int(volatile u_int *dst, u_int expect, u_int src) +{ + u_char res; + + __asm __volatile( + " " MPLOCKED " " + " cmpxchgl %3,%1 ; " + " sete %0 ; " + "# atomic_cmpset_int" + : "=q" (res), /* 0 */ + "+m" (*dst), /* 1 */ + "+a" (expect) /* 2 */ + : "r" (src) /* 3 */ + : "memory", "cc"); + return (res); +} + +static __inline int +atomic_cmpset_long(volatile u_long *dst, u_long expect, u_long src) +{ + u_char res; + + __asm __volatile( + " " MPLOCKED " " + " cmpxchgq %3,%1 ; " + " sete %0 ; " + "# atomic_cmpset_long" + : "=q" (res), /* 0 */ + "+m" (*dst), /* 1 */ + "+a" (expect) /* 2 */ + : "r" (src) /* 3 */ + : "memory", "cc"); + return (res); +} + +/* + * Atomically add the value of v to the integer pointed to by p and return + * the previous value of *p. + */ +static __inline u_int +atomic_fetchadd_int(volatile u_int *p, u_int v) +{ + + __asm __volatile( + " " MPLOCKED " " + " xaddl %0,%1 ; " + "# atomic_fetchadd_int" + : "+r" (v), /* 0 */ + "+m" (*p) /* 1 */ + : : "cc"); + return (v); +} + +/* + * Atomically add the value of v to the long integer pointed to by p and return + * the previous value of *p. + */ +static __inline u_long +atomic_fetchadd_long(volatile u_long *p, u_long v) +{ + + __asm __volatile( + " " MPLOCKED " " + " xaddq %0,%1 ; " + "# atomic_fetchadd_long" + : "+r" (v), /* 0 */ + "+m" (*p) /* 1 */ + : : "cc"); + return (v); +} + +static __inline int +atomic_testandset_int(volatile u_int *p, u_int v) +{ + u_char res; + + __asm __volatile( + " " MPLOCKED " " + " btsl %2,%1 ; " + " setc %0 ; " + "# atomic_testandset_int" + : "=q" (res), /* 0 */ + "+m" (*p) /* 1 */ + : "Ir" (v & 0x1f) /* 2 */ + : "cc"); + return (res); +} + +static __inline int +atomic_testandset_long(volatile u_long *p, u_int v) +{ + u_char res; + + __asm __volatile( + " " MPLOCKED " " + " btsq %2,%1 ; " + " setc %0 ; " + "# atomic_testandset_long" + : "=q" (res), /* 0 */ + "+m" (*p) /* 1 */ + : "Jr" ((u_long)(v & 0x3f)) /* 2 */ + : "cc"); + return (res); +} + +/* + * We assume that a = b will do atomic loads and stores. Due to the + * IA32 memory model, a simple store guarantees release semantics. + * + * However, loads may pass stores, so for atomic_load_acq we have to + * ensure a Store/Load barrier to do the load in SMP kernels. We use + * "lock cmpxchg" as recommended by the AMD Software Optimization + * Guide, and not mfence. For UP kernels, however, the cache of the + * single processor is always consistent, so we only need to take care + * of the compiler. + */ +#define ATOMIC_STORE(TYPE) \ +static __inline void \ +atomic_store_rel_##TYPE(volatile u_##TYPE *p, u_##TYPE v)\ +{ \ + __compiler_membar(); \ + *p = v; \ +} \ +struct __hack + +#define ATOMIC_LOAD(TYPE, LOP) \ +static __inline u_##TYPE \ +atomic_load_acq_##TYPE(volatile u_##TYPE *p) \ +{ \ + u_##TYPE res; \ + \ + __asm __volatile(MPLOCKED LOP \ + : "=a" (res), /* 0 */ \ + "+m" (*p) /* 1 */ \ + : : "memory", "cc"); \ + return (res); \ +} \ +struct __hack + +ATOMIC_ASM(set, char, "orb %b1,%0", "iq", v); +ATOMIC_ASM(clear, char, "andb %b1,%0", "iq", ~v); +ATOMIC_ASM(add, char, "addb %b1,%0", "iq", v); +ATOMIC_ASM(subtract, char, "subb %b1,%0", "iq", v); + +ATOMIC_ASM(set, short, "orw %w1,%0", "ir", v); +ATOMIC_ASM(clear, short, "andw %w1,%0", "ir", ~v); +ATOMIC_ASM(add, short, "addw %w1,%0", "ir", v); +ATOMIC_ASM(subtract, short, "subw %w1,%0", "ir", v); + +ATOMIC_ASM(set, int, "orl %1,%0", "ir", v); +ATOMIC_ASM(clear, int, "andl %1,%0", "ir", ~v); +ATOMIC_ASM(add, int, "addl %1,%0", "ir", v); +ATOMIC_ASM(subtract, int, "subl %1,%0", "ir", v); + +ATOMIC_ASM(set, long, "orq %1,%0", "ir", v); +ATOMIC_ASM(clear, long, "andq %1,%0", "ir", ~v); +ATOMIC_ASM(add, long, "addq %1,%0", "ir", v); +ATOMIC_ASM(subtract, long, "subq %1,%0", "ir", v); + +ATOMIC_LOAD(char, "cmpxchgb %b0,%1"); +ATOMIC_LOAD(short, "cmpxchgw %w0,%1"); +ATOMIC_LOAD(int, "cmpxchgl %0,%1"); +ATOMIC_LOAD(long, "cmpxchgq %0,%1"); + +ATOMIC_STORE(char); +ATOMIC_STORE(short); +ATOMIC_STORE(int); +ATOMIC_STORE(long); + +#undef ATOMIC_ASM +#undef ATOMIC_LOAD +#undef ATOMIC_STORE + +/* Read the current value and store a new value in the destination. */ + +static __inline u_int +atomic_swap_int(volatile u_int *p, u_int v) +{ + + __asm __volatile( + " xchgl %1,%0 ; " + "# atomic_swap_int" + : "+r" (v), /* 0 */ + "+m" (*p)); /* 1 */ + return (v); +} + +static __inline u_long +atomic_swap_long(volatile u_long *p, u_long v) +{ + + __asm __volatile( + " xchgq %1,%0 ; " + "# atomic_swap_long" + : "+r" (v), /* 0 */ + "+m" (*p)); /* 1 */ + return (v); +} + +#define atomic_set_acq_char atomic_set_barr_char +#define atomic_set_rel_char atomic_set_barr_char +#define atomic_clear_acq_char atomic_clear_barr_char +#define atomic_clear_rel_char atomic_clear_barr_char +#define atomic_add_acq_char atomic_add_barr_char +#define atomic_add_rel_char atomic_add_barr_char +#define atomic_subtract_acq_char atomic_subtract_barr_char +#define atomic_subtract_rel_char atomic_subtract_barr_char + +#define atomic_set_acq_short atomic_set_barr_short +#define atomic_set_rel_short atomic_set_barr_short +#define atomic_clear_acq_short atomic_clear_barr_short +#define atomic_clear_rel_short atomic_clear_barr_short +#define atomic_add_acq_short atomic_add_barr_short +#define atomic_add_rel_short atomic_add_barr_short +#define atomic_subtract_acq_short atomic_subtract_barr_short +#define atomic_subtract_rel_short atomic_subtract_barr_short + +#define atomic_set_acq_int atomic_set_barr_int +#define atomic_set_rel_int atomic_set_barr_int +#define atomic_clear_acq_int atomic_clear_barr_int +#define atomic_clear_rel_int atomic_clear_barr_int +#define atomic_add_acq_int atomic_add_barr_int +#define atomic_add_rel_int atomic_add_barr_int +#define atomic_subtract_acq_int atomic_subtract_barr_int +#define atomic_subtract_rel_int atomic_subtract_barr_int +#define atomic_cmpset_acq_int atomic_cmpset_int +#define atomic_cmpset_rel_int atomic_cmpset_int + +#define atomic_set_acq_long atomic_set_barr_long +#define atomic_set_rel_long atomic_set_barr_long +#define atomic_clear_acq_long atomic_clear_barr_long +#define atomic_clear_rel_long atomic_clear_barr_long +#define atomic_add_acq_long atomic_add_barr_long +#define atomic_add_rel_long atomic_add_barr_long +#define atomic_subtract_acq_long atomic_subtract_barr_long +#define atomic_subtract_rel_long atomic_subtract_barr_long +#define atomic_cmpset_acq_long atomic_cmpset_long +#define atomic_cmpset_rel_long atomic_cmpset_long + +#define atomic_readandclear_int(p) atomic_swap_int(p, 0) +#define atomic_readandclear_long(p) atomic_swap_long(p, 0) + +/* Operations on 8-bit bytes. */ +#define atomic_set_8 atomic_set_char +#define atomic_set_acq_8 atomic_set_acq_char +#define atomic_set_rel_8 atomic_set_rel_char +#define atomic_clear_8 atomic_clear_char +#define atomic_clear_acq_8 atomic_clear_acq_char +#define atomic_clear_rel_8 atomic_clear_rel_char +#define atomic_add_8 atomic_add_char +#define atomic_add_acq_8 atomic_add_acq_char +#define atomic_add_rel_8 atomic_add_rel_char +#define atomic_subtract_8 atomic_subtract_char +#define atomic_subtract_acq_8 atomic_subtract_acq_char +#define atomic_subtract_rel_8 atomic_subtract_rel_char +#define atomic_load_acq_8 atomic_load_acq_char +#define atomic_store_rel_8 atomic_store_rel_char + +/* Operations on 16-bit words. */ +#define atomic_set_16 atomic_set_short +#define atomic_set_acq_16 atomic_set_acq_short +#define atomic_set_rel_16 atomic_set_rel_short +#define atomic_clear_16 atomic_clear_short +#define atomic_clear_acq_16 atomic_clear_acq_short +#define atomic_clear_rel_16 atomic_clear_rel_short +#define atomic_add_16 atomic_add_short +#define atomic_add_acq_16 atomic_add_acq_short +#define atomic_add_rel_16 atomic_add_rel_short +#define atomic_subtract_16 atomic_subtract_short +#define atomic_subtract_acq_16 atomic_subtract_acq_short +#define atomic_subtract_rel_16 atomic_subtract_rel_short +#define atomic_load_acq_16 atomic_load_acq_short +#define atomic_store_rel_16 atomic_store_rel_short + +/* Operations on 32-bit double words. */ +#define atomic_set_32 atomic_set_int +#define atomic_set_acq_32 atomic_set_acq_int +#define atomic_set_rel_32 atomic_set_rel_int +#define atomic_clear_32 atomic_clear_int +#define atomic_clear_acq_32 atomic_clear_acq_int +#define atomic_clear_rel_32 atomic_clear_rel_int +#define atomic_add_32 atomic_add_int +#define atomic_add_acq_32 atomic_add_acq_int +#define atomic_add_rel_32 atomic_add_rel_int +#define atomic_subtract_32 atomic_subtract_int +#define atomic_subtract_acq_32 atomic_subtract_acq_int +#define atomic_subtract_rel_32 atomic_subtract_rel_int +#define atomic_load_acq_32 atomic_load_acq_int +#define atomic_store_rel_32 atomic_store_rel_int +#define atomic_cmpset_32 atomic_cmpset_int +#define atomic_cmpset_acq_32 atomic_cmpset_acq_int +#define atomic_cmpset_rel_32 atomic_cmpset_rel_int +#define atomic_swap_32 atomic_swap_int +#define atomic_readandclear_32 atomic_readandclear_int +#define atomic_fetchadd_32 atomic_fetchadd_int +#define atomic_testandset_32 atomic_testandset_int + +/* Operations on 64-bit quad words. */ +#define atomic_set_64 atomic_set_long +#define atomic_set_acq_64 atomic_set_acq_long +#define atomic_set_rel_64 atomic_set_rel_long +#define atomic_clear_64 atomic_clear_long +#define atomic_clear_acq_64 atomic_clear_acq_long +#define atomic_clear_rel_64 atomic_clear_rel_long +#define atomic_add_64 atomic_add_long +#define atomic_add_acq_64 atomic_add_acq_long +#define atomic_add_rel_64 atomic_add_rel_long +#define atomic_subtract_64 atomic_subtract_long +#define atomic_subtract_acq_64 atomic_subtract_acq_long +#define atomic_subtract_rel_64 atomic_subtract_rel_long +#define atomic_load_acq_64 atomic_load_acq_long +#define atomic_store_rel_64 atomic_store_rel_long +#define atomic_cmpset_64 atomic_cmpset_long +#define atomic_cmpset_acq_64 atomic_cmpset_acq_long +#define atomic_cmpset_rel_64 atomic_cmpset_rel_long +#define atomic_swap_64 atomic_swap_long +#define atomic_readandclear_64 atomic_readandclear_long +#define atomic_testandset_64 atomic_testandset_long + +/* Operations on pointers. */ +#define atomic_set_ptr atomic_set_long +#define atomic_set_acq_ptr atomic_set_acq_long +#define atomic_set_rel_ptr atomic_set_rel_long +#define atomic_clear_ptr atomic_clear_long +#define atomic_clear_acq_ptr atomic_clear_acq_long +#define atomic_clear_rel_ptr atomic_clear_rel_long +#define atomic_add_ptr atomic_add_long +#define atomic_add_acq_ptr atomic_add_acq_long +#define atomic_add_rel_ptr atomic_add_rel_long +#define atomic_subtract_ptr atomic_subtract_long +#define atomic_subtract_acq_ptr atomic_subtract_acq_long +#define atomic_subtract_rel_ptr atomic_subtract_rel_long +#define atomic_load_acq_ptr atomic_load_acq_long +#define atomic_store_rel_ptr atomic_store_rel_long +#define atomic_cmpset_ptr atomic_cmpset_long +#define atomic_cmpset_acq_ptr atomic_cmpset_acq_long +#define atomic_cmpset_rel_ptr atomic_cmpset_rel_long +#define atomic_swap_ptr atomic_swap_long +#define atomic_readandclear_ptr atomic_readandclear_long diff --git a/include/xhyve/support/bitset.h b/include/xhyve/support/bitset.h new file mode 100644 index 0000000..83de227 --- /dev/null +++ b/include/xhyve/support/bitset.h @@ -0,0 +1,215 @@ +/*- + * Copyright (c) 2008, Jeffrey Roberson + * All rights reserved. + * + * Copyright (c) 2008 Nokia Corporation + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice unmodified, this list of conditions, and the following + * disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#pragma once + +#include +#include + +/* + * Macros addressing word and bit within it, tuned to make compiler + * optimize cases when SETSIZE fits into single machine word. + */ +#define _BITSET_BITS (sizeof(long) * NBBY) + +#define __bitset_words(_s) (howmany(_s, _BITSET_BITS)) + +#define __bitset_mask(_s, n) \ + (1L << ((__bitset_words((_s)) == 1) ? \ + (size_t)(n) : ((n) % _BITSET_BITS))) + +#define __bitset_word(_s, n) \ + ((__bitset_words((_s)) == 1) ? 0 : ((n) / _BITSET_BITS)) + +#define BITSET_DEFINE(t, _s) \ +struct t { \ + long __bits[__bitset_words((_s))]; \ +} + +#define BITSET_T_INITIALIZER(x) \ + { .__bits = { x } } + +#define BITSET_FSET(n) \ + [ 0 ... ((n) - 1) ] = (-1L) + +#define BIT_CLR(_s, n, p) \ + ((p)->__bits[__bitset_word(_s, n)] &= ~__bitset_mask((_s), (n))) + +#define BIT_COPY(_s, f, t) (void)(*(t) = *(f)) + +#define BIT_ISSET(_s, n, p) \ + ((((p)->__bits[__bitset_word(_s, n)] & __bitset_mask((_s), (n))) != 0)) + +#define BIT_SET(_s, n, p) \ + ((p)->__bits[__bitset_word(_s, n)] |= __bitset_mask((_s), (n))) + +#define BIT_ZERO(_s, p) do { \ + size_t __i; \ + for (__i = 0; __i < __bitset_words((_s)); __i++) \ + (p)->__bits[__i] = 0L; \ +} while (0) + +#define BIT_FILL(_s, p) do { \ + size_t __i; \ + for (__i = 0; __i < __bitset_words((_s)); __i++) \ + (p)->__bits[__i] = -1L; \ +} while (0) + +#define BIT_SETOF(_s, n, p) do { \ + BIT_ZERO(_s, p); \ + (p)->__bits[__bitset_word(_s, n)] = __bitset_mask((_s), (n)); \ +} while (0) + +/* Is p empty. */ +#define BIT_EMPTY(_s, p) __extension__ ({ \ + size_t __i; \ + for (__i = 0; __i < __bitset_words((_s)); __i++) \ + if ((p)->__bits[__i]) \ + break; \ + __i == __bitset_words((_s)); \ +}) + +/* Is p full set. */ +#define BIT_ISFULLSET(_s, p) __extension__ ({ \ + size_t __i; \ + for (__i = 0; __i < __bitset_words((_s)); __i++) \ + if ((p)->__bits[__i] != (long)-1) \ + break; \ + __i == __bitset_words((_s)); \ +}) + +/* Is c a subset of p. */ +#define BIT_SUBSET(_s, p, c) __extension__ ({ \ + size_t __i; \ + for (__i = 0; __i < __bitset_words((_s)); __i++) \ + if (((c)->__bits[__i] & \ + (p)->__bits[__i]) != \ + (c)->__bits[__i]) \ + break; \ + __i == __bitset_words((_s)); \ +}) + +/* Are there any common bits between b & c? */ +#define BIT_OVERLAP(_s, p, c) __extension__ ({ \ + size_t __i; \ + for (__i = 0; __i < __bitset_words((_s)); __i++) \ + if (((c)->__bits[__i] & \ + (p)->__bits[__i]) != 0) \ + break; \ + __i != __bitset_words((_s)); \ +}) + +/* Compare two sets, returns 0 if equal 1 otherwise. */ +#define BIT_CMP(_s, p, c) __extension__ ({ \ + size_t __i; \ + for (__i = 0; __i < __bitset_words((_s)); __i++) \ + if (((c)->__bits[__i] != \ + (p)->__bits[__i])) \ + break; \ + __i != __bitset_words((_s)); \ +}) + +#define BIT_OR(_s, d, s) do { \ + size_t __i; \ + for (__i = 0; __i < __bitset_words((_s)); __i++) \ + (d)->__bits[__i] |= (s)->__bits[__i]; \ +} while (0) + +#define BIT_AND(_s, d, s) do { \ + size_t __i; \ + for (__i = 0; __i < __bitset_words((_s)); __i++) \ + (d)->__bits[__i] &= (s)->__bits[__i]; \ +} while (0) + +#define BIT_NAND(_s, d, s) do { \ + size_t __i; \ + for (__i = 0; __i < __bitset_words((_s)); __i++) \ + (d)->__bits[__i] &= ~(s)->__bits[__i]; \ +} while (0) + +#define BIT_CLR_ATOMIC(_s, n, p) \ + atomic_clear_long(((volatile u_long *) \ + &(p)->__bits[__bitset_word(_s, n)]), __bitset_mask((_s), n)) + +#define BIT_SET_ATOMIC(_s, n, p) \ + atomic_set_long(((volatile u_long *) &(p)->__bits[__bitset_word(_s, n)]), \ + __bitset_mask((_s), n)) + +#define BIT_SET_ATOMIC_ACQ(_s, n, p) \ + atomic_set_acq_long(&(p)->__bits[__bitset_word(_s, n)], \ + __bitset_mask((_s), n)) + +/* Convenience functions catering special cases. */ +#define BIT_AND_ATOMIC(_s, d, s) do { \ + size_t __i; \ + for (__i = 0; __i < __bitset_words((_s)); __i++) \ + atomic_clear_long(&(d)->__bits[__i], \ + ~(s)->__bits[__i]); \ +} while (0) + +#define BIT_OR_ATOMIC(_s, d, s) do { \ + size_t __i; \ + for (__i = 0; __i < __bitset_words((_s)); __i++) \ + atomic_set_long(&(d)->__bits[__i], \ + (s)->__bits[__i]); \ +} while (0) + +#define BIT_COPY_STORE_REL(_s, f, t) do { \ + size_t __i; \ + for (__i = 0; __i < __bitset_words((_s)); __i++) \ + atomic_store_rel_long(&(t)->__bits[__i], \ + (f)->__bits[__i]); \ +} while (0) + +#define BIT_FFS(_s, p) __extension__ ({ \ + size_t __i; \ + int __bit; \ + \ + __bit = 0; \ + for (__i = 0; __i < __bitset_words((_s)); __i++) { \ + if ((p)->__bits[__i] != 0) { \ + __bit = ffsl((p)->__bits[__i]); \ + __bit += __i * _BITSET_BITS; \ + break; \ + } \ + } \ + __bit; \ +}) + +#define BIT_COUNT(_s, p) __extension__ ({ \ + size_t __i; \ + int __count; \ + \ + __count = 0; \ + for (__i = 0; __i < __bitset_words((_s)); __i++) \ + __count += __bitcountl((p)->__bits[__i]); \ + __count; \ +}) diff --git a/include/xhyve/support/cpuset.h b/include/xhyve/support/cpuset.h new file mode 100644 index 0000000..46539d3 --- /dev/null +++ b/include/xhyve/support/cpuset.h @@ -0,0 +1,150 @@ +/*- + * Copyright (c) 2008, Jeffrey Roberson + * All rights reserved. + * + * Copyright (c) 2008 Nokia Corporation + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice unmodified, this list of conditions, and the following + * disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#pragma once + +#include + +#define CPU_MAXSIZE 32 + +#ifndef CPU_SETSIZE +#define CPU_SETSIZE CPU_MAXSIZE +#endif + +// #define _NCPUBITS _BITSET_BITS +// #define _NCPUWORDS __bitset_words(CPU_SETSIZE) + +BITSET_DEFINE(_cpuset, CPU_SETSIZE); +typedef struct _cpuset cpuset_t; + +// #define CPUSET_FSET BITSET_FSET(_NCPUWORDS) +// #define CPUSET_T_INITIALIZER BITSET_T_INITIALIZER + +// #define CPUSETBUFSIZ ((2 + sizeof(long) * 2) * _NCPUWORDS) + +#define CPU_CLR(n, p) BIT_CLR(CPU_SETSIZE, n, p) +// #define CPU_COPY(f, t) BIT_COPY(CPU_SETSIZE, f, t) +#define CPU_ISSET(n, p) BIT_ISSET(CPU_SETSIZE, n, p) +#define CPU_SET(n, p) BIT_SET(CPU_SETSIZE, n, p) +#define CPU_ZERO(p) BIT_ZERO(CPU_SETSIZE, p) +// #define CPU_FILL(p) BIT_FILL(CPU_SETSIZE, p) +#define CPU_SETOF(n, p) BIT_SETOF(CPU_SETSIZE, n, p) +#define CPU_EMPTY(p) BIT_EMPTY(CPU_SETSIZE, p) +// #define CPU_ISFULLSET(p) BIT_ISFULLSET(CPU_SETSIZE, p) +// #define CPU_SUBSET(p, c) BIT_SUBSET(CPU_SETSIZE, p, c) +// #define CPU_OVERLAP(p, c) BIT_OVERLAP(CPU_SETSIZE, p, c) +#define CPU_CMP(p, c) BIT_CMP(CPU_SETSIZE, p, c) +// #define CPU_OR(d, s) BIT_OR(CPU_SETSIZE, d, s) +#define CPU_AND(d, s) BIT_AND(CPU_SETSIZE, d, s) +// #define CPU_NAND(d, s) BIT_NAND(CPU_SETSIZE, d, s) +#define CPU_CLR_ATOMIC(n, p) BIT_CLR_ATOMIC(CPU_SETSIZE, n, p) +#define CPU_SET_ATOMIC(n, p) BIT_SET_ATOMIC(CPU_SETSIZE, n, p) +// #define CPU_SET_ATOMIC_ACQ(n, p) BIT_SET_ATOMIC_ACQ(CPU_SETSIZE, n, p) +// #define CPU_AND_ATOMIC(n, p) BIT_AND_ATOMIC(CPU_SETSIZE, n, p) +// #define CPU_OR_ATOMIC(d, s) BIT_OR_ATOMIC(CPU_SETSIZE, d, s) +// #define CPU_COPY_STORE_REL(f, t) BIT_COPY_STORE_REL(CPU_SETSIZE, f, t) +#define CPU_FFS(p) BIT_FFS(CPU_SETSIZE, p) +// #define CPU_COUNT(p) BIT_COUNT(CPU_SETSIZE, p) + +// /* +// * Valid cpulevel_t values. +// */ +// #define CPU_LEVEL_ROOT 1 /* All system cpus. */ +// #define CPU_LEVEL_CPUSET 2 /* Available cpus for which. */ +// #define CPU_LEVEL_WHICH 3 /* Actual mask/id for which. */ + +// /* +// * Valid cpuwhich_t values. +// */ +// #define CPU_WHICH_TID 1 /* Specifies a thread id. */ +// #define CPU_WHICH_PID 2 /* Specifies a process id. */ +// #define CPU_WHICH_CPUSET 3 /* Specifies a set id. */ +// #define CPU_WHICH_IRQ 4 /* Specifies an irq #. */ +// #define CPU_WHICH_JAIL 5 /* Specifies a jail id. */ +// #define CPU_WHICH_DOMAIN 6 /* Specifies a NUMA domain id. */ + +// /* +// * Reserved cpuset identifiers. +// */ +// #define CPUSET_INVALID -1 +// #define CPUSET_DEFAULT 0 + +// #ifdef _KERNEL +// LIST_HEAD(setlist, cpuset); + +// /* +// * cpusets encapsulate cpu binding information for one or more threads. +// * +// * a - Accessed with atomics. +// * s - Set at creation, never modified. Only a ref required to read. +// * c - Locked internally by a cpuset lock. +// * +// * The bitmask is only modified while holding the cpuset lock. It may be +// * read while only a reference is held but the consumer must be prepared +// * to deal with inconsistent results. +// */ +// struct cpuset { +// cpuset_t cs_mask; /* bitmask of valid cpus. */ +// volatile u_int cs_ref; /* (a) Reference count. */ +// int cs_flags; /* (s) Flags from below. */ +// cpusetid_t cs_id; /* (s) Id or INVALID. */ +// struct cpuset *cs_parent; /* (s) Pointer to our parent. */ +// LIST_ENTRY(cpuset) cs_link; /* (c) All identified sets. */ +// LIST_ENTRY(cpuset) cs_siblings; /* (c) Sibling set link. */ +// struct setlist cs_children; /* (c) List of children. */ +// }; + +// #define CPU_SET_ROOT 0x0001 /* Set is a root set. */ +// #define CPU_SET_RDONLY 0x0002 /* No modification allowed. */ + +// extern cpuset_t *cpuset_root; +// struct prison; +// struct proc; + +// struct cpuset *cpuset_thread0(void); +// struct cpuset *cpuset_ref(struct cpuset *); +// void cpuset_rel(struct cpuset *); +// int cpuset_setthread(lwpid_t id, cpuset_t *); +// int cpuset_setithread(lwpid_t id, int cpu); +// int cpuset_create_root(struct prison *, struct cpuset **); +// int cpuset_setproc_update_set(struct proc *, struct cpuset *); +// char *cpusetobj_strprint(char *, const cpuset_t *); +// int cpusetobj_strscan(cpuset_t *, const char *); + +// #else +// __BEGIN_DECLS +// int cpuset(cpusetid_t *); +// int cpuset_setid(cpuwhich_t, id_t, cpusetid_t); +// int cpuset_getid(cpulevel_t, cpuwhich_t, id_t, cpusetid_t *); +// int cpuset_getaffinity(cpulevel_t, cpuwhich_t, id_t, size_t, cpuset_t *); +// int cpuset_setaffinity(cpulevel_t, cpuwhich_t, id_t, size_t, const cpuset_t *); +// __END_DECLS +// #endif diff --git a/include/xhyve/support/i8253reg.h b/include/xhyve/support/i8253reg.h new file mode 100644 index 0000000..2934e95 --- /dev/null +++ b/include/xhyve/support/i8253reg.h @@ -0,0 +1,81 @@ +/*- + * Copyright (c) 1993 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * from: Header: timerreg.h,v 1.2 93/02/28 15:08:58 mccanne Exp + * $FreeBSD$ + */ + +/* + * Register definitions for the Intel 8253 Programmable Interval Timer. + * + * This chip has three independent 16-bit down counters that can be + * read on the fly. There are three mode registers and three countdown + * registers. The countdown registers are addressed directly, via the + * first three I/O ports. The three mode registers are accessed via + * the fourth I/O port, with two bits in the mode byte indicating the + * register. (Why are hardware interfaces always so braindead?). + * + * To write a value into the countdown register, the mode register + * is first programmed with a command indicating the which byte of + * the two byte register is to be modified. The three possibilities + * are load msb (TMR_MR_MSB), load lsb (TMR_MR_LSB), or load lsb then + * msb (TMR_MR_BOTH). + * + * To read the current value ("on the fly") from the countdown register, + * you write a "latch" command into the mode register, then read the stable + * value from the corresponding I/O port. For example, you write + * TMR_MR_LATCH into the corresponding mode register. Presumably, + * after doing this, a write operation to the I/O port would result + * in undefined behavior (but hopefully not fry the chip). + * Reading in this manner has no side effects. + */ + +/* + * Macros for specifying values to be written into a mode register. + */ + +#pragma once + +#define TIMER_REG_CNTR0 0 /* timer 0 counter port */ +#define TIMER_REG_CNTR1 1 /* timer 1 counter port */ +#define TIMER_REG_CNTR2 2 /* timer 2 counter port */ +#define TIMER_REG_MODE 3 /* timer mode port */ +#define TIMER_SEL0 0x00 /* select counter 0 */ +#define TIMER_SEL1 0x40 /* select counter 1 */ +#define TIMER_SEL2 0x80 /* select counter 2 */ +#define TIMER_INTTC 0x00 /* mode 0, intr on terminal cnt */ +#define TIMER_ONESHOT 0x02 /* mode 1, one shot */ +#define TIMER_RATEGEN 0x04 /* mode 2, rate generator */ +#define TIMER_SQWAVE 0x06 /* mode 3, square wave */ +#define TIMER_SWSTROBE 0x08 /* mode 4, s/w triggered strobe */ +#define TIMER_HWSTROBE 0x0a /* mode 5, h/w triggered strobe */ +#define TIMER_LATCH 0x00 /* latch counter for reading */ +#define TIMER_LSB 0x10 /* r/w counter LSB */ +#define TIMER_MSB 0x20 /* r/w counter MSB */ +#define TIMER_16BIT 0x30 /* r/w counter 16 bits, LSB first */ +#define TIMER_BCD 0x01 /* count in BCD */ diff --git a/include/xhyve/support/i8259.h b/include/xhyve/support/i8259.h new file mode 100644 index 0000000..ac1e498 --- /dev/null +++ b/include/xhyve/support/i8259.h @@ -0,0 +1,83 @@ +/*- + * Copyright (c) 2003 Peter Wemm + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +/* + * Register defintions for the i8259A programmable interrupt controller. + */ + +#pragma once + +/* Initialization control word 1. Written to even address. */ +#define ICW1_IC4 0x01 /* ICW4 present */ +#define ICW1_SNGL 0x02 /* 1 = single, 0 = cascaded */ +#define ICW1_ADI 0x04 /* 1 = 4, 0 = 8 byte vectors */ +#define ICW1_LTIM 0x08 /* 1 = level trigger, 0 = edge */ +#define ICW1_RESET 0x10 /* must be 1 */ +/* 0x20 - 0x80 - in 8080/8085 mode only */ + +/* Initialization control word 2. Written to the odd address. */ +/* No definitions, it is the base vector of the IDT for 8086 mode */ + +/* Initialization control word 3. Written to the odd address. */ +/* For a master PIC, bitfield indicating a slave 8259 on given input */ +/* For slave, lower 3 bits are the slave's ID binary id on master */ + +/* Initialization control word 4. Written to the odd address. */ +#define ICW4_8086 0x01 /* 1 = 8086, 0 = 8080 */ +#define ICW4_AEOI 0x02 /* 1 = Auto EOI */ +#define ICW4_MS 0x04 /* 1 = buffered master, 0 = slave */ +#define ICW4_BUF 0x08 /* 1 = enable buffer mode */ +#define ICW4_SFNM 0x10 /* 1 = special fully nested mode */ + +/* Operation control words. Written after initialization. */ + +/* Operation control word type 1 */ +/* + * No definitions. Written to the odd address. Bitmask for interrupts. + * 1 = disabled. + */ + +/* Operation control word type 2. Bit 3 (0x08) must be zero. Even address. */ +#define OCW2_L0 0x01 /* Level */ +#define OCW2_L1 0x02 +#define OCW2_L2 0x04 +/* 0x08 must be 0 to select OCW2 vs OCW3 */ +/* 0x10 must be 0 to select OCW2 vs ICW1 */ +#define OCW2_EOI 0x20 /* 1 = EOI */ +#define OCW2_SL 0x40 /* EOI mode */ +#define OCW2_R 0x80 /* EOI mode */ + +/* Operation control word type 3. Bit 3 (0x08) must be set. Even address. */ +#define OCW3_RIS 0x01 /* 1 = read IS, 0 = read IR */ +#define OCW3_RR 0x02 /* register read */ +#define OCW3_P 0x04 /* poll mode command */ +/* 0x08 must be 1 to select OCW3 vs OCW2 */ +#define OCW3_SEL 0x08 /* must be 1 */ +/* 0x10 must be 0 to select OCW3 vs ICW1 */ +#define OCW3_SMM 0x20 /* special mode mask */ +#define OCW3_ESMM 0x40 /* enable SMM */ diff --git a/include/xhyve/support/linker_set.h b/include/xhyve/support/linker_set.h new file mode 100644 index 0000000..657435d --- /dev/null +++ b/include/xhyve/support/linker_set.h @@ -0,0 +1,96 @@ +/*- + * Copyright (c) 1999 John D. Polstra + * Copyright (c) 1999,2001 Peter Wemm + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +/* xhyve: sort of working linker sets for MachO */ + +#pragma once + +#define __GLOBL1(sym) __asm__(".globl " #sym) +#define __GLOBL(sym) __GLOBL1(sym) +#define __section(x) __attribute__((__section__(x))) + +/* + * The following macros are used to declare global sets of objects, which + * are collected by the linker into a `linker_set' as defined below. + * For ELF, this is done by constructing a separate segment for each set. + */ + +#define __MAKE_SET_CONST const + +/* + * Private macros, not to be used outside this header file. + */ +#define __MAKE_SET(set, sym) \ + __GLOBL(__CONCAT(__start_set_,set)); \ + __GLOBL(__CONCAT(__stop_set_,set)); \ + static void const * __MAKE_SET_CONST \ + __set_##set##_sym_##sym __section("__"#set",__set") \ + __used = &(sym) + +/* + * Public macros. + */ +#define TEXT_SET(set, sym) __MAKE_SET(set, sym) +#define DATA_SET(set, sym) __MAKE_SET(set, sym) +#define BSS_SET(set, sym) __MAKE_SET(set, sym) +#define ABS_SET(set, sym) __MAKE_SET(set, sym) +#define SET_ENTRY(set, sym) __MAKE_SET(set, sym) + +/* + * Initialize before referring to a given linker set. + */ +#define SET_DECLARE(set, ptype) \ + extern ptype __weak *__CONCAT(__start_set_,set) \ + __asm("segment$start$__"#set); \ + extern ptype __weak *__CONCAT(__stop_set_,set) \ + __asm("segment$end$__"#set) + +#define SET_BEGIN(set) \ + (&__CONCAT(__start_set_,set)) +#define SET_LIMIT(set) \ + (&__CONCAT(__stop_set_,set)) + +/* + * Iterate over all the elements of a set. + * + * Sets always contain addresses of things, and "pvar" points to words + * containing those addresses. Thus is must be declared as "type **pvar", + * and the address of each set item is obtained inside the loop by "*pvar". + */ +#define SET_FOREACH(pvar, set) \ + for (pvar = SET_BEGIN(set); pvar < SET_LIMIT(set); pvar++) + +#define SET_ITEM(set, i) \ + ((SET_BEGIN(set))[i]) + +/* + * Provide a count of the items in a set. + */ +#define SET_COUNT(set) \ + (SET_LIMIT(set) - SET_BEGIN(set)) diff --git a/include/xhyve/support/md5.h b/include/xhyve/support/md5.h new file mode 100644 index 0000000..4825027 --- /dev/null +++ b/include/xhyve/support/md5.h @@ -0,0 +1,52 @@ +/* MD5.H - header file for MD5C.C + * $FreeBSD$ + */ + +/*- + Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All +rights reserved. + +License to copy and use this software is granted provided that it +is identified as the "RSA Data Security, Inc. MD5 Message-Digest +Algorithm" in all material mentioning or referencing this software +or this function. + +License is also granted to make and use derivative works provided +that such works are identified as "derived from the RSA Data +Security, Inc. MD5 Message-Digest Algorithm" in all material +mentioning or referencing the derived work. + +RSA Data Security, Inc. makes no representations concerning either +the merchantability of this software or the suitability of this +software for any particular purpose. It is provided "as is" +without express or implied warranty of any kind. + +These notices must be retained in any copies of any part of this +documentation and/or software. + */ + +#pragma once + +#include + +#define MD5_BLOCK_LENGTH 64 +#define MD5_DIGEST_LENGTH 16 +#define MD5_DIGEST_STRING_LENGTH (MD5_DIGEST_LENGTH * 2 + 1) + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" +/* MD5 context. */ +typedef struct MD5Context { + u_int32_t state[4]; /* state (ABCD) */ + u_int32_t count[2]; /* number of bits, modulo 2^64 (lsb first) */ + unsigned char buffer[64]; /* input buffer */ +} MD5_CTX; +#pragma clang diagnostic pop + +void MD5Init(MD5_CTX *); +void MD5Update(MD5_CTX *, const void *, unsigned int); +void MD5Final(unsigned char [16], MD5_CTX *); +char * MD5End(MD5_CTX *, char *); +char * MD5File(const char *, char *); +char * MD5FileChunk(const char *, char *, off_t, off_t); +char * MD5Data(const void *, unsigned int, char *); diff --git a/include/xhyve/support/misc.h b/include/xhyve/support/misc.h new file mode 100644 index 0000000..d3497b3 --- /dev/null +++ b/include/xhyve/support/misc.h @@ -0,0 +1,64 @@ +#pragma once + +#include +#include +#include + +#define UNUSED __attribute__ ((unused)) +#define CTASSERT(x) _Static_assert ((x), "CTASSERT") +#define XHYVE_PAGE_SIZE 0x1000 +#define XHYVE_PAGE_MASK (XHYVE_PAGE_SIZE - 1) +#define XHYVE_PAGE_SHIFT 12 +#define __aligned(x) __attribute__ ((aligned ((x)))) +#define __packed __attribute__ ((packed)) +#define nitems(x) (sizeof((x)) / sizeof((x)[0])) +#define powerof2(x) ((((x)-1)&(x))==0) +#define roundup2(x, y) (((x)+((y)-1))&(~((y)-1))) /* if y is powers of two */ +#define nitems(x) (sizeof((x)) / sizeof((x)[0])) +#define min(x, y) (((x) < (y)) ? (x) : (y)) + +#define xhyve_abort(...) \ + do { \ + fprintf(stderr, __VA_ARGS__); \ + abort(); \ + } while (0) + +#define xhyve_warn(...) \ + do { \ + fprintf(stderr, __VA_ARGS__); \ + } while (0) + +#ifdef XHYVE_CONFIG_ASSERT +#define KASSERT(exp, msg) if (!(exp)) xhyve_abort msg +#define KWARN(exp, msg) if (!(exp)) xhyve_warn msg +#else +#define KASSERT(exp, msg) if (0) xhyve_abort msg +#define KWARN(exp, msg) if (0) xhyve_warn msg +#endif + +#define FALSE 0 +#define TRUE 1 + +#define XHYVE_PROT_READ 1 +#define XHYVE_PROT_WRITE 2 +#define XHYVE_PROT_EXECUTE 4 + +#define VM_SUCCESS 0 + +/* sys/sys/types.h */ +typedef unsigned char u_char; +typedef unsigned short u_short; +typedef unsigned int u_int; +typedef unsigned long u_long; + +static inline void cpuid_count(uint32_t ax, uint32_t cx, uint32_t *p) { + __asm__ __volatile__ ("cpuid" + : "=a" (p[0]), "=b" (p[1]), "=c" (p[2]), "=d" (p[3]) + : "0" (ax), "c" (cx)); +} + +static inline void do_cpuid(unsigned ax, unsigned *p) { + __asm__ __volatile__ ("cpuid" + : "=a" (p[0]), "=b" (p[1]), "=c" (p[2]), "=d" (p[3]) + : "0" (ax)); +} diff --git a/include/xhyve/support/mptable.h b/include/xhyve/support/mptable.h new file mode 100644 index 0000000..f8ff7f5 --- /dev/null +++ b/include/xhyve/support/mptable.h @@ -0,0 +1,194 @@ +/*- + * Copyright (c) 1996, by Steve Passe + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. The name of the developer may NOT be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#pragma once + +#include +#include + +enum busTypes { + NOBUS = 0, + CBUS = 1, + CBUSII = 2, + EISA = 3, + ISA = 6, + MCA = 9, + PCI = 13, + XPRESS = 18, + MAX_BUSTYPE = 18, + UNKNOWN_BUSTYPE = 0xff +}; + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpacked" + +/* MP Floating Pointer Structure */ +typedef struct MPFPS { + uint8_t signature[4]; + uint32_t pap; + uint8_t length; + uint8_t spec_rev; + uint8_t checksum; + uint8_t config_type; + uint8_t mpfb2; + uint8_t mpfb3; + uint8_t mpfb4; + uint8_t mpfb5; +} __packed *mpfps_t; + +#define MPFB2_IMCR_PRESENT 0x80 +#define MPFB2_MUL_CLK_SRCS 0x40 + +/* MP Configuration Table Header */ +typedef struct MPCTH { + uint8_t signature[4]; + uint16_t base_table_length; + uint8_t spec_rev; + uint8_t checksum; + uint8_t oem_id[8]; + uint8_t product_id[12]; + uint32_t oem_table_pointer; + uint16_t oem_table_size; + uint16_t entry_count; + uint32_t apic_address; + uint16_t extended_table_length; + uint8_t extended_table_checksum; + uint8_t reserved; +} __packed *mpcth_t; + +/* Base table entries */ + +#define MPCT_ENTRY_PROCESSOR 0 +#define MPCT_ENTRY_BUS 1 +#define MPCT_ENTRY_IOAPIC 2 +#define MPCT_ENTRY_INT 3 +#define MPCT_ENTRY_LOCAL_INT 4 + +typedef struct PROCENTRY { + uint8_t type; + uint8_t apic_id; + uint8_t apic_version; + uint8_t cpu_flags; + uint32_t cpu_signature; + uint32_t feature_flags; + uint32_t reserved1; + uint32_t reserved2; +} __packed *proc_entry_ptr; + +#define PROCENTRY_FLAG_EN 0x01 +#define PROCENTRY_FLAG_BP 0x02 + +typedef struct BUSENTRY { + uint8_t type; + uint8_t bus_id; + uint8_t bus_type[6]; +} __packed *bus_entry_ptr; + +typedef struct IOAPICENTRY { + uint8_t type; + uint8_t apic_id; + uint8_t apic_version; + uint8_t apic_flags; + uint32_t apic_address; +} __packed *io_apic_entry_ptr; + +#define IOAPICENTRY_FLAG_EN 0x01 + +typedef struct INTENTRY { + uint8_t type; + uint8_t int_type; + uint16_t int_flags; + uint8_t src_bus_id; + uint8_t src_bus_irq; + uint8_t dst_apic_id; + uint8_t dst_apic_int; +} __packed *int_entry_ptr; + +#define INTENTRY_TYPE_INT 0 +#define INTENTRY_TYPE_NMI 1 +#define INTENTRY_TYPE_SMI 2 +#define INTENTRY_TYPE_EXTINT 3 + +#define INTENTRY_FLAGS_POLARITY 0x3 +#define INTENTRY_FLAGS_POLARITY_CONFORM 0x0 +#define INTENTRY_FLAGS_POLARITY_ACTIVEHI 0x1 +#define INTENTRY_FLAGS_POLARITY_ACTIVELO 0x3 +#define INTENTRY_FLAGS_TRIGGER 0xc +#define INTENTRY_FLAGS_TRIGGER_CONFORM 0x0 +#define INTENTRY_FLAGS_TRIGGER_EDGE 0x4 +#define INTENTRY_FLAGS_TRIGGER_LEVEL 0xc + +/* Extended table entries */ + +typedef struct EXTENTRY { + uint8_t type; + uint8_t length; +} __packed *ext_entry_ptr; + +#define MPCT_EXTENTRY_SAS 0x80 +#define MPCT_EXTENTRY_BHD 0x81 +#define MPCT_EXTENTRY_CBASM 0x82 + +typedef struct SASENTRY { + uint8_t type; + uint8_t length; + uint8_t bus_id; + uint8_t address_type; + uint64_t address_base; + uint64_t address_length; +} __packed *sas_entry_ptr; + +#define SASENTRY_TYPE_IO 0 +#define SASENTRY_TYPE_MEMORY 1 +#define SASENTRY_TYPE_PREFETCH 2 + +typedef struct BHDENTRY { + uint8_t type; + uint8_t length; + uint8_t bus_id; + uint8_t bus_info; + uint8_t parent_bus; + uint8_t reserved[3]; +} __packed *bhd_entry_ptr; + +#define BHDENTRY_INFO_SUBTRACTIVE_DECODE 0x1 + +typedef struct CBASMENTRY { + uint8_t type; + uint8_t length; + uint8_t bus_id; + uint8_t address_mod; + uint32_t predefined_range; +} __packed *cbasm_entry_ptr; + +#define CBASMENTRY_ADDRESS_MOD_ADD 0x0 +#define CBASMENTRY_ADDRESS_MOD_SUBTRACT 0x1 + +#define CBASMENTRY_RANGE_ISA_IO 0 +#define CBASMENTRY_RANGE_VGA_IO 1 + +#pragma clang diagnostic pop diff --git a/include/xhyve/support/ns16550.h b/include/xhyve/support/ns16550.h new file mode 100644 index 0000000..2a023d0 --- /dev/null +++ b/include/xhyve/support/ns16550.h @@ -0,0 +1,242 @@ +/*- + * Copyright (c) 1991 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * from: @(#)ns16550.h 7.1 (Berkeley) 5/9/91 + * $FreeBSD$ + */ + +/* + * NS8250... UART registers. + */ + +/* 8250 registers #[0-6]. */ + +#pragma once + +#define com_data 0 /* data register (R/W) */ +#define REG_DATA com_data + +#define com_ier 1 /* interrupt enable register (W) */ +#define REG_IER com_ier +#define IER_ERXRDY 0x1 +#define IER_ETXRDY 0x2 +#define IER_ERLS 0x4 +#define IER_EMSC 0x8 + +#define IER_BITS "\20\1ERXRDY\2ETXRDY\3ERLS\4EMSC" + +#define com_iir 2 /* interrupt identification register (R) */ +#define REG_IIR com_iir +#define IIR_IMASK 0xf +#define IIR_RXTOUT 0xc +#define IIR_BUSY 0x7 +#define IIR_RLS 0x6 +#define IIR_RXRDY 0x4 +#define IIR_TXRDY 0x2 +#define IIR_NOPEND 0x1 +#define IIR_MLSC 0x0 +#define IIR_FIFO_MASK 0xc0 /* set if FIFOs are enabled */ + +#define IIR_BITS "\20\1NOPEND\2TXRDY\3RXRDY" + +#define com_lcr 3 /* line control register (R/W) */ +#define com_cfcr com_lcr /* character format control register (R/W) */ +#define REG_LCR com_lcr +#define LCR_DLAB 0x80 +#define CFCR_DLAB LCR_DLAB +#define LCR_EFR_ENABLE 0xbf /* magic to enable EFR on 16650 up */ +#define CFCR_EFR_ENABLE LCR_EFR_ENABLE +#define LCR_SBREAK 0x40 +#define CFCR_SBREAK LCR_SBREAK +#define LCR_PZERO 0x30 +#define CFCR_PZERO LCR_PZERO +#define LCR_PONE 0x20 +#define CFCR_PONE LCR_PONE +#define LCR_PEVEN 0x10 +#define CFCR_PEVEN LCR_PEVEN +#define LCR_PODD 0x00 +#define CFCR_PODD LCR_PODD +#define LCR_PENAB 0x08 +#define CFCR_PENAB LCR_PENAB +#define LCR_STOPB 0x04 +#define CFCR_STOPB LCR_STOPB +#define LCR_8BITS 0x03 +#define CFCR_8BITS LCR_8BITS +#define LCR_7BITS 0x02 +#define CFCR_7BITS LCR_7BITS +#define LCR_6BITS 0x01 +#define CFCR_6BITS LCR_6BITS +#define LCR_5BITS 0x00 +#define CFCR_5BITS LCR_5BITS + +#define com_mcr 4 /* modem control register (R/W) */ +#define REG_MCR com_mcr +#define MCR_PRESCALE 0x80 /* only available on 16650 up */ +#define MCR_LOOPBACK 0x10 +#define MCR_IE 0x08 +#define MCR_IENABLE MCR_IE +#define MCR_DRS 0x04 +#define MCR_RTS 0x02 +#define MCR_DTR 0x01 + +#define MCR_BITS "\20\1DTR\2RTS\3DRS\4IE\5LOOPBACK\10PRESCALE" + +#define com_lsr 5 /* line status register (R/W) */ +#define REG_LSR com_lsr +#define LSR_RCV_FIFO 0x80 +#define LSR_TEMT 0x40 +#define LSR_TSRE LSR_TEMT +#define LSR_THRE 0x20 +#define LSR_TXRDY LSR_THRE +#define LSR_BI 0x10 +#define LSR_FE 0x08 +#define LSR_PE 0x04 +#define LSR_OE 0x02 +#define LSR_RXRDY 0x01 +#define LSR_RCV_MASK 0x1f + +#define LSR_BITS "\20\1RXRDY\2OE\3PE\4FE\5BI\6THRE\7TEMT\10RCV_FIFO" + +#define com_msr 6 /* modem status register (R/W) */ +#define REG_MSR com_msr +#define MSR_DCD 0x80 +#define MSR_RI 0x40 +#define MSR_DSR 0x20 +#define MSR_CTS 0x10 +#define MSR_DDCD 0x08 +#define MSR_TERI 0x04 +#define MSR_DDSR 0x02 +#define MSR_DCTS 0x01 + +#define MSR_BITS "\20\1DCTS\2DDSR\3TERI\4DDCD\5CTS\6DSR\7RI\10DCD" + +/* 8250 multiplexed registers #[0-1]. Access enabled by LCR[7]. */ +#define com_dll 0 /* divisor latch low (R/W) */ +#define com_dlbl com_dll +#define com_dlm 1 /* divisor latch high (R/W) */ +#define com_dlbh com_dlm +#define REG_DLL com_dll +#define REG_DLH com_dlm + +/* 16450 register #7. Not multiplexed. */ +#define com_scr 7 /* scratch register (R/W) */ + +/* 16550 register #2. Not multiplexed. */ +#define com_fcr 2 /* FIFO control register (W) */ +#define com_fifo com_fcr +#define REG_FCR com_fcr +#define FCR_ENABLE 0x01 +#define FIFO_ENABLE FCR_ENABLE +#define FCR_RCV_RST 0x02 +#define FIFO_RCV_RST FCR_RCV_RST +#define FCR_XMT_RST 0x04 +#define FIFO_XMT_RST FCR_XMT_RST +#define FCR_DMA 0x08 +#define FIFO_DMA_MODE FCR_DMA +#define FCR_RX_LOW 0x00 +#define FIFO_RX_LOW FCR_RX_LOW +#define FCR_RX_MEDL 0x40 +#define FIFO_RX_MEDL FCR_RX_MEDL +#define FCR_RX_MEDH 0x80 +#define FIFO_RX_MEDH FCR_RX_MEDH +#define FCR_RX_HIGH 0xc0 +#define FIFO_RX_HIGH FCR_RX_HIGH + +#define FCR_BITS "\20\1ENABLE\2RCV_RST\3XMT_RST\4DMA" + +/* 16650 registers #2,[4-7]. Access enabled by LCR_EFR_ENABLE. */ + +#define com_efr 2 /* enhanced features register (R/W) */ +#define REG_EFR com_efr +#define EFR_CTS 0x80 +#define EFR_AUTOCTS EFR_CTS +#define EFR_RTS 0x40 +#define EFR_AUTORTS EFR_RTS +#define EFR_EFE 0x10 /* enhanced functions enable */ + +#define com_xon1 4 /* XON 1 character (R/W) */ +#define com_xon2 5 /* XON 2 character (R/W) */ +#define com_xoff1 6 /* XOFF 1 character (R/W) */ +#define com_xoff2 7 /* XOFF 2 character (R/W) */ + +#define DW_REG_USR 31 /* DesignWare derived Uart Status Reg */ +#define com_usr 39 /* Octeon 16750/16550 Uart Status Reg */ +#define REG_USR com_usr +#define USR_BUSY 1 /* Uart Busy. Serial transfer in progress */ +#define USR_TXFIFO_NOTFULL 2 /* Uart TX FIFO Not full */ + +/* 16950 register #1. Access enabled by ACR[7]. Also requires !LCR[7]. */ +#define com_asr 1 /* additional status register (R[0-7]/W[0-1]) */ + +/* 16950 register #3. R/W access enabled by ACR[7]. */ +#define com_rfl 3 /* receiver fifo level (R) */ + +/* + * 16950 register #4. Access enabled by ACR[7]. Also requires + * !LCR_EFR_ENABLE. + */ +#define com_tfl 4 /* transmitter fifo level (R) */ + +/* + * 16950 register #5. Accessible if !LCR_EFR_ENABLE. Read access also + * requires ACR[6]. + */ +#define com_icr 5 /* index control register (R/W) */ + +/* + * 16950 register #7. It is the same as com_scr except it has a different + * abbreviation in the manufacturer's data sheet and it also serves as an + * index into the Indexed Control register set. + */ +#define com_spr com_scr /* scratch pad (and index) register (R/W) */ +#define REG_SPR com_scr + +/* + * 16950 indexed control registers #[0-0x13]. Access is via index in SPR, + * data in ICR (if ICR is accessible). + */ + +#define com_acr 0 /* additional control register (R/W) */ +#define ACR_ASE 0x80 /* ASR/RFL/TFL enable */ +#define ACR_ICRE 0x40 /* ICR enable */ +#define ACR_TLE 0x20 /* TTL/RTL enable */ + +#define com_cpr 1 /* clock prescaler register (R/W) */ +#define com_tcr 2 /* times clock register (R/W) */ +#define com_ttl 4 /* transmitter trigger level (R/W) */ +#define com_rtl 5 /* receiver trigger level (R/W) */ +/* ... */ + +/* Hardware extension mode register for RSB-2000/3000. */ +#define com_emr com_msr +#define EMR_EXBUFF 0x04 +#define EMR_CTSFLW 0x08 +#define EMR_DSRFLW 0x10 +#define EMR_RTSFLW 0x20 +#define EMR_DTRFLW 0x40 +#define EMR_EFMODE 0x80 diff --git a/include/xhyve/support/pcireg.h b/include/xhyve/support/pcireg.h new file mode 100644 index 0000000..720a497 --- /dev/null +++ b/include/xhyve/support/pcireg.h @@ -0,0 +1,945 @@ +/*- + * Copyright (c) 1997, Stefan Esser + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice unmodified, this list of conditions, and the following + * disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * $FreeBSD$ + * + */ + +#pragma once + +/* + * PCIM_xxx: mask to locate subfield in register + * PCIR_xxx: config register offset + * PCIC_xxx: device class + * PCIS_xxx: device subclass + * PCIP_xxx: device programming interface + * PCIV_xxx: PCI vendor ID (only required to fixup ancient devices) + * PCID_xxx: device ID + * PCIY_xxx: capability identification number + * PCIZ_xxx: extended capability identification number + */ + +/* some PCI bus constants */ +#define PCI_DOMAINMAX 65535 /* highest supported domain number */ +#define PCI_BUSMAX 255 /* highest supported bus number */ +#define PCI_SLOTMAX 31 /* highest supported slot number */ +#define PCI_FUNCMAX 7 /* highest supported function number */ +#define PCI_REGMAX 255 /* highest supported config register addr. */ +#define PCIE_REGMAX 4095 /* highest supported config register addr. */ +#define PCI_MAXHDRTYPE 2 + +#define PCIE_ARI_SLOTMAX 0 +#define PCIE_ARI_FUNCMAX 255 + +#define PCI_RID_BUS_SHIFT 8 +#define PCI_RID_SLOT_SHIFT 3 +#define PCI_RID_FUNC_SHIFT 0 + +#define PCI_RID(bus, slot, func) \ + ((((bus) & PCI_BUSMAX) << PCI_RID_BUS_SHIFT) | \ + (((slot) & PCI_SLOTMAX) << PCI_RID_SLOT_SHIFT) | \ + (((func) & PCI_FUNCMAX) << PCI_RID_FUNC_SHIFT)) + +#define PCI_ARI_RID(bus, func) \ + ((((bus) & PCI_BUSMAX) << PCI_RID_BUS_SHIFT) | \ + (((func) & PCIE_ARI_FUNCMAX) << PCI_RID_FUNC_SHIFT)) + +#define PCI_RID2BUS(rid) (((rid) >> PCI_RID_BUS_SHIFT) & PCI_BUSMAX) +#define PCI_RID2SLOT(rid) (((rid) >> PCI_RID_SLOT_SHIFT) & PCI_SLOTMAX) +#define PCI_RID2FUNC(rid) (((rid) >> PCI_RID_FUNC_SHIFT) & PCI_FUNCMAX) + +#define PCIE_ARI_RID2SLOT(rid) (0) +#define PCIE_ARI_RID2FUNC(rid) \ + (((rid) >> PCI_RID_FUNC_SHIFT) & PCIE_ARI_FUNCMAX) + +#define PCIE_ARI_SLOT(func) (((func) >> PCI_RID_SLOT_SHIFT) & PCI_SLOTMAX) +#define PCIE_ARI_FUNC(func) (((func) >> PCI_RID_FUNC_SHIFT) & PCI_FUNCMAX) + +/* PCI config header registers for all devices */ + +#define PCIR_DEVVENDOR 0x00 +#define PCIR_VENDOR 0x00 +#define PCIR_DEVICE 0x02 +#define PCIR_COMMAND 0x04 +#define PCIM_CMD_PORTEN 0x0001 +#define PCIM_CMD_MEMEN 0x0002 +#define PCIM_CMD_BUSMASTEREN 0x0004 +#define PCIM_CMD_SPECIALEN 0x0008 +#define PCIM_CMD_MWRICEN 0x0010 +#define PCIM_CMD_PERRESPEN 0x0040 +#define PCIM_CMD_SERRESPEN 0x0100 +#define PCIM_CMD_BACKTOBACK 0x0200 +#define PCIM_CMD_INTxDIS 0x0400 +#define PCIR_STATUS 0x06 +#define PCIM_STATUS_INTxSTATE 0x0008 +#define PCIM_STATUS_CAPPRESENT 0x0010 +#define PCIM_STATUS_66CAPABLE 0x0020 +#define PCIM_STATUS_BACKTOBACK 0x0080 +#define PCIM_STATUS_MDPERR 0x0100 +#define PCIM_STATUS_SEL_FAST 0x0000 +#define PCIM_STATUS_SEL_MEDIMUM 0x0200 +#define PCIM_STATUS_SEL_SLOW 0x0400 +#define PCIM_STATUS_SEL_MASK 0x0600 +#define PCIM_STATUS_STABORT 0x0800 +#define PCIM_STATUS_RTABORT 0x1000 +#define PCIM_STATUS_RMABORT 0x2000 +#define PCIM_STATUS_SERR 0x4000 +#define PCIM_STATUS_PERR 0x8000 +#define PCIR_REVID 0x08 +#define PCIR_PROGIF 0x09 +#define PCIR_SUBCLASS 0x0a +#define PCIR_CLASS 0x0b +#define PCIR_CACHELNSZ 0x0c +#define PCIR_LATTIMER 0x0d +#define PCIR_HDRTYPE 0x0e +#define PCIM_HDRTYPE 0x7f +#define PCIM_HDRTYPE_NORMAL 0x00 +#define PCIM_HDRTYPE_BRIDGE 0x01 +#define PCIM_HDRTYPE_CARDBUS 0x02 +#define PCIM_MFDEV 0x80 +#define PCIR_BIST 0x0f + +/* Capability Register Offsets */ + +#define PCICAP_ID 0x0 +#define PCICAP_NEXTPTR 0x1 + +/* Capability Identification Numbers */ + +#define PCIY_PMG 0x01 /* PCI Power Management */ +#define PCIY_AGP 0x02 /* AGP */ +#define PCIY_VPD 0x03 /* Vital Product Data */ +#define PCIY_SLOTID 0x04 /* Slot Identification */ +#define PCIY_MSI 0x05 /* Message Signaled Interrupts */ +#define PCIY_CHSWP 0x06 /* CompactPCI Hot Swap */ +#define PCIY_PCIX 0x07 /* PCI-X */ +#define PCIY_HT 0x08 /* HyperTransport */ +#define PCIY_VENDOR 0x09 /* Vendor Unique */ +#define PCIY_DEBUG 0x0a /* Debug port */ +#define PCIY_CRES 0x0b /* CompactPCI central resource control */ +#define PCIY_HOTPLUG 0x0c /* PCI Hot-Plug */ +#define PCIY_SUBVENDOR 0x0d /* PCI-PCI bridge subvendor ID */ +#define PCIY_AGP8X 0x0e /* AGP 8x */ +#define PCIY_SECDEV 0x0f /* Secure Device */ +#define PCIY_EXPRESS 0x10 /* PCI Express */ +#define PCIY_MSIX 0x11 /* MSI-X */ +#define PCIY_SATA 0x12 /* SATA */ +#define PCIY_PCIAF 0x13 /* PCI Advanced Features */ + +/* Extended Capability Register Fields */ + +#define PCIR_EXTCAP 0x100 +#define PCIM_EXTCAP_ID 0x0000ffff +#define PCIM_EXTCAP_VER 0x000f0000 +#define PCIM_EXTCAP_NEXTPTR 0xfff00000 +#define PCI_EXTCAP_ID(ecap) ((ecap) & PCIM_EXTCAP_ID) +#define PCI_EXTCAP_VER(ecap) (((ecap) & PCIM_EXTCAP_VER) >> 16) +#define PCI_EXTCAP_NEXTPTR(ecap) (((ecap) & PCIM_EXTCAP_NEXTPTR) >> 20) + +/* Extended Capability Identification Numbers */ + +#define PCIZ_AER 0x0001 /* Advanced Error Reporting */ +#define PCIZ_VC 0x0002 /* Virtual Channel if MFVC Ext Cap not set */ +#define PCIZ_SERNUM 0x0003 /* Device Serial Number */ +#define PCIZ_PWRBDGT 0x0004 /* Power Budgeting */ +#define PCIZ_RCLINK_DCL 0x0005 /* Root Complex Link Declaration */ +#define PCIZ_RCLINK_CTL 0x0006 /* Root Complex Internal Link Control */ +#define PCIZ_RCEC_ASSOC 0x0007 /* Root Complex Event Collector Association */ +#define PCIZ_MFVC 0x0008 /* Multi-Function Virtual Channel */ +#define PCIZ_VC2 0x0009 /* Virtual Channel if MFVC Ext Cap set */ +#define PCIZ_RCRB 0x000a /* RCRB Header */ +#define PCIZ_VENDOR 0x000b /* Vendor Unique */ +#define PCIZ_CAC 0x000c /* Configuration Access Correction -- obsolete */ +#define PCIZ_ACS 0x000d /* Access Control Services */ +#define PCIZ_ARI 0x000e /* Alternative Routing-ID Interpretation */ +#define PCIZ_ATS 0x000f /* Address Translation Services */ +#define PCIZ_SRIOV 0x0010 /* Single Root IO Virtualization */ +#define PCIZ_MRIOV 0x0011 /* Multiple Root IO Virtualization */ +#define PCIZ_MULTICAST 0x0012 /* Multicast */ +#define PCIZ_PAGE_REQ 0x0013 /* Page Request */ +#define PCIZ_AMD 0x0014 /* Reserved for AMD */ +#define PCIZ_RESIZE_BAR 0x0015 /* Resizable BAR */ +#define PCIZ_DPA 0x0016 /* Dynamic Power Allocation */ +#define PCIZ_TPH_REQ 0x0017 /* TPH Requester */ +#define PCIZ_LTR 0x0018 /* Latency Tolerance Reporting */ +#define PCIZ_SEC_PCIE 0x0019 /* Secondary PCI Express */ +#define PCIZ_PMUX 0x001a /* Protocol Multiplexing */ +#define PCIZ_PASID 0x001b /* Process Address Space ID */ +#define PCIZ_LN_REQ 0x001c /* LN Requester */ +#define PCIZ_DPC 0x001d /* Downstream Porto Containment */ +#define PCIZ_L1PM 0x001e /* L1 PM Substates */ + +/* config registers for header type 0 devices */ + +#define PCIR_BARS 0x10 +#define PCIR_BAR(x) (PCIR_BARS + (x) * 4) +#define PCIR_MAX_BAR_0 5 +#define PCI_RID2BAR(rid) (((rid) - PCIR_BARS) / 4) +#define PCI_BAR_IO(x) (((x) & PCIM_BAR_SPACE) == PCIM_BAR_IO_SPACE) +#define PCI_BAR_MEM(x) (((x) & PCIM_BAR_SPACE) == PCIM_BAR_MEM_SPACE) +#define PCIM_BAR_SPACE 0x00000001 +#define PCIM_BAR_MEM_SPACE 0 +#define PCIM_BAR_IO_SPACE 1 +#define PCIM_BAR_MEM_TYPE 0x00000006 +#define PCIM_BAR_MEM_32 0 +#define PCIM_BAR_MEM_1MB 2 /* Locate below 1MB in PCI <= 2.1 */ +#define PCIM_BAR_MEM_64 4 +#define PCIM_BAR_MEM_PREFETCH 0x00000008 +#define PCIM_BAR_MEM_BASE 0xfffffffffffffff0ULL +#define PCIM_BAR_IO_RESERVED 0x00000002 +#define PCIM_BAR_IO_BASE 0xfffffffc +#define PCIR_CIS 0x28 +#define PCIM_CIS_ASI_MASK 0x00000007 +#define PCIM_CIS_ASI_CONFIG 0 +#define PCIM_CIS_ASI_BAR0 1 +#define PCIM_CIS_ASI_BAR1 2 +#define PCIM_CIS_ASI_BAR2 3 +#define PCIM_CIS_ASI_BAR3 4 +#define PCIM_CIS_ASI_BAR4 5 +#define PCIM_CIS_ASI_BAR5 6 +#define PCIM_CIS_ASI_ROM 7 +#define PCIM_CIS_ADDR_MASK 0x0ffffff8 +#define PCIM_CIS_ROM_MASK 0xf0000000 +#define PCIM_CIS_CONFIG_MASK 0xff +#define PCIR_SUBVEND_0 0x2c +#define PCIR_SUBDEV_0 0x2e +#define PCIR_BIOS 0x30 +#define PCIM_BIOS_ENABLE 0x01 +#define PCIM_BIOS_ADDR_MASK 0xfffff800 +#define PCIR_CAP_PTR 0x34 +#define PCIR_INTLINE 0x3c +#define PCIR_INTPIN 0x3d +#define PCIR_MINGNT 0x3e +#define PCIR_MAXLAT 0x3f + +/* config registers for header type 1 (PCI-to-PCI bridge) devices */ + +#define PCIR_MAX_BAR_1 1 +#define PCIR_SECSTAT_1 0x1e + +#define PCIR_PRIBUS_1 0x18 +#define PCIR_SECBUS_1 0x19 +#define PCIR_SUBBUS_1 0x1a +#define PCIR_SECLAT_1 0x1b + +#define PCIR_IOBASEL_1 0x1c +#define PCIR_IOLIMITL_1 0x1d +#define PCIR_IOBASEH_1 0x30 +#define PCIR_IOLIMITH_1 0x32 +#define PCIM_BRIO_16 0x0 +#define PCIM_BRIO_32 0x1 +#define PCIM_BRIO_MASK 0xf + +#define PCIR_MEMBASE_1 0x20 +#define PCIR_MEMLIMIT_1 0x22 + +#define PCIR_PMBASEL_1 0x24 +#define PCIR_PMLIMITL_1 0x26 +#define PCIR_PMBASEH_1 0x28 +#define PCIR_PMLIMITH_1 0x2c +#define PCIM_BRPM_32 0x0 +#define PCIM_BRPM_64 0x1 +#define PCIM_BRPM_MASK 0xf + +#define PCIR_BIOS_1 0x38 +#define PCIR_BRIDGECTL_1 0x3e + +/* config registers for header type 2 (CardBus) devices */ + +#define PCIR_MAX_BAR_2 0 +#define PCIR_CAP_PTR_2 0x14 +#define PCIR_SECSTAT_2 0x16 + +#define PCIR_PRIBUS_2 0x18 +#define PCIR_SECBUS_2 0x19 +#define PCIR_SUBBUS_2 0x1a +#define PCIR_SECLAT_2 0x1b + +#define PCIR_MEMBASE0_2 0x1c +#define PCIR_MEMLIMIT0_2 0x20 +#define PCIR_MEMBASE1_2 0x24 +#define PCIR_MEMLIMIT1_2 0x28 +#define PCIR_IOBASE0_2 0x2c +#define PCIR_IOLIMIT0_2 0x30 +#define PCIR_IOBASE1_2 0x34 +#define PCIR_IOLIMIT1_2 0x38 + +#define PCIR_BRIDGECTL_2 0x3e + +#define PCIR_SUBVEND_2 0x40 +#define PCIR_SUBDEV_2 0x42 + +#define PCIR_PCCARDIF_2 0x44 + +/* PCI device class, subclass and programming interface definitions */ + +#define PCIC_OLD 0x00 +#define PCIS_OLD_NONVGA 0x00 +#define PCIS_OLD_VGA 0x01 + +#define PCIC_STORAGE 0x01 +#define PCIS_STORAGE_SCSI 0x00 +#define PCIS_STORAGE_IDE 0x01 +#define PCIP_STORAGE_IDE_MODEPRIM 0x01 +#define PCIP_STORAGE_IDE_PROGINDPRIM 0x02 +#define PCIP_STORAGE_IDE_MODESEC 0x04 +#define PCIP_STORAGE_IDE_PROGINDSEC 0x08 +#define PCIP_STORAGE_IDE_MASTERDEV 0x80 +#define PCIS_STORAGE_FLOPPY 0x02 +#define PCIS_STORAGE_IPI 0x03 +#define PCIS_STORAGE_RAID 0x04 +#define PCIS_STORAGE_ATA_ADMA 0x05 +#define PCIS_STORAGE_SATA 0x06 +#define PCIP_STORAGE_SATA_AHCI_1_0 0x01 +#define PCIS_STORAGE_SAS 0x07 +#define PCIS_STORAGE_NVM 0x08 +#define PCIP_STORAGE_NVM_NVMHCI_1_0 0x01 +#define PCIP_STORAGE_NVM_ENTERPRISE_NVMHCI_1_0 0x02 +#define PCIS_STORAGE_OTHER 0x80 + +#define PCIC_NETWORK 0x02 +#define PCIS_NETWORK_ETHERNET 0x00 +#define PCIS_NETWORK_TOKENRING 0x01 +#define PCIS_NETWORK_FDDI 0x02 +#define PCIS_NETWORK_ATM 0x03 +#define PCIS_NETWORK_ISDN 0x04 +#define PCIS_NETWORK_WORLDFIP 0x05 +#define PCIS_NETWORK_PICMG 0x06 +#define PCIS_NETWORK_OTHER 0x80 + +#define PCIC_DISPLAY 0x03 +#define PCIS_DISPLAY_VGA 0x00 +#define PCIS_DISPLAY_XGA 0x01 +#define PCIS_DISPLAY_3D 0x02 +#define PCIS_DISPLAY_OTHER 0x80 + +#define PCIC_MULTIMEDIA 0x04 +#define PCIS_MULTIMEDIA_VIDEO 0x00 +#define PCIS_MULTIMEDIA_AUDIO 0x01 +#define PCIS_MULTIMEDIA_TELE 0x02 +#define PCIS_MULTIMEDIA_HDA 0x03 +#define PCIS_MULTIMEDIA_OTHER 0x80 + +#define PCIC_MEMORY 0x05 +#define PCIS_MEMORY_RAM 0x00 +#define PCIS_MEMORY_FLASH 0x01 +#define PCIS_MEMORY_OTHER 0x80 + +#define PCIC_BRIDGE 0x06 +#define PCIS_BRIDGE_HOST 0x00 +#define PCIS_BRIDGE_ISA 0x01 +#define PCIS_BRIDGE_EISA 0x02 +#define PCIS_BRIDGE_MCA 0x03 +#define PCIS_BRIDGE_PCI 0x04 +#define PCIP_BRIDGE_PCI_SUBTRACTIVE 0x01 +#define PCIS_BRIDGE_PCMCIA 0x05 +#define PCIS_BRIDGE_NUBUS 0x06 +#define PCIS_BRIDGE_CARDBUS 0x07 +#define PCIS_BRIDGE_RACEWAY 0x08 +#define PCIS_BRIDGE_PCI_TRANSPARENT 0x09 +#define PCIS_BRIDGE_INFINIBAND 0x0a +#define PCIS_BRIDGE_OTHER 0x80 + +#define PCIC_SIMPLECOMM 0x07 +#define PCIS_SIMPLECOMM_UART 0x00 +#define PCIP_SIMPLECOMM_UART_8250 0x00 +#define PCIP_SIMPLECOMM_UART_16450A 0x01 +#define PCIP_SIMPLECOMM_UART_16550A 0x02 +#define PCIP_SIMPLECOMM_UART_16650A 0x03 +#define PCIP_SIMPLECOMM_UART_16750A 0x04 +#define PCIP_SIMPLECOMM_UART_16850A 0x05 +#define PCIP_SIMPLECOMM_UART_16950A 0x06 +#define PCIS_SIMPLECOMM_PAR 0x01 +#define PCIS_SIMPLECOMM_MULSER 0x02 +#define PCIS_SIMPLECOMM_MODEM 0x03 +#define PCIS_SIMPLECOMM_GPIB 0x04 +#define PCIS_SIMPLECOMM_SMART_CARD 0x05 +#define PCIS_SIMPLECOMM_OTHER 0x80 + +#define PCIC_BASEPERIPH 0x08 +#define PCIS_BASEPERIPH_PIC 0x00 +#define PCIP_BASEPERIPH_PIC_8259A 0x00 +#define PCIP_BASEPERIPH_PIC_ISA 0x01 +#define PCIP_BASEPERIPH_PIC_EISA 0x02 +#define PCIP_BASEPERIPH_PIC_IO_APIC 0x10 +#define PCIP_BASEPERIPH_PIC_IOX_APIC 0x20 +#define PCIS_BASEPERIPH_DMA 0x01 +#define PCIS_BASEPERIPH_TIMER 0x02 +#define PCIS_BASEPERIPH_RTC 0x03 +#define PCIS_BASEPERIPH_PCIHOT 0x04 +#define PCIS_BASEPERIPH_SDHC 0x05 +#define PCIS_BASEPERIPH_IOMMU 0x06 +#define PCIS_BASEPERIPH_OTHER 0x80 + +#define PCIC_INPUTDEV 0x09 +#define PCIS_INPUTDEV_KEYBOARD 0x00 +#define PCIS_INPUTDEV_DIGITIZER 0x01 +#define PCIS_INPUTDEV_MOUSE 0x02 +#define PCIS_INPUTDEV_SCANNER 0x03 +#define PCIS_INPUTDEV_GAMEPORT 0x04 +#define PCIS_INPUTDEV_OTHER 0x80 + +#define PCIC_DOCKING 0x0a +#define PCIS_DOCKING_GENERIC 0x00 +#define PCIS_DOCKING_OTHER 0x80 + +#define PCIC_PROCESSOR 0x0b +#define PCIS_PROCESSOR_386 0x00 +#define PCIS_PROCESSOR_486 0x01 +#define PCIS_PROCESSOR_PENTIUM 0x02 +#define PCIS_PROCESSOR_ALPHA 0x10 +#define PCIS_PROCESSOR_POWERPC 0x20 +#define PCIS_PROCESSOR_MIPS 0x30 +#define PCIS_PROCESSOR_COPROC 0x40 + +#define PCIC_SERIALBUS 0x0c +#define PCIS_SERIALBUS_FW 0x00 +#define PCIS_SERIALBUS_ACCESS 0x01 +#define PCIS_SERIALBUS_SSA 0x02 +#define PCIS_SERIALBUS_USB 0x03 +#define PCIP_SERIALBUS_USB_UHCI 0x00 +#define PCIP_SERIALBUS_USB_OHCI 0x10 +#define PCIP_SERIALBUS_USB_EHCI 0x20 +#define PCIP_SERIALBUS_USB_XHCI 0x30 +#define PCIP_SERIALBUS_USB_DEVICE 0xfe +#define PCIS_SERIALBUS_FC 0x04 +#define PCIS_SERIALBUS_SMBUS 0x05 +#define PCIS_SERIALBUS_INFINIBAND 0x06 +#define PCIS_SERIALBUS_IPMI 0x07 +#define PCIP_SERIALBUS_IPMI_SMIC 0x00 +#define PCIP_SERIALBUS_IPMI_KCS 0x01 +#define PCIP_SERIALBUS_IPMI_BT 0x02 +#define PCIS_SERIALBUS_SERCOS 0x08 +#define PCIS_SERIALBUS_CANBUS 0x09 + +#define PCIC_WIRELESS 0x0d +#define PCIS_WIRELESS_IRDA 0x00 +#define PCIS_WIRELESS_IR 0x01 +#define PCIS_WIRELESS_RF 0x10 +#define PCIS_WIRELESS_BLUETOOTH 0x11 +#define PCIS_WIRELESS_BROADBAND 0x12 +#define PCIS_WIRELESS_80211A 0x20 +#define PCIS_WIRELESS_80211B 0x21 +#define PCIS_WIRELESS_OTHER 0x80 + +#define PCIC_INTELLIIO 0x0e +#define PCIS_INTELLIIO_I2O 0x00 + +#define PCIC_SATCOM 0x0f +#define PCIS_SATCOM_TV 0x01 +#define PCIS_SATCOM_AUDIO 0x02 +#define PCIS_SATCOM_VOICE 0x03 +#define PCIS_SATCOM_DATA 0x04 + +#define PCIC_CRYPTO 0x10 +#define PCIS_CRYPTO_NETCOMP 0x00 +#define PCIS_CRYPTO_ENTERTAIN 0x10 +#define PCIS_CRYPTO_OTHER 0x80 + +#define PCIC_DASP 0x11 +#define PCIS_DASP_DPIO 0x00 +#define PCIS_DASP_PERFCNTRS 0x01 +#define PCIS_DASP_COMM_SYNC 0x10 +#define PCIS_DASP_MGMT_CARD 0x20 +#define PCIS_DASP_OTHER 0x80 + +#define PCIC_OTHER 0xff + +/* Bridge Control Values. */ +#define PCIB_BCR_PERR_ENABLE 0x0001 +#define PCIB_BCR_SERR_ENABLE 0x0002 +#define PCIB_BCR_ISA_ENABLE 0x0004 +#define PCIB_BCR_VGA_ENABLE 0x0008 +#define PCIB_BCR_MASTER_ABORT_MODE 0x0020 +#define PCIB_BCR_SECBUS_RESET 0x0040 +#define PCIB_BCR_SECBUS_BACKTOBACK 0x0080 +#define PCIB_BCR_PRI_DISCARD_TIMEOUT 0x0100 +#define PCIB_BCR_SEC_DISCARD_TIMEOUT 0x0200 +#define PCIB_BCR_DISCARD_TIMER_STATUS 0x0400 +#define PCIB_BCR_DISCARD_TIMER_SERREN 0x0800 + +/* PCI power manangement */ +#define PCIR_POWER_CAP 0x2 +#define PCIM_PCAP_SPEC 0x0007 +#define PCIM_PCAP_PMEREQCLK 0x0008 +#define PCIM_PCAP_DEVSPECINIT 0x0020 +#define PCIM_PCAP_AUXPWR_0 0x0000 +#define PCIM_PCAP_AUXPWR_55 0x0040 +#define PCIM_PCAP_AUXPWR_100 0x0080 +#define PCIM_PCAP_AUXPWR_160 0x00c0 +#define PCIM_PCAP_AUXPWR_220 0x0100 +#define PCIM_PCAP_AUXPWR_270 0x0140 +#define PCIM_PCAP_AUXPWR_320 0x0180 +#define PCIM_PCAP_AUXPWR_375 0x01c0 +#define PCIM_PCAP_AUXPWRMASK 0x01c0 +#define PCIM_PCAP_D1SUPP 0x0200 +#define PCIM_PCAP_D2SUPP 0x0400 +#define PCIM_PCAP_D0PME 0x0800 +#define PCIM_PCAP_D1PME 0x1000 +#define PCIM_PCAP_D2PME 0x2000 +#define PCIM_PCAP_D3PME_HOT 0x4000 +#define PCIM_PCAP_D3PME_COLD 0x8000 + +#define PCIR_POWER_STATUS 0x4 +#define PCIM_PSTAT_D0 0x0000 +#define PCIM_PSTAT_D1 0x0001 +#define PCIM_PSTAT_D2 0x0002 +#define PCIM_PSTAT_D3 0x0003 +#define PCIM_PSTAT_DMASK 0x0003 +#define PCIM_PSTAT_NOSOFTRESET 0x0008 +#define PCIM_PSTAT_PMEENABLE 0x0100 +#define PCIM_PSTAT_D0POWER 0x0000 +#define PCIM_PSTAT_D1POWER 0x0200 +#define PCIM_PSTAT_D2POWER 0x0400 +#define PCIM_PSTAT_D3POWER 0x0600 +#define PCIM_PSTAT_D0HEAT 0x0800 +#define PCIM_PSTAT_D1HEAT 0x0a00 +#define PCIM_PSTAT_D2HEAT 0x0c00 +#define PCIM_PSTAT_D3HEAT 0x0e00 +#define PCIM_PSTAT_DATASELMASK 0x1e00 +#define PCIM_PSTAT_DATAUNKN 0x0000 +#define PCIM_PSTAT_DATADIV10 0x2000 +#define PCIM_PSTAT_DATADIV100 0x4000 +#define PCIM_PSTAT_DATADIV1000 0x6000 +#define PCIM_PSTAT_DATADIVMASK 0x6000 +#define PCIM_PSTAT_PME 0x8000 + +#define PCIR_POWER_BSE 0x6 +#define PCIM_PMCSR_BSE_D3B3 0x00 +#define PCIM_PMCSR_BSE_D3B2 0x40 +#define PCIM_PMCSR_BSE_BPCCE 0x80 + +#define PCIR_POWER_DATA 0x7 + +/* VPD capability registers */ +#define PCIR_VPD_ADDR 0x2 +#define PCIR_VPD_DATA 0x4 + +/* PCI Message Signalled Interrupts (MSI) */ +#define PCIR_MSI_CTRL 0x2 +#define PCIM_MSICTRL_VECTOR 0x0100 +#define PCIM_MSICTRL_64BIT 0x0080 +#define PCIM_MSICTRL_MME_MASK 0x0070 +#define PCIM_MSICTRL_MME_1 0x0000 +#define PCIM_MSICTRL_MME_2 0x0010 +#define PCIM_MSICTRL_MME_4 0x0020 +#define PCIM_MSICTRL_MME_8 0x0030 +#define PCIM_MSICTRL_MME_16 0x0040 +#define PCIM_MSICTRL_MME_32 0x0050 +#define PCIM_MSICTRL_MMC_MASK 0x000E +#define PCIM_MSICTRL_MMC_1 0x0000 +#define PCIM_MSICTRL_MMC_2 0x0002 +#define PCIM_MSICTRL_MMC_4 0x0004 +#define PCIM_MSICTRL_MMC_8 0x0006 +#define PCIM_MSICTRL_MMC_16 0x0008 +#define PCIM_MSICTRL_MMC_32 0x000A +#define PCIM_MSICTRL_MSI_ENABLE 0x0001 +#define PCIR_MSI_ADDR 0x4 +#define PCIR_MSI_ADDR_HIGH 0x8 +#define PCIR_MSI_DATA 0x8 +#define PCIR_MSI_DATA_64BIT 0xc +#define PCIR_MSI_MASK 0x10 +#define PCIR_MSI_PENDING 0x14 + +/* PCI-X definitions */ + +/* For header type 0 devices */ +#define PCIXR_COMMAND 0x2 +#define PCIXM_COMMAND_DPERR_E 0x0001 /* Data Parity Error Recovery */ +#define PCIXM_COMMAND_ERO 0x0002 /* Enable Relaxed Ordering */ +#define PCIXM_COMMAND_MAX_READ 0x000c /* Maximum Burst Read Count */ +#define PCIXM_COMMAND_MAX_READ_512 0x0000 +#define PCIXM_COMMAND_MAX_READ_1024 0x0004 +#define PCIXM_COMMAND_MAX_READ_2048 0x0008 +#define PCIXM_COMMAND_MAX_READ_4096 0x000c +#define PCIXM_COMMAND_MAX_SPLITS 0x0070 /* Maximum Split Transactions */ +#define PCIXM_COMMAND_MAX_SPLITS_1 0x0000 +#define PCIXM_COMMAND_MAX_SPLITS_2 0x0010 +#define PCIXM_COMMAND_MAX_SPLITS_3 0x0020 +#define PCIXM_COMMAND_MAX_SPLITS_4 0x0030 +#define PCIXM_COMMAND_MAX_SPLITS_8 0x0040 +#define PCIXM_COMMAND_MAX_SPLITS_12 0x0050 +#define PCIXM_COMMAND_MAX_SPLITS_16 0x0060 +#define PCIXM_COMMAND_MAX_SPLITS_32 0x0070 +#define PCIXM_COMMAND_VERSION 0x3000 +#define PCIXR_STATUS 0x4 +#define PCIXM_STATUS_DEVFN 0x000000FF +#define PCIXM_STATUS_BUS 0x0000FF00 +#define PCIXM_STATUS_64BIT 0x00010000 +#define PCIXM_STATUS_133CAP 0x00020000 +#define PCIXM_STATUS_SC_DISCARDED 0x00040000 +#define PCIXM_STATUS_UNEXP_SC 0x00080000 +#define PCIXM_STATUS_COMPLEX_DEV 0x00100000 +#define PCIXM_STATUS_MAX_READ 0x00600000 +#define PCIXM_STATUS_MAX_READ_512 0x00000000 +#define PCIXM_STATUS_MAX_READ_1024 0x00200000 +#define PCIXM_STATUS_MAX_READ_2048 0x00400000 +#define PCIXM_STATUS_MAX_READ_4096 0x00600000 +#define PCIXM_STATUS_MAX_SPLITS 0x03800000 +#define PCIXM_STATUS_MAX_SPLITS_1 0x00000000 +#define PCIXM_STATUS_MAX_SPLITS_2 0x00800000 +#define PCIXM_STATUS_MAX_SPLITS_3 0x01000000 +#define PCIXM_STATUS_MAX_SPLITS_4 0x01800000 +#define PCIXM_STATUS_MAX_SPLITS_8 0x02000000 +#define PCIXM_STATUS_MAX_SPLITS_12 0x02800000 +#define PCIXM_STATUS_MAX_SPLITS_16 0x03000000 +#define PCIXM_STATUS_MAX_SPLITS_32 0x03800000 +#define PCIXM_STATUS_MAX_CUM_READ 0x1C000000 +#define PCIXM_STATUS_RCVD_SC_ERR 0x20000000 +#define PCIXM_STATUS_266CAP 0x40000000 +#define PCIXM_STATUS_533CAP 0x80000000 + +/* For header type 1 devices (PCI-X bridges) */ +#define PCIXR_SEC_STATUS 0x2 +#define PCIXM_SEC_STATUS_64BIT 0x0001 +#define PCIXM_SEC_STATUS_133CAP 0x0002 +#define PCIXM_SEC_STATUS_SC_DISC 0x0004 +#define PCIXM_SEC_STATUS_UNEXP_SC 0x0008 +#define PCIXM_SEC_STATUS_SC_OVERRUN 0x0010 +#define PCIXM_SEC_STATUS_SR_DELAYED 0x0020 +#define PCIXM_SEC_STATUS_BUS_MODE 0x03c0 +#define PCIXM_SEC_STATUS_VERSION 0x3000 +#define PCIXM_SEC_STATUS_266CAP 0x4000 +#define PCIXM_SEC_STATUS_533CAP 0x8000 +#define PCIXR_BRIDGE_STATUS 0x4 +#define PCIXM_BRIDGE_STATUS_DEVFN 0x000000FF +#define PCIXM_BRIDGE_STATUS_BUS 0x0000FF00 +#define PCIXM_BRIDGE_STATUS_64BIT 0x00010000 +#define PCIXM_BRIDGE_STATUS_133CAP 0x00020000 +#define PCIXM_BRIDGE_STATUS_SC_DISCARDED 0x00040000 +#define PCIXM_BRIDGE_STATUS_UNEXP_SC 0x00080000 +#define PCIXM_BRIDGE_STATUS_SC_OVERRUN 0x00100000 +#define PCIXM_BRIDGE_STATUS_SR_DELAYED 0x00200000 +#define PCIXM_BRIDGE_STATUS_DEVID_MSGCAP 0x20000000 +#define PCIXM_BRIDGE_STATUS_266CAP 0x40000000 +#define PCIXM_BRIDGE_STATUS_533CAP 0x80000000 + +/* HT (HyperTransport) Capability definitions */ +#define PCIR_HT_COMMAND 0x2 +#define PCIM_HTCMD_CAP_MASK 0xf800 /* Capability type. */ +#define PCIM_HTCAP_SLAVE 0x0000 /* 000xx */ +#define PCIM_HTCAP_HOST 0x2000 /* 001xx */ +#define PCIM_HTCAP_SWITCH 0x4000 /* 01000 */ +#define PCIM_HTCAP_INTERRUPT 0x8000 /* 10000 */ +#define PCIM_HTCAP_REVISION_ID 0x8800 /* 10001 */ +#define PCIM_HTCAP_UNITID_CLUMPING 0x9000 /* 10010 */ +#define PCIM_HTCAP_EXT_CONFIG_SPACE 0x9800 /* 10011 */ +#define PCIM_HTCAP_ADDRESS_MAPPING 0xa000 /* 10100 */ +#define PCIM_HTCAP_MSI_MAPPING 0xa800 /* 10101 */ +#define PCIM_HTCAP_DIRECT_ROUTE 0xb000 /* 10110 */ +#define PCIM_HTCAP_VCSET 0xb800 /* 10111 */ +#define PCIM_HTCAP_RETRY_MODE 0xc000 /* 11000 */ +#define PCIM_HTCAP_X86_ENCODING 0xc800 /* 11001 */ +#define PCIM_HTCAP_GEN3 0xd000 /* 11010 */ +#define PCIM_HTCAP_FLE 0xd800 /* 11011 */ +#define PCIM_HTCAP_PM 0xe000 /* 11100 */ +#define PCIM_HTCAP_HIGH_NODE_COUNT 0xe800 /* 11101 */ + +/* HT MSI Mapping Capability definitions. */ +#define PCIM_HTCMD_MSI_ENABLE 0x0001 +#define PCIM_HTCMD_MSI_FIXED 0x0002 +#define PCIR_HTMSI_ADDRESS_LO 0x4 +#define PCIR_HTMSI_ADDRESS_HI 0x8 + +/* PCI Vendor capability definitions */ +#define PCIR_VENDOR_LENGTH 0x2 +#define PCIR_VENDOR_DATA 0x3 + +/* PCI EHCI Debug Port definitions */ +#define PCIR_DEBUG_PORT 0x2 +#define PCIM_DEBUG_PORT_OFFSET 0x1FFF +#define PCIM_DEBUG_PORT_BAR 0xe000 + +/* PCI-PCI Bridge Subvendor definitions */ +#define PCIR_SUBVENDCAP_ID 0x4 + +/* PCI Express definitions */ +#define PCIER_FLAGS 0x2 +#define PCIEM_FLAGS_VERSION 0x000F +#define PCIEM_FLAGS_TYPE 0x00F0 +#define PCIEM_TYPE_ENDPOINT 0x0000 +#define PCIEM_TYPE_LEGACY_ENDPOINT 0x0010 +#define PCIEM_TYPE_ROOT_PORT 0x0040 +#define PCIEM_TYPE_UPSTREAM_PORT 0x0050 +#define PCIEM_TYPE_DOWNSTREAM_PORT 0x0060 +#define PCIEM_TYPE_PCI_BRIDGE 0x0070 +#define PCIEM_TYPE_PCIE_BRIDGE 0x0080 +#define PCIEM_TYPE_ROOT_INT_EP 0x0090 +#define PCIEM_TYPE_ROOT_EC 0x00a0 +#define PCIEM_FLAGS_SLOT 0x0100 +#define PCIEM_FLAGS_IRQ 0x3e00 +#define PCIER_DEVICE_CAP 0x4 +#define PCIEM_CAP_MAX_PAYLOAD 0x00000007 +#define PCIEM_CAP_PHANTHOM_FUNCS 0x00000018 +#define PCIEM_CAP_EXT_TAG_FIELD 0x00000020 +#define PCIEM_CAP_L0S_LATENCY 0x000001c0 +#define PCIEM_CAP_L1_LATENCY 0x00000e00 +#define PCIEM_CAP_ROLE_ERR_RPT 0x00008000 +#define PCIEM_CAP_SLOT_PWR_LIM_VAL 0x03fc0000 +#define PCIEM_CAP_SLOT_PWR_LIM_SCALE 0x0c000000 +#define PCIEM_CAP_FLR 0x10000000 +#define PCIER_DEVICE_CTL 0x8 +#define PCIEM_CTL_COR_ENABLE 0x0001 +#define PCIEM_CTL_NFER_ENABLE 0x0002 +#define PCIEM_CTL_FER_ENABLE 0x0004 +#define PCIEM_CTL_URR_ENABLE 0x0008 +#define PCIEM_CTL_RELAXED_ORD_ENABLE 0x0010 +#define PCIEM_CTL_MAX_PAYLOAD 0x00e0 +#define PCIEM_CTL_EXT_TAG_FIELD 0x0100 +#define PCIEM_CTL_PHANTHOM_FUNCS 0x0200 +#define PCIEM_CTL_AUX_POWER_PM 0x0400 +#define PCIEM_CTL_NOSNOOP_ENABLE 0x0800 +#define PCIEM_CTL_MAX_READ_REQUEST 0x7000 +#define PCIEM_CTL_BRDG_CFG_RETRY 0x8000 /* PCI-E - PCI/PCI-X bridges */ +#define PCIEM_CTL_INITIATE_FLR 0x8000 /* FLR capable endpoints */ +#define PCIER_DEVICE_STA 0xa +#define PCIEM_STA_CORRECTABLE_ERROR 0x0001 +#define PCIEM_STA_NON_FATAL_ERROR 0x0002 +#define PCIEM_STA_FATAL_ERROR 0x0004 +#define PCIEM_STA_UNSUPPORTED_REQ 0x0008 +#define PCIEM_STA_AUX_POWER 0x0010 +#define PCIEM_STA_TRANSACTION_PND 0x0020 +#define PCIER_LINK_CAP 0xc +#define PCIEM_LINK_CAP_MAX_SPEED 0x0000000f +#define PCIEM_LINK_CAP_MAX_WIDTH 0x000003f0 +#define PCIEM_LINK_CAP_ASPM 0x00000c00 +#define PCIEM_LINK_CAP_L0S_EXIT 0x00007000 +#define PCIEM_LINK_CAP_L1_EXIT 0x00038000 +#define PCIEM_LINK_CAP_CLOCK_PM 0x00040000 +#define PCIEM_LINK_CAP_SURPRISE_DOWN 0x00080000 +#define PCIEM_LINK_CAP_DL_ACTIVE 0x00100000 +#define PCIEM_LINK_CAP_LINK_BW_NOTIFY 0x00200000 +#define PCIEM_LINK_CAP_ASPM_COMPLIANCE 0x00400000 +#define PCIEM_LINK_CAP_PORT 0xff000000 +#define PCIER_LINK_CTL 0x10 +#define PCIEM_LINK_CTL_ASPMC_DIS 0x0000 +#define PCIEM_LINK_CTL_ASPMC_L0S 0x0001 +#define PCIEM_LINK_CTL_ASPMC_L1 0x0002 +#define PCIEM_LINK_CTL_ASPMC 0x0003 +#define PCIEM_LINK_CTL_RCB 0x0008 +#define PCIEM_LINK_CTL_LINK_DIS 0x0010 +#define PCIEM_LINK_CTL_RETRAIN_LINK 0x0020 +#define PCIEM_LINK_CTL_COMMON_CLOCK 0x0040 +#define PCIEM_LINK_CTL_EXTENDED_SYNC 0x0080 +#define PCIEM_LINK_CTL_ECPM 0x0100 +#define PCIEM_LINK_CTL_HAWD 0x0200 +#define PCIEM_LINK_CTL_LBMIE 0x0400 +#define PCIEM_LINK_CTL_LABIE 0x0800 +#define PCIER_LINK_STA 0x12 +#define PCIEM_LINK_STA_SPEED 0x000f +#define PCIEM_LINK_STA_WIDTH 0x03f0 +#define PCIEM_LINK_STA_TRAINING_ERROR 0x0400 +#define PCIEM_LINK_STA_TRAINING 0x0800 +#define PCIEM_LINK_STA_SLOT_CLOCK 0x1000 +#define PCIEM_LINK_STA_DL_ACTIVE 0x2000 +#define PCIEM_LINK_STA_LINK_BW_MGMT 0x4000 +#define PCIEM_LINK_STA_LINK_AUTO_BW 0x8000 +#define PCIER_SLOT_CAP 0x14 +#define PCIEM_SLOT_CAP_APB 0x00000001 +#define PCIEM_SLOT_CAP_PCP 0x00000002 +#define PCIEM_SLOT_CAP_MRLSP 0x00000004 +#define PCIEM_SLOT_CAP_AIP 0x00000008 +#define PCIEM_SLOT_CAP_PIP 0x00000010 +#define PCIEM_SLOT_CAP_HPS 0x00000020 +#define PCIEM_SLOT_CAP_HPC 0x00000040 +#define PCIEM_SLOT_CAP_SPLV 0x00007f80 +#define PCIEM_SLOT_CAP_SPLS 0x00018000 +#define PCIEM_SLOT_CAP_EIP 0x00020000 +#define PCIEM_SLOT_CAP_NCCS 0x00040000 +#define PCIEM_SLOT_CAP_PSN 0xfff80000 +#define PCIER_SLOT_CTL 0x18 +#define PCIEM_SLOT_CTL_ABPE 0x0001 +#define PCIEM_SLOT_CTL_PFDE 0x0002 +#define PCIEM_SLOT_CTL_MRLSCE 0x0004 +#define PCIEM_SLOT_CTL_PDCE 0x0008 +#define PCIEM_SLOT_CTL_CCIE 0x0010 +#define PCIEM_SLOT_CTL_HPIE 0x0020 +#define PCIEM_SLOT_CTL_AIC 0x00c0 +#define PCIEM_SLOT_CTL_PIC 0x0300 +#define PCIEM_SLOT_CTL_PCC 0x0400 +#define PCIEM_SLOT_CTL_EIC 0x0800 +#define PCIEM_SLOT_CTL_DLLSCE 0x1000 +#define PCIER_SLOT_STA 0x1a +#define PCIEM_SLOT_STA_ABP 0x0001 +#define PCIEM_SLOT_STA_PFD 0x0002 +#define PCIEM_SLOT_STA_MRLSC 0x0004 +#define PCIEM_SLOT_STA_PDC 0x0008 +#define PCIEM_SLOT_STA_CC 0x0010 +#define PCIEM_SLOT_STA_MRLSS 0x0020 +#define PCIEM_SLOT_STA_PDS 0x0040 +#define PCIEM_SLOT_STA_EIS 0x0080 +#define PCIEM_SLOT_STA_DLLSC 0x0100 +#define PCIER_ROOT_CTL 0x1c +#define PCIEM_ROOT_CTL_SERR_CORR 0x0001 +#define PCIEM_ROOT_CTL_SERR_NONFATAL 0x0002 +#define PCIEM_ROOT_CTL_SERR_FATAL 0x0004 +#define PCIEM_ROOT_CTL_PME 0x0008 +#define PCIEM_ROOT_CTL_CRS_VIS 0x0010 +#define PCIER_ROOT_CAP 0x1e +#define PCIEM_ROOT_CAP_CRS_VIS 0x0001 +#define PCIER_ROOT_STA 0x20 +#define PCIEM_ROOT_STA_PME_REQID_MASK 0x0000ffff +#define PCIEM_ROOT_STA_PME_STATUS 0x00010000 +#define PCIEM_ROOT_STA_PME_PEND 0x00020000 +#define PCIER_DEVICE_CAP2 0x24 +#define PCIEM_CAP2_ARI 0x20 +#define PCIER_DEVICE_CTL2 0x28 +#define PCIEM_CTL2_COMP_TIMEOUT_VAL 0x000f +#define PCIEM_CTL2_COMP_TIMEOUT_DIS 0x0010 +#define PCIEM_CTL2_ARI 0x0020 +#define PCIEM_CTL2_ATOMIC_REQ_ENABLE 0x0040 +#define PCIEM_CTL2_ATOMIC_EGR_BLOCK 0x0080 +#define PCIEM_CTL2_ID_ORDERED_REQ_EN 0x0100 +#define PCIEM_CTL2_ID_ORDERED_CMP_EN 0x0200 +#define PCIEM_CTL2_LTR_ENABLE 0x0400 +#define PCIEM_CTL2_OBFF 0x6000 +#define PCIEM_OBFF_DISABLE 0x0000 +#define PCIEM_OBFF_MSGA_ENABLE 0x2000 +#define PCIEM_OBFF_MSGB_ENABLE 0x4000 +#define PCIEM_OBFF_WAKE_ENABLE 0x6000 +#define PCIEM_CTL2_END2END_TLP 0x8000 +#define PCIER_DEVICE_STA2 0x2a +#define PCIER_LINK_CAP2 0x2c +#define PCIER_LINK_CTL2 0x30 +#define PCIER_LINK_STA2 0x32 +#define PCIER_SLOT_CAP2 0x34 +#define PCIER_SLOT_CTL2 0x38 +#define PCIER_SLOT_STA2 0x3a + +/* MSI-X definitions */ +#define PCIR_MSIX_CTRL 0x2 +#define PCIM_MSIXCTRL_MSIX_ENABLE 0x8000 +#define PCIM_MSIXCTRL_FUNCTION_MASK 0x4000 +#define PCIM_MSIXCTRL_TABLE_SIZE 0x07FF +#define PCIR_MSIX_TABLE 0x4 +#define PCIR_MSIX_PBA 0x8 +#define PCIM_MSIX_BIR_MASK 0x7 +#define PCIM_MSIX_BIR_BAR_10 0 +#define PCIM_MSIX_BIR_BAR_14 1 +#define PCIM_MSIX_BIR_BAR_18 2 +#define PCIM_MSIX_BIR_BAR_1C 3 +#define PCIM_MSIX_BIR_BAR_20 4 +#define PCIM_MSIX_BIR_BAR_24 5 +#define PCIM_MSIX_VCTRL_MASK 0x1 + +/* PCI Advanced Features definitions */ +#define PCIR_PCIAF_CAP 0x3 +#define PCIM_PCIAFCAP_TP 0x01 +#define PCIM_PCIAFCAP_FLR 0x02 +#define PCIR_PCIAF_CTRL 0x4 +#define PCIR_PCIAFCTRL_FLR 0x01 +#define PCIR_PCIAF_STATUS 0x5 +#define PCIR_PCIAFSTATUS_TP 0x01 + +/* Advanced Error Reporting */ +#define PCIR_AER_UC_STATUS 0x04 +#define PCIM_AER_UC_TRAINING_ERROR 0x00000001 +#define PCIM_AER_UC_DL_PROTOCOL_ERROR 0x00000010 +#define PCIM_AER_UC_SURPRISE_LINK_DOWN 0x00000020 +#define PCIM_AER_UC_POISONED_TLP 0x00001000 +#define PCIM_AER_UC_FC_PROTOCOL_ERROR 0x00002000 +#define PCIM_AER_UC_COMPLETION_TIMEOUT 0x00004000 +#define PCIM_AER_UC_COMPLETER_ABORT 0x00008000 +#define PCIM_AER_UC_UNEXPECTED_COMPLETION 0x00010000 +#define PCIM_AER_UC_RECEIVER_OVERFLOW 0x00020000 +#define PCIM_AER_UC_MALFORMED_TLP 0x00040000 +#define PCIM_AER_UC_ECRC_ERROR 0x00080000 +#define PCIM_AER_UC_UNSUPPORTED_REQUEST 0x00100000 +#define PCIM_AER_UC_ACS_VIOLATION 0x00200000 +#define PCIM_AER_UC_INTERNAL_ERROR 0x00400000 +#define PCIM_AER_UC_MC_BLOCKED_TLP 0x00800000 +#define PCIM_AER_UC_ATOMIC_EGRESS_BLK 0x01000000 +#define PCIM_AER_UC_TLP_PREFIX_BLOCKED 0x02000000 +#define PCIR_AER_UC_MASK 0x08 /* Shares bits with UC_STATUS */ +#define PCIR_AER_UC_SEVERITY 0x0c /* Shares bits with UC_STATUS */ +#define PCIR_AER_COR_STATUS 0x10 +#define PCIM_AER_COR_RECEIVER_ERROR 0x00000001 +#define PCIM_AER_COR_BAD_TLP 0x00000040 +#define PCIM_AER_COR_BAD_DLLP 0x00000080 +#define PCIM_AER_COR_REPLAY_ROLLOVER 0x00000100 +#define PCIM_AER_COR_REPLAY_TIMEOUT 0x00001000 +#define PCIM_AER_COR_ADVISORY_NF_ERROR 0x00002000 +#define PCIM_AER_COR_INTERNAL_ERROR 0x00004000 +#define PCIM_AER_COR_HEADER_LOG_OVFLOW 0x00008000 +#define PCIR_AER_COR_MASK 0x14 /* Shares bits with COR_STATUS */ +#define PCIR_AER_CAP_CONTROL 0x18 +#define PCIM_AER_FIRST_ERROR_PTR 0x0000001f +#define PCIM_AER_ECRC_GEN_CAPABLE 0x00000020 +#define PCIM_AER_ECRC_GEN_ENABLE 0x00000040 +#define PCIM_AER_ECRC_CHECK_CAPABLE 0x00000080 +#define PCIM_AER_ECRC_CHECK_ENABLE 0x00000100 +#define PCIM_AER_MULT_HDR_CAPABLE 0x00000200 +#define PCIM_AER_MULT_HDR_ENABLE 0x00000400 +#define PCIM_AER_TLP_PREFIX_LOG_PRESENT 0x00000800 +#define PCIR_AER_HEADER_LOG 0x1c +#define PCIR_AER_ROOTERR_CMD 0x2c /* Only for root complex ports */ +#define PCIM_AER_ROOTERR_COR_ENABLE 0x00000001 +#define PCIM_AER_ROOTERR_NF_ENABLE 0x00000002 +#define PCIM_AER_ROOTERR_F_ENABLE 0x00000004 +#define PCIR_AER_ROOTERR_STATUS 0x30 /* Only for root complex ports */ +#define PCIM_AER_ROOTERR_COR_ERR 0x00000001 +#define PCIM_AER_ROOTERR_MULTI_COR_ERR 0x00000002 +#define PCIM_AER_ROOTERR_UC_ERR 0x00000004 +#define PCIM_AER_ROOTERR_MULTI_UC_ERR 0x00000008 +#define PCIM_AER_ROOTERR_FIRST_UC_FATAL 0x00000010 +#define PCIM_AER_ROOTERR_NF_ERR 0x00000020 +#define PCIM_AER_ROOTERR_F_ERR 0x00000040 +#define PCIM_AER_ROOTERR_INT_MESSAGE 0xf8000000 +#define PCIR_AER_COR_SOURCE_ID 0x34 /* Only for root complex ports */ +#define PCIR_AER_ERR_SOURCE_ID 0x36 /* Only for root complex ports */ +#define PCIR_AER_TLP_PREFIX_LOG 0x38 /* Only for TLP prefix functions */ + +/* Virtual Channel definitions */ +#define PCIR_VC_CAP1 0x04 +#define PCIM_VC_CAP1_EXT_COUNT 0x00000007 +#define PCIM_VC_CAP1_LOWPRI_EXT_COUNT 0x00000070 +#define PCIR_VC_CAP2 0x08 +#define PCIR_VC_CONTROL 0x0C +#define PCIR_VC_STATUS 0x0E +#define PCIR_VC_RESOURCE_CAP(n) (0x10 + (n) * 0x0C) +#define PCIR_VC_RESOURCE_CTL(n) (0x14 + (n) * 0x0C) +#define PCIR_VC_RESOURCE_STA(n) (0x18 + (n) * 0x0C) + +/* Serial Number definitions */ +#define PCIR_SERIAL_LOW 0x04 +#define PCIR_SERIAL_HIGH 0x08 + +/* SR-IOV definitions */ +#define PCIR_SRIOV_CTL 0x08 +#define PCIM_SRIOV_VF_EN 0x01 +#define PCIM_SRIOV_VF_MSE 0x08 /* Memory space enable. */ +#define PCIM_SRIOV_ARI_EN 0x10 +#define PCIR_SRIOV_TOTAL_VFS 0x0E +#define PCIR_SRIOV_NUM_VFS 0x10 +#define PCIR_SRIOV_VF_OFF 0x14 +#define PCIR_SRIOV_VF_STRIDE 0x16 +#define PCIR_SRIOV_VF_DID 0x1A +#define PCIR_SRIOV_PAGE_CAP 0x1C +#define PCIR_SRIOV_PAGE_SIZE 0x20 + +#define PCI_SRIOV_BASE_PAGE_SHIFT 12 + +#define PCIR_SRIOV_BARS 0x24 +#define PCIR_SRIOV_BAR(x) (PCIR_SRIOV_BARS + (x) * 4) diff --git a/include/xhyve/support/psl.h b/include/xhyve/support/psl.h new file mode 100644 index 0000000..a4779c0 --- /dev/null +++ b/include/xhyve/support/psl.h @@ -0,0 +1,89 @@ +/*- + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * William Jolitz. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * from: @(#)psl.h 5.2 (Berkeley) 1/18/91 + * $FreeBSD$ + */ + +#pragma once + +/* + * 386 processor status longword. + */ +#define PSL_C 0x00000001 /* carry bit */ +#define PSL_PF 0x00000004 /* parity bit */ +#define PSL_AF 0x00000010 /* bcd carry bit */ +#define PSL_Z 0x00000040 /* zero bit */ +#define PSL_N 0x00000080 /* negative bit */ +#define PSL_T 0x00000100 /* trace enable bit */ +#define PSL_I 0x00000200 /* interrupt enable bit */ +#define PSL_D 0x00000400 /* string instruction direction bit */ +#define PSL_V 0x00000800 /* overflow bit */ +#define PSL_IOPL 0x00003000 /* i/o privilege level */ +#define PSL_NT 0x00004000 /* nested task bit */ +#define PSL_RF 0x00010000 /* resume flag bit */ +#define PSL_VM 0x00020000 /* virtual 8086 mode bit */ +#define PSL_AC 0x00040000 /* alignment checking */ +#define PSL_VIF 0x00080000 /* virtual interrupt enable */ +#define PSL_VIP 0x00100000 /* virtual interrupt pending */ +#define PSL_ID 0x00200000 /* identification bit */ + +/* + * The i486 manual says that we are not supposed to change reserved flags, + * but this is too much trouble since the reserved flags depend on the cpu + * and setting them to their historical values works in practice. + */ +#define PSL_RESERVED_DEFAULT 0x00000002 + +/* + * Initial flags for kernel and user mode. The kernel later inherits + * PSL_I and some other flags from user mode. + */ +#define PSL_KERNEL PSL_RESERVED_DEFAULT +#define PSL_USER (PSL_RESERVED_DEFAULT | PSL_I) + +/* + * Bits that can be changed in user mode on 486's. We allow these bits + * to be changed using ptrace(), sigreturn() and procfs. Setting PS_NT + * is undesirable but it may as well be allowed since users can inflict + * it on the kernel directly. Changes to PSL_AC are silently ignored on + * 386's. + * + * Users are allowed to change the privileged flag PSL_RF. The cpu sets PSL_RF + * in tf_eflags for faults. Debuggers should sometimes set it there too. + * tf_eflags is kept in the signal context during signal handling and there is + * no other place to remember it, so the PSL_RF bit may be corrupted by the + * signal handler without us knowing. Corruption of the PSL_RF bit at worst + * causes one more or one less debugger trap, so allowing it is fairly + * harmless. + */ +#define PSL_USERCHANGE (PSL_C | PSL_PF | PSL_AF | PSL_Z | PSL_N | PSL_T \ + | PSL_D | PSL_V | PSL_NT | PSL_RF | PSL_AC | PSL_ID) diff --git a/include/xhyve/support/rtc.h b/include/xhyve/support/rtc.h new file mode 100644 index 0000000..fead20c --- /dev/null +++ b/include/xhyve/support/rtc.h @@ -0,0 +1,111 @@ +/*- + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * William Jolitz. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * from: @(#)rtc.h 7.1 (Berkeley) 5/12/91 + * $FreeBSD$ + */ + +/* + * MC146818 RTC Register locations + */ + +#pragma once + +#define RTC_SEC 0x00 /* seconds */ +#define RTC_SECALRM 0x01 /* seconds alarm */ +#define RTC_MIN 0x02 /* minutes */ +#define RTC_MINALRM 0x03 /* minutes alarm */ +#define RTC_HRS 0x04 /* hours */ +#define RTC_HRSALRM 0x05 /* hours alarm */ +#define RTC_WDAY 0x06 /* week day */ +#define RTC_DAY 0x07 /* day of month */ +#define RTC_MONTH 0x08 /* month of year */ +#define RTC_YEAR 0x09 /* month of year */ + +#define RTC_STATUSA 0x0a /* status register A */ +#define RTCSA_TUP 0x80 /* time update, don't look now */ +#define RTCSA_RESET 0x70 /* reset divider */ +#define RTCSA_DIVIDER 0x20 /* divider correct for 32768 Hz */ +#define RTCSA_8192 0x03 /* 8192 Hz interrupt */ +#define RTCSA_4096 0x04 +#define RTCSA_2048 0x05 +#define RTCSA_1024 0x06 /* default for profiling */ +#define RTCSA_PROF RTCSA_1024 +#define RTC_PROFRATE 1024 +#define RTCSA_512 0x07 +#define RTCSA_256 0x08 +#define RTCSA_128 0x09 +#define RTCSA_NOPROF RTCSA_128 +#define RTC_NOPROFRATE 128 +#define RTCSA_64 0x0a +#define RTCSA_32 0x0b /* 32 Hz interrupt */ + +#define RTC_STATUSB 0x0b /* status register B */ +#define RTCSB_DST 0x01 /* USA Daylight Savings Time enable */ +#define RTCSB_24HR 0x02 /* 0 = 12 hours, 1 = 24 hours */ +#define RTCSB_BCD 0x04 /* 0 = BCD, 1 = Binary coded time */ +#define RTCSB_SQWE 0x08 /* 1 = output sqare wave at SQW pin */ +#define RTCSB_UINTR 0x10 /* 1 = enable update-ended interrupt */ +#define RTCSB_AINTR 0x20 /* 1 = enable alarm interrupt */ +#define RTCSB_PINTR 0x40 /* 1 = enable periodic clock interrupt */ +#define RTCSB_HALT 0x80 /* stop clock updates */ + +#define RTC_INTR 0x0c /* status register C (R) interrupt source */ +#define RTCIR_UPDATE 0x10 /* update intr */ +#define RTCIR_ALARM 0x20 /* alarm intr */ +#define RTCIR_PERIOD 0x40 /* periodic intr */ +#define RTCIR_INT 0x80 /* interrupt output signal */ + +#define RTC_STATUSD 0x0d /* status register D (R) Lost Power */ +#define RTCSD_PWR 0x80 /* clock power OK */ + +#define RTC_DIAG 0x0e /* status register E - bios diagnostic */ +#define RTCDG_BITS "\020\010clock_battery\007ROM_cksum\006config_unit\005memory_size\004fixed_disk\003invalid_time" + +#define RTC_RESET 0x0f /* status register F - reset code byte */ +#define RTCRS_RST 0x00 /* normal reset */ +#define RTCRS_LOAD 0x04 /* load system */ + +#define RTC_FDISKETTE 0x10 /* diskette drive type in upper/lower nibble */ +#define RTCFDT_NONE 0 /* none present */ +#define RTCFDT_360K 0x10 /* 360K */ +#define RTCFDT_12M 0x20 /* 1.2M */ +#define RTCFDT_720K 0x30 /* 720K */ +#define RTCFDT_144M 0x40 /* 1.44M */ +#define RTCFDT_288M_1 0x50 /* 2.88M, some BIOSes */ +#define RTCFDT_288M 0x60 /* 2.88M */ + +#define RTC_BASELO 0x15 /* low byte of basemem size */ +#define RTC_BASEHI 0x16 /* high byte of basemem size */ +#define RTC_EXTLO 0x17 /* low byte of extended mem size */ +#define RTC_EXTHI 0x18 /* low byte of extended mem size */ + +#define RTC_CENTURY 0x32 /* current century */ diff --git a/include/xhyve/support/segments.h b/include/xhyve/support/segments.h new file mode 100644 index 0000000..4a75c9b --- /dev/null +++ b/include/xhyve/support/segments.h @@ -0,0 +1,277 @@ +/*- + * Copyright (c) 1989, 1990 William F. Jolitz + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * William Jolitz. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * from: @(#)segments.h 7.1 (Berkeley) 5/9/91 + * $FreeBSD$ + */ + +#pragma once + +#include +#include + +// /* +// * X86 Segmentation Data Structures and definitions +// */ + +/* Selectors */ +#define SEL_RPL_MASK 3 /* requester priv level */ +#define ISPL(s) ((s) & 3) /* priority level of a selector */ +#define SEL_KPL 0 /* kernel priority level */ +#define SEL_UPL 3 /* user priority level */ +#define ISLDT(s) ((s) & SEL_LDT) /* is it local or global */ +#define SEL_LDT 4 /* local descriptor table */ +#define IDXSEL(s) (((s)>>3) & 0x1fff) /* index of selector */ +#define LSEL(s,r) (((s)<<3) | SEL_LDT | r) /* a local selector */ +#define GSEL(s,r) (((s)<<3) | r) /* a global selector */ + +// /* +// * User segment descriptors (%cs, %ds etc for i386 apps. 64 bit wide) +// * For long-mode apps, %cs only has the conforming bit in sd_type, the sd_dpl, +// * sd_p, sd_l and sd_def32 which must be zero). %ds only has sd_p. +// */ +// struct segment_descriptor { +// unsigned sd_lolimit:16; /* segment extent (lsb) */ +// unsigned sd_lobase:24; /* segment base address (lsb) */ +// unsigned sd_type:5; /* segment type */ +// unsigned sd_dpl:2; /* segment descriptor priority level */ +// unsigned sd_p:1; /* segment descriptor present */ +// unsigned sd_hilimit:4; /* segment extent (msb) */ +// unsigned sd_xx:2; /* unused */ +// unsigned sd_def32:1; /* default 32 vs 16 bit size */ +// unsigned sd_gran:1; /* limit granularity (byte/page units)*/ +// unsigned sd_hibase:8; /* segment base address (msb) */ +// } __packed; + +struct user_segment_descriptor { + uint64_t sd_lolimit:16; /* segment extent (lsb) */ + uint64_t sd_lobase:24; /* segment base address (lsb) */ + uint64_t sd_type:5; /* segment type */ + uint64_t sd_dpl:2; /* segment descriptor priority level */ + uint64_t sd_p:1; /* segment descriptor present */ + uint64_t sd_hilimit:4; /* segment extent (msb) */ + uint64_t sd_xx:1; /* unused */ + uint64_t sd_long:1; /* long mode (cs only) */ + uint64_t sd_def32:1; /* default 32 vs 16 bit size */ + uint64_t sd_gran:1; /* limit granularity (byte/page units)*/ + uint64_t sd_hibase:8; /* segment base address (msb) */ +}; + +#define USD_GETBASE(sd) (((sd)->sd_lobase) | (sd)->sd_hibase << 24) +#define USD_SETBASE(sd, b) (sd)->sd_lobase = (b); \ + (sd)->sd_hibase = ((b) >> 24); +#define USD_GETLIMIT(sd) (((sd)->sd_lolimit) | (sd)->sd_hilimit << 16) +#define USD_SETLIMIT(sd, l) (sd)->sd_lolimit = (l); \ + (sd)->sd_hilimit = ((l) >> 16); + +// #ifdef __i386__ +// /* +// * Gate descriptors (e.g. indirect descriptors) +// */ +// struct gate_descriptor { +// unsigned gd_looffset:16; /* gate offset (lsb) */ +// unsigned gd_selector:16; /* gate segment selector */ +// unsigned gd_stkcpy:5; /* number of stack wds to cpy */ +// unsigned gd_xx:3; /* unused */ +// unsigned gd_type:5; /* segment type */ +// unsigned gd_dpl:2; /* segment descriptor priority level */ +// unsigned gd_p:1; /* segment descriptor present */ +// unsigned gd_hioffset:16; /* gate offset (msb) */ +// } __packed; + +// /* +// * Generic descriptor +// */ +// union descriptor { +// struct segment_descriptor sd; +// struct gate_descriptor gd; +// }; +// #else +// /* +// * Gate descriptors (e.g. indirect descriptors, trap, interrupt etc. 128 bit) +// * Only interrupt and trap gates have gd_ist. +// */ +// struct gate_descriptor { +// uint64_t gd_looffset:16; /* gate offset (lsb) */ +// uint64_t gd_selector:16; /* gate segment selector */ +// uint64_t gd_ist:3; /* IST table index */ +// uint64_t gd_xx:5; /* unused */ +// uint64_t gd_type:5; /* segment type */ +// uint64_t gd_dpl:2; /* segment descriptor priority level */ +// uint64_t gd_p:1; /* segment descriptor present */ +// uint64_t gd_hioffset:48; /* gate offset (msb) */ +// uint64_t sd_xx1:32; +// } __packed; + +// /* +// * Generic descriptor +// */ +// union descriptor { +// struct user_segment_descriptor sd; +// struct gate_descriptor gd; +// }; +// #endif + + /* system segments and gate types */ +#define SDT_SYSNULL 0 /* system null */ +#define SDT_SYS286TSS 1 /* system 286 TSS available */ +#define SDT_SYSLDT 2 /* system local descriptor table */ +#define SDT_SYS286BSY 3 /* system 286 TSS busy */ +#define SDT_SYS286CGT 4 /* system 286 call gate */ +#define SDT_SYSTASKGT 5 /* system task gate */ +#define SDT_SYS286IGT 6 /* system 286 interrupt gate */ +#define SDT_SYS286TGT 7 /* system 286 trap gate */ +#define SDT_SYSNULL2 8 /* system null again */ +#define SDT_SYS386TSS 9 /* system 386 TSS available */ +#define SDT_SYSTSS 9 /* system available 64 bit TSS */ +#define SDT_SYSNULL3 10 /* system null again */ +#define SDT_SYS386BSY 11 /* system 386 TSS busy */ +#define SDT_SYSBSY 11 /* system busy 64 bit TSS */ +#define SDT_SYS386CGT 12 /* system 386 call gate */ +#define SDT_SYSCGT 12 /* system 64 bit call gate */ +#define SDT_SYSNULL4 13 /* system null again */ +#define SDT_SYS386IGT 14 /* system 386 interrupt gate */ +#define SDT_SYSIGT 14 /* system 64 bit interrupt gate */ +#define SDT_SYS386TGT 15 /* system 386 trap gate */ +#define SDT_SYSTGT 15 /* system 64 bit trap gate */ + +// /* memory segment types */ +// #define SDT_MEMRO 16 memory read only +// #define SDT_MEMROA 17 /* memory read only accessed */ +// #define SDT_MEMRW 18 /* memory read write */ +// #define SDT_MEMRWA 19 /* memory read write accessed */ +// #define SDT_MEMROD 20 /* memory read only expand dwn limit */ +// #define SDT_MEMRODA 21 /* memory read only expand dwn limit accessed */ +// #define SDT_MEMRWD 22 /* memory read write expand dwn limit */ +// #define SDT_MEMRWDA 23 /* memory read write expand dwn limit accessed*/ +// #define SDT_MEME 24 /* memory execute only */ +// #define SDT_MEMEA 25 /* memory execute only accessed */ +// #define SDT_MEMER 26 /* memory execute read */ +// #define SDT_MEMERA 27 /* memory execute read accessed */ +// #define SDT_MEMEC 28 /* memory execute only conforming */ +// #define SDT_MEMEAC 29 /* memory execute only accessed conforming */ +// #define SDT_MEMERC 30 /* memory execute read conforming */ +// #define SDT_MEMERAC 31 /* memory execute read accessed conforming */ + +// /* +// * Size of IDT table +// */ +// #define NIDT 256 /* 32 reserved, 0x80 syscall, most are h/w */ +// #define NRSVIDT 32 /* reserved entries for cpu exceptions */ + +/* + * Entries in the Interrupt Descriptor Table (IDT) + */ +#define IDT_DE 0 /* #DE: Divide Error */ +#define IDT_DB 1 /* #DB: Debug */ +#define IDT_NMI 2 /* Nonmaskable External Interrupt */ +#define IDT_BP 3 /* #BP: Breakpoint */ +#define IDT_OF 4 /* #OF: Overflow */ +#define IDT_BR 5 /* #BR: Bound Range Exceeded */ +#define IDT_UD 6 /* #UD: Undefined/Invalid Opcode */ +#define IDT_NM 7 /* #NM: No Math Coprocessor */ +#define IDT_DF 8 /* #DF: Double Fault */ +#define IDT_FPUGP 9 /* Coprocessor Segment Overrun */ +#define IDT_TS 10 /* #TS: Invalid TSS */ +#define IDT_NP 11 /* #NP: Segment Not Present */ +#define IDT_SS 12 /* #SS: Stack Segment Fault */ +#define IDT_GP 13 /* #GP: General Protection Fault */ +#define IDT_PF 14 /* #PF: Page Fault */ +#define IDT_MF 16 /* #MF: FPU Floating-Point Error */ +#define IDT_AC 17 /* #AC: Alignment Check */ +#define IDT_MC 18 /* #MC: Machine Check */ +#define IDT_XF 19 /* #XF: SIMD Floating-Point Exception */ +#define IDT_IO_INTS NRSVIDT /* Base of IDT entries for I/O interrupts. */ +#define IDT_SYSCALL 0x80 /* System Call Interrupt Vector */ +#define IDT_DTRACE_RET 0x92 /* DTrace pid provider Interrupt Vector */ +#define IDT_EVTCHN 0x93 /* Xen HVM Event Channel Interrupt Vector */ + +// #if defined(__i386__) +// /* +// * Entries in the Global Descriptor Table (GDT) +// * Note that each 4 entries share a single 32 byte L1 cache line. +// * Some of the fast syscall instructions require a specific order here. +// */ +// #define GNULL_SEL 0 /* Null Descriptor */ +// #define GPRIV_SEL 1 /* SMP Per-Processor Private Data */ +// #define GUFS_SEL 2 /* User %fs Descriptor (order critical: 1) */ +// #define GUGS_SEL 3 /* User %gs Descriptor (order critical: 2) */ +// #define GCODE_SEL 4 /* Kernel Code Descriptor (order critical: 1) */ +// #define GDATA_SEL 5 /* Kernel Data Descriptor (order critical: 2) */ +// #define GUCODE_SEL 6 /* User Code Descriptor (order critical: 3) */ +// #define GUDATA_SEL 7 /* User Data Descriptor (order critical: 4) */ +// #define GBIOSLOWMEM_SEL 8 /* BIOS low memory access (must be entry 8) */ +// #define GPROC0_SEL 9 /* Task state process slot zero and up */ +// #define GLDT_SEL 10 /* Default User LDT */ +// #define GUSERLDT_SEL 11 /* User LDT */ +// #define GPANIC_SEL 12 /* Task state to consider panic from */ +// #define GBIOSCODE32_SEL 13 /* BIOS interface (32bit Code) */ +// #define GBIOSCODE16_SEL 14 /* BIOS interface (16bit Code) */ +// #define GBIOSDATA_SEL 15 /* BIOS interface (Data) */ +// #define GBIOSUTIL_SEL 16 /* BIOS interface (Utility) */ +// #define GBIOSARGS_SEL 17 /* BIOS interface (Arguments) */ +// #define GNDIS_SEL 18 /* For the NDIS layer */ +// #define NGDT 19 + +// /* +// * Entries in the Local Descriptor Table (LDT) +// */ +// #define LSYS5CALLS_SEL 0 /* forced by intel BCS */ +// #define LSYS5SIGR_SEL 1 +// #define L43BSDCALLS_SEL 2 /* notyet */ +// #define LUCODE_SEL 3 +// #define LSOL26CALLS_SEL 4 /* Solaris >= 2.6 system call gate */ +// #define LUDATA_SEL 5 +// /* separate stack, es,fs,gs sels ? */ +// /* #define LPOSIXCALLS_SEL 5*/ /* notyet */ +// #define LBSDICALLS_SEL 16 /* BSDI system call gate */ +// #define NLDT (LBSDICALLS_SEL + 1) + +// #else /* !__i386__ */ +// /* +// * Entries in the Global Descriptor Table (GDT) +// */ +// #define GNULL_SEL 0 /* Null Descriptor */ +// #define GNULL2_SEL 1 /* Null Descriptor */ +// #define GUFS32_SEL 2 /* User 32 bit %fs Descriptor */ +// #define GUGS32_SEL 3 /* User 32 bit %gs Descriptor */ +// #define GCODE_SEL 4 /* Kernel Code Descriptor */ +// #define GDATA_SEL 5 /* Kernel Data Descriptor */ +// #define GUCODE32_SEL 6 /* User 32 bit code Descriptor */ +// #define GUDATA_SEL 7 /* User 32/64 bit Data Descriptor */ +// #define GUCODE_SEL 8 /* User 64 bit Code Descriptor */ +// #define GPROC0_SEL 9 /* TSS for entering kernel etc */ +// /* slot 10 is second half of GPROC0_SEL */ +// #define GUSERLDT_SEL 11 /* LDT */ +// /* slot 12 is second half of GUSERLDT_SEL */ +// #define NGDT 13 +// #endif /* __i386__ */ diff --git a/include/xhyve/support/specialreg.h b/include/xhyve/support/specialreg.h new file mode 100644 index 0000000..70a6b44 --- /dev/null +++ b/include/xhyve/support/specialreg.h @@ -0,0 +1,845 @@ +/*- + * Copyright (c) 1991 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * from: @(#)specialreg.h 7.1 (Berkeley) 5/9/91 + * $FreeBSD$ + */ + +#pragma once + +/* + * Bits in 386 special registers: + */ +#define CR0_PE 0x00000001 /* Protected mode Enable */ +#define CR0_MP 0x00000002 /* "Math" (fpu) Present */ +#define CR0_EM 0x00000004 /* EMulate FPU instructions. (trap ESC only) */ +#define CR0_TS 0x00000008 /* Task Switched (if MP, trap ESC and WAIT) */ +#define CR0_PG 0x80000000 /* PaGing enable */ + +/* + * Bits in 486 special registers: + */ +#define CR0_ET 0x00000010 /* Extension type */ +#define CR0_NE 0x00000020 /* Numeric Error enable (EX16 vs IRQ13) */ +#define CR0_WP 0x00010000 /* Write Protect (honor page protect in + all modes) */ +#define CR0_AM 0x00040000 /* Alignment Mask (set to enable AC flag) */ +#define CR0_NW 0x20000000 /* Not Write-through */ +#define CR0_CD 0x40000000 /* Cache Disable */ + +#define CR3_PCID_SAVE 0x8000000000000000 +#define CR3_PCID_MASK 0xfff + +/* + * Bits in PPro special registers + */ +#define CR4_VME 0x00000001 /* Virtual 8086 mode extensions */ +#define CR4_PVI 0x00000002 /* Protected-mode virtual interrupts */ +#define CR4_TSD 0x00000004 /* Time stamp disable */ +#define CR4_DE 0x00000008 /* Debugging extensions */ +#define CR4_PSE 0x00000010 /* Page size extensions */ +#define CR4_PAE 0x00000020 /* Physical address extension */ +#define CR4_MCE 0x00000040 /* Machine check enable */ +#define CR4_PGE 0x00000080 /* Page global enable */ +#define CR4_PCE 0x00000100 /* Performance monitoring counter enable */ +#define CR4_FXSR 0x00000200 /* Fast FPU save/restore used by OS */ +#define CR4_XMM 0x00000400 /* enable SIMD/MMX2 to use except 16 */ +#define CR4_VMXE 0x00002000 /* enable VMX operation (Intel-specific) */ +#define CR4_FSGSBASE 0x00010000 /* Enable FS/GS BASE accessing instructions */ +#define CR4_PCIDE 0x00020000 /* Enable Context ID */ +#define CR4_XSAVE 0x00040000 /* XSETBV/XGETBV */ +#define CR4_SMEP 0x00100000 /* Supervisor-Mode Execution Prevention */ + +/* + * Bits in AMD64 special registers. EFER is 64 bits wide. + */ +#define EFER_SCE 0x000000001 /* System Call Extensions (R/W) */ +#define EFER_LME 0x000000100 /* Long mode enable (R/W) */ +#define EFER_LMA 0x000000400 /* Long mode active (R) */ +#define EFER_NXE 0x000000800 /* PTE No-Execute bit enable (R/W) */ +#define EFER_SVM 0x000001000 /* SVM enable bit for AMD, reserved for Intel */ +#define EFER_LMSLE 0x000002000 /* Long Mode Segment Limit Enable */ +#define EFER_FFXSR 0x000004000 /* Fast FXSAVE/FSRSTOR */ +#define EFER_TCE 0x000008000 /* Translation Cache Extension */ + +/* + * Intel Extended Features registers + */ +#define XCR0 0 /* XFEATURE_ENABLED_MASK register */ + +#define XFEATURE_ENABLED_X87 0x00000001 +#define XFEATURE_ENABLED_SSE 0x00000002 +#define XFEATURE_ENABLED_YMM_HI128 0x00000004 +#define XFEATURE_ENABLED_AVX XFEATURE_ENABLED_YMM_HI128 +#define XFEATURE_ENABLED_BNDREGS 0x00000008 +#define XFEATURE_ENABLED_BNDCSR 0x00000010 +#define XFEATURE_ENABLED_OPMASK 0x00000020 +#define XFEATURE_ENABLED_ZMM_HI256 0x00000040 +#define XFEATURE_ENABLED_HI16_ZMM 0x00000080 + +#define XFEATURE_AVX \ + (XFEATURE_ENABLED_X87 | XFEATURE_ENABLED_SSE | XFEATURE_ENABLED_AVX) +#define XFEATURE_AVX512 \ + (XFEATURE_ENABLED_OPMASK | XFEATURE_ENABLED_ZMM_HI256 | \ + XFEATURE_ENABLED_HI16_ZMM) +#define XFEATURE_MPX \ + (XFEATURE_ENABLED_BNDREGS | XFEATURE_ENABLED_BNDCSR) + +/* + * CPUID instruction features register + */ +#define CPUID_FPU 0x00000001 +#define CPUID_VME 0x00000002 +#define CPUID_DE 0x00000004 +#define CPUID_PSE 0x00000008 +#define CPUID_TSC 0x00000010 +#define CPUID_MSR 0x00000020 +#define CPUID_PAE 0x00000040 +#define CPUID_MCE 0x00000080 +#define CPUID_CX8 0x00000100 +#define CPUID_APIC 0x00000200 +#define CPUID_B10 0x00000400 +#define CPUID_SEP 0x00000800 +#define CPUID_MTRR 0x00001000 +#define CPUID_PGE 0x00002000 +#define CPUID_MCA 0x00004000 +#define CPUID_CMOV 0x00008000 +#define CPUID_PAT 0x00010000 +#define CPUID_PSE36 0x00020000 +#define CPUID_PSN 0x00040000 +#define CPUID_CLFSH 0x00080000 +#define CPUID_B20 0x00100000 +#define CPUID_DS 0x00200000 +#define CPUID_ACPI 0x00400000 +#define CPUID_MMX 0x00800000 +#define CPUID_FXSR 0x01000000 +#define CPUID_SSE 0x02000000 +#define CPUID_XMM 0x02000000 +#define CPUID_SSE2 0x04000000 +#define CPUID_SS 0x08000000 +#define CPUID_HTT 0x10000000 +#define CPUID_TM 0x20000000 +#define CPUID_IA64 0x40000000 +#define CPUID_PBE 0x80000000 + +#define CPUID2_SSE3 0x00000001 +#define CPUID2_PCLMULQDQ 0x00000002 +#define CPUID2_DTES64 0x00000004 +#define CPUID2_MON 0x00000008 +#define CPUID2_DS_CPL 0x00000010 +#define CPUID2_VMX 0x00000020 +#define CPUID2_SMX 0x00000040 +#define CPUID2_EST 0x00000080 +#define CPUID2_TM2 0x00000100 +#define CPUID2_SSSE3 0x00000200 +#define CPUID2_CNXTID 0x00000400 +#define CPUID2_SDBG 0x00000800 +#define CPUID2_FMA 0x00001000 +#define CPUID2_CX16 0x00002000 +#define CPUID2_XTPR 0x00004000 +#define CPUID2_PDCM 0x00008000 +#define CPUID2_PCID 0x00020000 +#define CPUID2_DCA 0x00040000 +#define CPUID2_SSE41 0x00080000 +#define CPUID2_SSE42 0x00100000 +#define CPUID2_X2APIC 0x00200000 +#define CPUID2_MOVBE 0x00400000 +#define CPUID2_POPCNT 0x00800000 +#define CPUID2_TSCDLT 0x01000000 +#define CPUID2_AESNI 0x02000000 +#define CPUID2_XSAVE 0x04000000 +#define CPUID2_OSXSAVE 0x08000000 +#define CPUID2_AVX 0x10000000 +#define CPUID2_F16C 0x20000000 +#define CPUID2_RDRAND 0x40000000 +#define CPUID2_HV 0x80000000 + +/* + * Important bits in the Thermal and Power Management flags + * CPUID.6 EAX and ECX. + */ +#define CPUTPM1_SENSOR 0x00000001 +#define CPUTPM1_TURBO 0x00000002 +#define CPUTPM1_ARAT 0x00000004 +#define CPUTPM2_EFFREQ 0x00000001 + +/* + * Important bits in the AMD extended cpuid flags + */ +#define AMDID_SYSCALL 0x00000800 +#define AMDID_MP 0x00080000 +#define AMDID_NX 0x00100000 +#define AMDID_EXT_MMX 0x00400000 +#define AMDID_FFXSR 0x02000000 +#define AMDID_PAGE1GB 0x04000000 +#define AMDID_RDTSCP 0x08000000 +#define AMDID_LM 0x20000000 +#define AMDID_EXT_3DNOW 0x40000000 +#define AMDID_3DNOW 0x80000000 + +#define AMDID2_LAHF 0x00000001 +#define AMDID2_CMP 0x00000002 +#define AMDID2_SVM 0x00000004 +#define AMDID2_EXT_APIC 0x00000008 +#define AMDID2_CR8 0x00000010 +#define AMDID2_ABM 0x00000020 +#define AMDID2_SSE4A 0x00000040 +#define AMDID2_MAS 0x00000080 +#define AMDID2_PREFETCH 0x00000100 +#define AMDID2_OSVW 0x00000200 +#define AMDID2_IBS 0x00000400 +#define AMDID2_XOP 0x00000800 +#define AMDID2_SKINIT 0x00001000 +#define AMDID2_WDT 0x00002000 +#define AMDID2_LWP 0x00008000 +#define AMDID2_FMA4 0x00010000 +#define AMDID2_TCE 0x00020000 +#define AMDID2_NODE_ID 0x00080000 +#define AMDID2_TBM 0x00200000 +#define AMDID2_TOPOLOGY 0x00400000 +#define AMDID2_PCXC 0x00800000 +#define AMDID2_PNXC 0x01000000 +#define AMDID2_DBE 0x04000000 +#define AMDID2_PTSC 0x08000000 +#define AMDID2_PTSCEL2I 0x10000000 + +/* + * CPUID instruction 1 eax info + */ +#define CPUID_STEPPING 0x0000000f +#define CPUID_MODEL 0x000000f0 +#define CPUID_FAMILY 0x00000f00 +#define CPUID_EXT_MODEL 0x000f0000 +#define CPUID_EXT_FAMILY 0x0ff00000 +// #ifdef __i386__ +// #define CPUID_TO_MODEL(id) \ +// ((((id) & CPUID_MODEL) >> 4) | \ +// ((((id) & CPUID_FAMILY) >= 0x600) ? \ +// (((id) & CPUID_EXT_MODEL) >> 12) : 0)) +// #define CPUID_TO_FAMILY(id) \ +// ((((id) & CPUID_FAMILY) >> 8) + \ +// ((((id) & CPUID_FAMILY) == 0xf00) ? \ +// (((id) & CPUID_EXT_FAMILY) >> 20) : 0)) +// #else +// #define CPUID_TO_MODEL(id) \ +// ((((id) & CPUID_MODEL) >> 4) | \ +// (((id) & CPUID_EXT_MODEL) >> 12)) +// #define CPUID_TO_FAMILY(id) \ +// ((((id) & CPUID_FAMILY) >> 8) + \ +// (((id) & CPUID_EXT_FAMILY) >> 20)) +// #endif + +/* + * CPUID instruction 1 ebx info + */ +#define CPUID_BRAND_INDEX 0x000000ff +#define CPUID_CLFUSH_SIZE 0x0000ff00 +#define CPUID_HTT_CORES 0x00ff0000 +#define CPUID_LOCAL_APIC_ID 0xff000000 + +/* + * CPUID instruction 5 info + */ +#define CPUID5_MON_MIN_SIZE 0x0000ffff /* eax */ +#define CPUID5_MON_MAX_SIZE 0x0000ffff /* ebx */ +#define CPUID5_MON_MWAIT_EXT 0x00000001 /* ecx */ +#define CPUID5_MWAIT_INTRBREAK 0x00000002 /* ecx */ + +/* + * MWAIT cpu power states. Lower 4 bits are sub-states. + */ +#define MWAIT_C0 0xf0 +#define MWAIT_C1 0x00 +#define MWAIT_C2 0x10 +#define MWAIT_C3 0x20 +#define MWAIT_C4 0x30 + +/* + * MWAIT extensions. + */ +/* Interrupt breaks MWAIT even when masked. */ +#define MWAIT_INTRBREAK 0x00000001 + +/* + * CPUID instruction 6 ecx info + */ +#define CPUID_PERF_STAT 0x00000001 +#define CPUID_PERF_BIAS 0x00000008 + +/* + * CPUID instruction 0xb ebx info. + */ +#define CPUID_TYPE_INVAL 0 +#define CPUID_TYPE_SMT 1 +#define CPUID_TYPE_CORE 2 + +/* + * CPUID instruction 0xd Processor Extended State Enumeration Sub-leaf 1 + */ +#define CPUID_EXTSTATE_XSAVEOPT 0x00000001 +#define CPUID_EXTSTATE_XSAVEC 0x00000002 +#define CPUID_EXTSTATE_XINUSE 0x00000004 +#define CPUID_EXTSTATE_XSAVES 0x00000008 + +/* + * AMD extended function 8000_0007h edx info + */ +#define AMDPM_TS 0x00000001 +#define AMDPM_FID 0x00000002 +#define AMDPM_VID 0x00000004 +#define AMDPM_TTP 0x00000008 +#define AMDPM_TM 0x00000010 +#define AMDPM_STC 0x00000020 +#define AMDPM_100MHZ_STEPS 0x00000040 +#define AMDPM_HW_PSTATE 0x00000080 +#define AMDPM_TSC_INVARIANT 0x00000100 +#define AMDPM_CPB 0x00000200 + +/* + * AMD extended function 8000_0008h ecx info + */ +#define AMDID_CMP_CORES 0x000000ff +#define AMDID_COREID_SIZE 0x0000f000 +#define AMDID_COREID_SIZE_SHIFT 12 + +/* + * CPUID instruction 7 Structured Extended Features, leaf 0 ebx info + */ +#define CPUID_STDEXT_FSGSBASE 0x00000001 +#define CPUID_STDEXT_TSC_ADJUST 0x00000002 +#define CPUID_STDEXT_BMI1 0x00000008 +#define CPUID_STDEXT_HLE 0x00000010 +#define CPUID_STDEXT_AVX2 0x00000020 +#define CPUID_STDEXT_SMEP 0x00000080 +#define CPUID_STDEXT_BMI2 0x00000100 +#define CPUID_STDEXT_ERMS 0x00000200 +#define CPUID_STDEXT_INVPCID 0x00000400 +#define CPUID_STDEXT_RTM 0x00000800 +#define CPUID_STDEXT_MPX 0x00004000 +#define CPUID_STDEXT_AVX512F 0x00010000 +#define CPUID_STDEXT_RDSEED 0x00040000 +#define CPUID_STDEXT_ADX 0x00080000 +#define CPUID_STDEXT_SMAP 0x00100000 +#define CPUID_STDEXT_CLFLUSHOPT 0x00800000 +#define CPUID_STDEXT_PROCTRACE 0x02000000 +#define CPUID_STDEXT_AVX512PF 0x04000000 +#define CPUID_STDEXT_AVX512ER 0x08000000 +#define CPUID_STDEXT_AVX512CD 0x10000000 +#define CPUID_STDEXT_SHA 0x20000000 + +/* + * CPUID manufacturers identifiers + */ +#define AMD_VENDOR_ID "AuthenticAMD" +#define CENTAUR_VENDOR_ID "CentaurHauls" +#define CYRIX_VENDOR_ID "CyrixInstead" +#define INTEL_VENDOR_ID "GenuineIntel" +#define NEXGEN_VENDOR_ID "NexGenDriven" +#define NSC_VENDOR_ID "Geode by NSC" +#define RISE_VENDOR_ID "RiseRiseRise" +#define SIS_VENDOR_ID "SiS SiS SiS " +#define TRANSMETA_VENDOR_ID "GenuineTMx86" +#define UMC_VENDOR_ID "UMC UMC UMC " + +/* + * Model-specific registers for the i386 family + */ +#define MSR_P5_MC_ADDR 0x000 +#define MSR_P5_MC_TYPE 0x001 +#define MSR_TSC 0x010 +#define MSR_P5_CESR 0x011 +#define MSR_P5_CTR0 0x012 +#define MSR_P5_CTR1 0x013 +#define MSR_IA32_PLATFORM_ID 0x017 +#define MSR_APICBASE 0x01b +#define MSR_EBL_CR_POWERON 0x02a +#define MSR_TEST_CTL 0x033 +#define MSR_IA32_FEATURE_CONTROL 0x03a +#define MSR_BIOS_UPDT_TRIG 0x079 +#define MSR_BBL_CR_D0 0x088 +#define MSR_BBL_CR_D1 0x089 +#define MSR_BBL_CR_D2 0x08a +#define MSR_BIOS_SIGN 0x08b +#define MSR_PERFCTR0 0x0c1 +#define MSR_PERFCTR1 0x0c2 +#define MSR_PLATFORM_INFO 0x0ce +#define MSR_MPERF 0x0e7 +#define MSR_APERF 0x0e8 +#define MSR_IA32_EXT_CONFIG 0x0ee /* Undocumented. Core Solo/Duo only */ +#define MSR_MTRRcap 0x0fe +#define MSR_BBL_CR_ADDR 0x116 +#define MSR_BBL_CR_DECC 0x118 +#define MSR_BBL_CR_CTL 0x119 +#define MSR_BBL_CR_TRIG 0x11a +#define MSR_BBL_CR_BUSY 0x11b +#define MSR_BBL_CR_CTL3 0x11e +#define MSR_SYSENTER_CS_MSR 0x174 +#define MSR_SYSENTER_ESP_MSR 0x175 +#define MSR_SYSENTER_EIP_MSR 0x176 +#define MSR_MCG_CAP 0x179 +#define MSR_MCG_STATUS 0x17a +#define MSR_MCG_CTL 0x17b +#define MSR_EVNTSEL0 0x186 +#define MSR_EVNTSEL1 0x187 +#define MSR_THERM_CONTROL 0x19a +#define MSR_THERM_INTERRUPT 0x19b +#define MSR_THERM_STATUS 0x19c +#define MSR_IA32_MISC_ENABLE 0x1a0 +#define MSR_IA32_TEMPERATURE_TARGET 0x1a2 +#define MSR_TURBO_RATIO_LIMIT 0x1ad +#define MSR_TURBO_RATIO_LIMIT1 0x1ae +#define MSR_DEBUGCTLMSR 0x1d9 +#define MSR_LASTBRANCHFROMIP 0x1db +#define MSR_LASTBRANCHTOIP 0x1dc +#define MSR_LASTINTFROMIP 0x1dd +#define MSR_LASTINTTOIP 0x1de +#define MSR_ROB_CR_BKUPTMPDR6 0x1e0 +#define MSR_MTRRVarBase 0x200 +#define MSR_MTRR64kBase 0x250 +#define MSR_MTRR16kBase 0x258 +#define MSR_MTRR4kBase 0x268 +#define MSR_PAT 0x277 +#define MSR_MC0_CTL2 0x280 +#define MSR_MTRRdefType 0x2ff +#define MSR_MC0_CTL 0x400 +#define MSR_MC0_STATUS 0x401 +#define MSR_MC0_ADDR 0x402 +#define MSR_MC0_MISC 0x403 +#define MSR_MC1_CTL 0x404 +#define MSR_MC1_STATUS 0x405 +#define MSR_MC1_ADDR 0x406 +#define MSR_MC1_MISC 0x407 +#define MSR_MC2_CTL 0x408 +#define MSR_MC2_STATUS 0x409 +#define MSR_MC2_ADDR 0x40a +#define MSR_MC2_MISC 0x40b +#define MSR_MC3_CTL 0x40c +#define MSR_MC3_STATUS 0x40d +#define MSR_MC3_ADDR 0x40e +#define MSR_MC3_MISC 0x40f +#define MSR_MC4_CTL 0x410 +#define MSR_MC4_STATUS 0x411 +#define MSR_MC4_ADDR 0x412 +#define MSR_MC4_MISC 0x413 +#define MSR_RAPL_POWER_UNIT 0x606 +#define MSR_PKG_ENERGY_STATUS 0x611 +#define MSR_DRAM_ENERGY_STATUS 0x619 +#define MSR_PP0_ENERGY_STATUS 0x639 +#define MSR_PP1_ENERGY_STATUS 0x641 + +/* + * VMX MSRs + */ +#define MSR_VMX_BASIC 0x480 +#define MSR_VMX_PINBASED_CTLS 0x481 +#define MSR_VMX_PROCBASED_CTLS 0x482 +#define MSR_VMX_EXIT_CTLS 0x483 +#define MSR_VMX_ENTRY_CTLS 0x484 +#define MSR_VMX_CR0_FIXED0 0x486 +#define MSR_VMX_CR0_FIXED1 0x487 +#define MSR_VMX_CR4_FIXED0 0x488 +#define MSR_VMX_CR4_FIXED1 0x489 +#define MSR_VMX_PROCBASED_CTLS2 0x48b +#define MSR_VMX_EPT_VPID_CAP 0x48c +#define MSR_VMX_TRUE_PINBASED_CTLS 0x48d +#define MSR_VMX_TRUE_PROCBASED_CTLS 0x48e +#define MSR_VMX_TRUE_EXIT_CTLS 0x48f +#define MSR_VMX_TRUE_ENTRY_CTLS 0x490 + +/* + * X2APIC MSRs + */ +#define MSR_APIC_000 0x800 +#define MSR_APIC_ID 0x802 +#define MSR_APIC_VERSION 0x803 +#define MSR_APIC_TPR 0x808 +#define MSR_APIC_EOI 0x80b +#define MSR_APIC_LDR 0x80d +#define MSR_APIC_SVR 0x80f +#define MSR_APIC_ISR0 0x810 +#define MSR_APIC_ISR1 0x811 +#define MSR_APIC_ISR2 0x812 +#define MSR_APIC_ISR3 0x813 +#define MSR_APIC_ISR4 0x814 +#define MSR_APIC_ISR5 0x815 +#define MSR_APIC_ISR6 0x816 +#define MSR_APIC_ISR7 0x817 +#define MSR_APIC_TMR0 0x818 +#define MSR_APIC_IRR0 0x820 +#define MSR_APIC_ESR 0x828 +#define MSR_APIC_LVT_CMCI 0x82F +#define MSR_APIC_ICR 0x830 +#define MSR_APIC_LVT_TIMER 0x832 +#define MSR_APIC_LVT_THERMAL 0x833 +#define MSR_APIC_LVT_PCINT 0x834 +#define MSR_APIC_LVT_LINT0 0x835 +#define MSR_APIC_LVT_LINT1 0x836 +#define MSR_APIC_LVT_ERROR 0x837 +#define MSR_APIC_ICR_TIMER 0x838 +#define MSR_APIC_CCR_TIMER 0x839 +#define MSR_APIC_DCR_TIMER 0x83e +#define MSR_APIC_SELF_IPI 0x83f + +#define MSR_IA32_XSS 0xda0 + +#define MSR_IA32_TSC_AUX 0xc0000103 + +/* + * Constants related to MSR's. + */ +#define APICBASE_RESERVED 0x000002ff +#define APICBASE_BSP 0x00000100 +#define APICBASE_X2APIC 0x00000400 +#define APICBASE_ENABLED 0x00000800 +#define APICBASE_ADDRESS 0xfffff000 + +/* MSR_IA32_FEATURE_CONTROL related */ +#define IA32_FEATURE_CONTROL_LOCK 0x01 /* lock bit */ +#define IA32_FEATURE_CONTROL_SMX_EN 0x02 /* enable VMX inside SMX */ +#define IA32_FEATURE_CONTROL_VMX_EN 0x04 /* enable VMX outside SMX */ + +/* + * PAT modes. + */ +#define PAT_UNCACHEABLE 0x00 +#define PAT_WRITE_COMBINING 0x01 +#define PAT_WRITE_THROUGH 0x04 +#define PAT_WRITE_PROTECTED 0x05 +#define PAT_WRITE_BACK 0x06 +#define PAT_UNCACHED 0x07 +#define PAT_VALUE(i, m) ((long long)(m) << (8 * (i))) +#define PAT_MASK(i) PAT_VALUE(i, 0xff) + +/* + * Constants related to MTRRs + */ +#define MTRR_UNCACHEABLE 0x00 +#define MTRR_WRITE_COMBINING 0x01 +#define MTRR_WRITE_THROUGH 0x04 +#define MTRR_WRITE_PROTECTED 0x05 +#define MTRR_WRITE_BACK 0x06 +#define MTRR_N64K 8 /* numbers of fixed-size entries */ +#define MTRR_N16K 16 +#define MTRR_N4K 64 +#define MTRR_CAP_WC 0x0000000000000400 +#define MTRR_CAP_FIXED 0x0000000000000100 +#define MTRR_CAP_VCNT 0x00000000000000ff +#define MTRR_DEF_ENABLE 0x0000000000000800 +#define MTRR_DEF_FIXED_ENABLE 0x0000000000000400 +#define MTRR_DEF_TYPE 0x00000000000000ff +#define MTRR_PHYSBASE_PHYSBASE 0x000ffffffffff000 +#define MTRR_PHYSBASE_TYPE 0x00000000000000ff +#define MTRR_PHYSMASK_PHYSMASK 0x000ffffffffff000 +#define MTRR_PHYSMASK_VALID 0x0000000000000800 + +/* + * Cyrix configuration registers, accessible as IO ports. + */ +#define CCR0 0xc0 /* Configuration control register 0 */ +#define CCR0_NC0 0x01 /* First 64K of each 1M memory region is + non-cacheable */ +#define CCR0_NC1 0x02 /* 640K-1M region is non-cacheable */ +#define CCR0_A20M 0x04 /* Enables A20M# input pin */ +#define CCR0_KEN 0x08 /* Enables KEN# input pin */ +#define CCR0_FLUSH 0x10 /* Enables FLUSH# input pin */ +#define CCR0_BARB 0x20 /* Flushes internal cache when entering hold + state */ +#define CCR0_CO 0x40 /* Cache org: 1=direct mapped, 0=2x set + assoc */ +#define CCR0_SUSPEND 0x80 /* Enables SUSP# and SUSPA# pins */ + +#define CCR1 0xc1 /* Configuration control register 1 */ +#define CCR1_RPL 0x01 /* Enables RPLSET and RPLVAL# pins */ +#define CCR1_SMI 0x02 /* Enables SMM pins */ +#define CCR1_SMAC 0x04 /* System management memory access */ +#define CCR1_MMAC 0x08 /* Main memory access */ +#define CCR1_NO_LOCK 0x10 /* Negate LOCK# */ +#define CCR1_SM3 0x80 /* SMM address space address region 3 */ + +#define CCR2 0xc2 +#define CCR2_WB 0x02 /* Enables WB cache interface pins */ +#define CCR2_SADS 0x02 /* Slow ADS */ +#define CCR2_LOCK_NW 0x04 /* LOCK NW Bit */ +#define CCR2_SUSP_HLT 0x08 /* Suspend on HALT */ +#define CCR2_WT1 0x10 /* WT region 1 */ +#define CCR2_WPR1 0x10 /* Write-protect region 1 */ +#define CCR2_BARB 0x20 /* Flushes write-back cache when entering + hold state. */ +#define CCR2_BWRT 0x40 /* Enables burst write cycles */ +#define CCR2_USE_SUSP 0x80 /* Enables suspend pins */ + +#define CCR3 0xc3 +#define CCR3_SMILOCK 0x01 /* SMM register lock */ +#define CCR3_NMI 0x02 /* Enables NMI during SMM */ +#define CCR3_LINBRST 0x04 /* Linear address burst cycles */ +#define CCR3_SMMMODE 0x08 /* SMM Mode */ +#define CCR3_MAPEN0 0x10 /* Enables Map0 */ +#define CCR3_MAPEN1 0x20 /* Enables Map1 */ +#define CCR3_MAPEN2 0x40 /* Enables Map2 */ +#define CCR3_MAPEN3 0x80 /* Enables Map3 */ + +#define CCR4 0xe8 +#define CCR4_IOMASK 0x07 +#define CCR4_MEM 0x08 /* Enables momory bypassing */ +#define CCR4_DTE 0x10 /* Enables directory table entry cache */ +#define CCR4_FASTFPE 0x20 /* Fast FPU exception */ +#define CCR4_CPUID 0x80 /* Enables CPUID instruction */ + +#define CCR5 0xe9 +#define CCR5_WT_ALLOC 0x01 /* Write-through allocate */ +#define CCR5_SLOP 0x02 /* LOOP instruction slowed down */ +#define CCR5_LBR1 0x10 /* Local bus region 1 */ +#define CCR5_ARREN 0x20 /* Enables ARR region */ + +#define CCR6 0xea + +#define CCR7 0xeb + +/* Performance Control Register (5x86 only). */ +#define PCR0 0x20 +#define PCR0_RSTK 0x01 /* Enables return stack */ +#define PCR0_BTB 0x02 /* Enables branch target buffer */ +#define PCR0_LOOP 0x04 /* Enables loop */ +#define PCR0_AIS 0x08 /* Enables all instrcutions stalled to + serialize pipe. */ +#define PCR0_MLR 0x10 /* Enables reordering of misaligned loads */ +#define PCR0_BTBRT 0x40 /* Enables BTB test register. */ +#define PCR0_LSSER 0x80 /* Disable reorder */ + +/* Device Identification Registers */ +#define DIR0 0xfe +#define DIR1 0xff + +/* + * Machine Check register constants. + */ +#define MCG_CAP_COUNT 0x000000ff +#define MCG_CAP_CTL_P 0x00000100 +#define MCG_CAP_EXT_P 0x00000200 +#define MCG_CAP_CMCI_P 0x00000400 +#define MCG_CAP_TES_P 0x00000800 +#define MCG_CAP_EXT_CNT 0x00ff0000 +#define MCG_CAP_SER_P 0x01000000 +#define MCG_STATUS_RIPV 0x00000001 +#define MCG_STATUS_EIPV 0x00000002 +#define MCG_STATUS_MCIP 0x00000004 +#define MCG_CTL_ENABLE 0xffffffffffffffff +#define MCG_CTL_DISABLE 0x0000000000000000 +#define MSR_MC_CTL(x) (MSR_MC0_CTL + (x) * 4) +#define MSR_MC_STATUS(x) (MSR_MC0_STATUS + (x) * 4) +#define MSR_MC_ADDR(x) (MSR_MC0_ADDR + (x) * 4) +#define MSR_MC_MISC(x) (MSR_MC0_MISC + (x) * 4) +#define MSR_MC_CTL2(x) (MSR_MC0_CTL2 + (x)) /* If MCG_CAP_CMCI_P */ +#define MC_STATUS_MCA_ERROR 0x000000000000ffff +#define MC_STATUS_MODEL_ERROR 0x00000000ffff0000 +#define MC_STATUS_OTHER_INFO 0x01ffffff00000000 +#define MC_STATUS_COR_COUNT 0x001fffc000000000 /* If MCG_CAP_CMCI_P */ +#define MC_STATUS_TES_STATUS 0x0060000000000000 /* If MCG_CAP_TES_P */ +#define MC_STATUS_AR 0x0080000000000000 /* If MCG_CAP_TES_P */ +#define MC_STATUS_S 0x0100000000000000 /* If MCG_CAP_TES_P */ +#define MC_STATUS_PCC 0x0200000000000000 +#define MC_STATUS_ADDRV 0x0400000000000000 +#define MC_STATUS_MISCV 0x0800000000000000 +#define MC_STATUS_EN 0x1000000000000000 +#define MC_STATUS_UC 0x2000000000000000 +#define MC_STATUS_OVER 0x4000000000000000 +#define MC_STATUS_VAL 0x8000000000000000 +#define MC_MISC_RA_LSB 0x000000000000003f /* If MCG_CAP_SER_P */ +#define MC_MISC_ADDRESS_MODE 0x00000000000001c0 /* If MCG_CAP_SER_P */ +#define MC_CTL2_THRESHOLD 0x0000000000007fff +#define MC_CTL2_CMCI_EN 0x0000000040000000 + +/* + * The following four 3-byte registers control the non-cacheable regions. + * These registers must be written as three separate bytes. + * + * NCRx+0: A31-A24 of starting address + * NCRx+1: A23-A16 of starting address + * NCRx+2: A15-A12 of starting address | NCR_SIZE_xx. + * + * The non-cacheable region's starting address must be aligned to the + * size indicated by the NCR_SIZE_xx field. + */ +#define NCR1 0xc4 +#define NCR2 0xc7 +#define NCR3 0xca +#define NCR4 0xcd + +#define NCR_SIZE_0K 0 +#define NCR_SIZE_4K 1 +#define NCR_SIZE_8K 2 +#define NCR_SIZE_16K 3 +#define NCR_SIZE_32K 4 +#define NCR_SIZE_64K 5 +#define NCR_SIZE_128K 6 +#define NCR_SIZE_256K 7 +#define NCR_SIZE_512K 8 +#define NCR_SIZE_1M 9 +#define NCR_SIZE_2M 10 +#define NCR_SIZE_4M 11 +#define NCR_SIZE_8M 12 +#define NCR_SIZE_16M 13 +#define NCR_SIZE_32M 14 +#define NCR_SIZE_4G 15 + +/* + * The address region registers are used to specify the location and + * size for the eight address regions. + * + * ARRx + 0: A31-A24 of start address + * ARRx + 1: A23-A16 of start address + * ARRx + 2: A15-A12 of start address | ARR_SIZE_xx + */ +#define ARR0 0xc4 +#define ARR1 0xc7 +#define ARR2 0xca +#define ARR3 0xcd +#define ARR4 0xd0 +#define ARR5 0xd3 +#define ARR6 0xd6 +#define ARR7 0xd9 + +#define ARR_SIZE_0K 0 +#define ARR_SIZE_4K 1 +#define ARR_SIZE_8K 2 +#define ARR_SIZE_16K 3 +#define ARR_SIZE_32K 4 +#define ARR_SIZE_64K 5 +#define ARR_SIZE_128K 6 +#define ARR_SIZE_256K 7 +#define ARR_SIZE_512K 8 +#define ARR_SIZE_1M 9 +#define ARR_SIZE_2M 10 +#define ARR_SIZE_4M 11 +#define ARR_SIZE_8M 12 +#define ARR_SIZE_16M 13 +#define ARR_SIZE_32M 14 +#define ARR_SIZE_4G 15 + +/* + * The region control registers specify the attributes associated with + * the ARRx addres regions. + */ +#define RCR0 0xdc +#define RCR1 0xdd +#define RCR2 0xde +#define RCR3 0xdf +#define RCR4 0xe0 +#define RCR5 0xe1 +#define RCR6 0xe2 +#define RCR7 0xe3 + +#define RCR_RCD 0x01 /* Disables caching for ARRx (x = 0-6). */ +#define RCR_RCE 0x01 /* Enables caching for ARR7. */ +#define RCR_WWO 0x02 /* Weak write ordering. */ +#define RCR_WL 0x04 /* Weak locking. */ +#define RCR_WG 0x08 /* Write gathering. */ +#define RCR_WT 0x10 /* Write-through. */ +#define RCR_NLB 0x20 /* LBA# pin is not asserted. */ + +/* AMD Write Allocate Top-Of-Memory and Control Register */ +#define AMD_WT_ALLOC_TME 0x40000 /* top-of-memory enable */ +#define AMD_WT_ALLOC_PRE 0x20000 /* programmable range enable */ +#define AMD_WT_ALLOC_FRE 0x10000 /* fixed (A0000-FFFFF) range enable */ + +/* AMD64 MSR's */ +#define MSR_EFER 0xc0000080 /* extended features */ +#define MSR_STAR 0xc0000081 /* legacy mode SYSCALL target/cs/ss */ +#define MSR_LSTAR 0xc0000082 /* long mode SYSCALL target rip */ +#define MSR_CSTAR 0xc0000083 /* compat mode SYSCALL target rip */ +#define MSR_SF_MASK 0xc0000084 /* syscall flags mask */ +#define MSR_FSBASE 0xc0000100 /* base address of the %fs "segment" */ +#define MSR_GSBASE 0xc0000101 /* base address of the %gs "segment" */ +#define MSR_KGSBASE 0xc0000102 /* base address of the kernel %gs */ +#define MSR_PERFEVSEL0 0xc0010000 +#define MSR_PERFEVSEL1 0xc0010001 +#define MSR_PERFEVSEL2 0xc0010002 +#define MSR_PERFEVSEL3 0xc0010003 +#define MSR_K7_PERFCTR0 0xc0010004 +#define MSR_K7_PERFCTR1 0xc0010005 +#define MSR_K7_PERFCTR2 0xc0010006 +#define MSR_K7_PERFCTR3 0xc0010007 +#define MSR_SYSCFG 0xc0010010 +#define MSR_HWCR 0xc0010015 +#define MSR_IORRBASE0 0xc0010016 +#define MSR_IORRMASK0 0xc0010017 +#define MSR_IORRBASE1 0xc0010018 +#define MSR_IORRMASK1 0xc0010019 +#define MSR_TOP_MEM 0xc001001a /* boundary for ram below 4G */ +#define MSR_TOP_MEM2 0xc001001d /* boundary for ram above 4G */ +#define MSR_NB_CFG1 0xc001001f /* NB configuration 1 */ +#define MSR_P_STATE_LIMIT 0xc0010061 /* P-state Current Limit Register */ +#define MSR_P_STATE_CONTROL 0xc0010062 /* P-state Control Register */ +#define MSR_P_STATE_STATUS 0xc0010063 /* P-state Status Register */ +#define MSR_P_STATE_CONFIG(n) (0xc0010064 + (n)) /* P-state Config */ +#define MSR_SMM_ADDR 0xc0010112 /* SMM TSEG base address */ +#define MSR_SMM_MASK 0xc0010113 /* SMM TSEG address mask */ +#define MSR_IC_CFG 0xc0011021 /* Instruction Cache Configuration */ +#define MSR_K8_UCODE_UPDATE 0xc0010020 /* update microcode */ +#define MSR_MC0_CTL_MASK 0xc0010044 +#define MSR_VM_CR 0xc0010114 /* SVM: feature control */ +#define MSR_VM_HSAVE_PA 0xc0010117 /* SVM: host save area address */ + +/* MSR_VM_CR related */ +#define VM_CR_SVMDIS 0x10 /* SVM: disabled by BIOS */ + +/* VIA ACE crypto featureset: for via_feature_rng */ +#define VIA_HAS_RNG 1 /* cpu has RNG */ + +/* VIA ACE crypto featureset: for via_feature_xcrypt */ +#define VIA_HAS_AES 1 /* cpu has AES */ +#define VIA_HAS_SHA 2 /* cpu has SHA1 & SHA256 */ +#define VIA_HAS_MM 4 /* cpu has RSA instructions */ +#define VIA_HAS_AESCTR 8 /* cpu has AES-CTR instructions */ + +/* Centaur Extended Feature flags */ +#define VIA_CPUID_HAS_RNG 0x000004 +#define VIA_CPUID_DO_RNG 0x000008 +#define VIA_CPUID_HAS_ACE 0x000040 +#define VIA_CPUID_DO_ACE 0x000080 +#define VIA_CPUID_HAS_ACE2 0x000100 +#define VIA_CPUID_DO_ACE2 0x000200 +#define VIA_CPUID_HAS_PHE 0x000400 +#define VIA_CPUID_DO_PHE 0x000800 +#define VIA_CPUID_HAS_PMM 0x001000 +#define VIA_CPUID_DO_PMM 0x002000 + +/* VIA ACE xcrypt-* instruction context control options */ +#define VIA_CRYPT_CWLO_ROUND_M 0x0000000f +#define VIA_CRYPT_CWLO_ALG_M 0x00000070 +#define VIA_CRYPT_CWLO_ALG_AES 0x00000000 +#define VIA_CRYPT_CWLO_KEYGEN_M 0x00000080 +#define VIA_CRYPT_CWLO_KEYGEN_HW 0x00000000 +#define VIA_CRYPT_CWLO_KEYGEN_SW 0x00000080 +#define VIA_CRYPT_CWLO_NORMAL 0x00000000 +#define VIA_CRYPT_CWLO_INTERMEDIATE 0x00000100 +#define VIA_CRYPT_CWLO_ENCRYPT 0x00000000 +#define VIA_CRYPT_CWLO_DECRYPT 0x00000200 +#define VIA_CRYPT_CWLO_KEY128 0x0000000a /* 128bit, 10 rds */ +#define VIA_CRYPT_CWLO_KEY192 0x0000040c /* 192bit, 12 rds */ +#define VIA_CRYPT_CWLO_KEY256 0x0000080e /* 256bit, 15 rds */ diff --git a/include/xhyve/support/timerreg.h b/include/xhyve/support/timerreg.h new file mode 100644 index 0000000..4cb33b5 --- /dev/null +++ b/include/xhyve/support/timerreg.h @@ -0,0 +1,47 @@ +/*- + * Copyright (C) 2005 TAKAHASHI Yoshihiro. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +/* + * The outputs of the three timers are connected as follows: + * + * timer 0 -> irq 0 + * timer 1 -> dma chan 0 (for dram refresh) + * timer 2 -> speaker (via keyboard controller) + * + * Timer 0 is used to call hardclock. + * Timer 2 is used to generate console beeps. + */ + +#pragma once + +#include + +#define IO_TIMER1 0x40 /* 8253 Timer #1 */ +#define TIMER_CNTR0 (IO_TIMER1 + TIMER_REG_CNTR0) +#define TIMER_CNTR1 (IO_TIMER1 + TIMER_REG_CNTR1) +#define TIMER_CNTR2 (IO_TIMER1 + TIMER_REG_CNTR2) +#define TIMER_MODE (IO_TIMER1 + TIMER_REG_MODE) diff --git a/include/xhyve/support/tree.h b/include/xhyve/support/tree.h new file mode 100644 index 0000000..9c372cc --- /dev/null +++ b/include/xhyve/support/tree.h @@ -0,0 +1,751 @@ +/* $NetBSD: tree.h,v 1.8 2004/03/28 19:38:30 provos Exp $ */ +/* $OpenBSD: tree.h,v 1.7 2002/10/17 21:51:54 art Exp $ */ +/* $FreeBSD: src/sys/sys/tree.h,v 1.7 2007/12/28 07:03:26 jasone Exp $ */ + +/*- + * Copyright 2002 Niels Provos + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#pragma once + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" + +/* + * This file defines data structures for different types of trees: + * splay trees and red-black trees. + * + * A splay tree is a self-organizing data structure. Every operation + * on the tree causes a splay to happen. The splay moves the requested + * node to the root of the tree and partly rebalances it. + * + * This has the benefit that request locality causes faster lookups as + * the requested nodes move to the top of the tree. On the other hand, + * every lookup causes memory writes. + * + * The Balance Theorem bounds the total access time for m operations + * and n inserts on an initially empty tree as O((m + n)lg n). The + * amortized cost for a sequence of m accesses to a splay tree is O(lg n); + * + * A red-black tree is a binary search tree with the node color as an + * extra attribute. It fulfills a set of conditions: + * - every search path from the root to a leaf consists of the + * same number of black nodes, + * - each red node (except for the root) has a black parent, + * - each leaf node is black. + * + * Every operation on a red-black tree is bounded as O(lg n). + * The maximum height of a red-black tree is 2lg (n+1). + */ + +#define SPLAY_HEAD(name, type) \ +struct name { \ + struct type *sph_root; /* root of the tree */ \ +} + +#define SPLAY_INITIALIZER(root) \ + { NULL } + +#define SPLAY_INIT(root) do { \ + (root)->sph_root = NULL; \ +} while (/*CONSTCOND*/ 0) + +#define SPLAY_ENTRY(type) \ +struct { \ + struct type *spe_left; /* left element */ \ + struct type *spe_right; /* right element */ \ +} + +#define SPLAY_LEFT(elm, field) (elm)->field.spe_left +#define SPLAY_RIGHT(elm, field) (elm)->field.spe_right +#define SPLAY_ROOT(head) (head)->sph_root +#define SPLAY_EMPTY(head) (SPLAY_ROOT(head) == NULL) + +/* SPLAY_ROTATE_{LEFT,RIGHT} expect that tmp hold SPLAY_{RIGHT,LEFT} */ +#define SPLAY_ROTATE_RIGHT(head, tmp, field) do { \ + SPLAY_LEFT((head)->sph_root, field) = SPLAY_RIGHT(tmp, field); \ + SPLAY_RIGHT(tmp, field) = (head)->sph_root; \ + (head)->sph_root = tmp; \ +} while (/*CONSTCOND*/ 0) + +#define SPLAY_ROTATE_LEFT(head, tmp, field) do { \ + SPLAY_RIGHT((head)->sph_root, field) = SPLAY_LEFT(tmp, field); \ + SPLAY_LEFT(tmp, field) = (head)->sph_root; \ + (head)->sph_root = tmp; \ +} while (/*CONSTCOND*/ 0) + +#define SPLAY_LINKLEFT(head, tmp, field) do { \ + SPLAY_LEFT(tmp, field) = (head)->sph_root; \ + tmp = (head)->sph_root; \ + (head)->sph_root = SPLAY_LEFT((head)->sph_root, field); \ +} while (/*CONSTCOND*/ 0) + +#define SPLAY_LINKRIGHT(head, tmp, field) do { \ + SPLAY_RIGHT(tmp, field) = (head)->sph_root; \ + tmp = (head)->sph_root; \ + (head)->sph_root = SPLAY_RIGHT((head)->sph_root, field); \ +} while (/*CONSTCOND*/ 0) + +#define SPLAY_ASSEMBLE(head, node, left, right, field) do { \ + SPLAY_RIGHT(left, field) = SPLAY_LEFT((head)->sph_root, field); \ + SPLAY_LEFT(right, field) = SPLAY_RIGHT((head)->sph_root, field);\ + SPLAY_LEFT((head)->sph_root, field) = SPLAY_RIGHT(node, field); \ + SPLAY_RIGHT((head)->sph_root, field) = SPLAY_LEFT(node, field); \ +} while (/*CONSTCOND*/ 0) + +/* Generates prototypes and inline functions */ + +#define SPLAY_PROTOTYPE(name, type, field, cmp) \ +void name##_SPLAY(struct name *, struct type *); \ +void name##_SPLAY_MINMAX(struct name *, int); \ +struct type *name##_SPLAY_INSERT(struct name *, struct type *); \ +struct type *name##_SPLAY_REMOVE(struct name *, struct type *); \ + \ +/* Finds the node with the same key as elm */ \ +static __inline struct type * \ +name##_SPLAY_FIND(struct name *head, struct type *elm) \ +{ \ + if (SPLAY_EMPTY(head)) \ + return(NULL); \ + name##_SPLAY(head, elm); \ + if ((cmp)(elm, (head)->sph_root) == 0) \ + return (head->sph_root); \ + return (NULL); \ +} \ + \ +static __inline struct type * \ +name##_SPLAY_NEXT(struct name *head, struct type *elm) \ +{ \ + name##_SPLAY(head, elm); \ + if (SPLAY_RIGHT(elm, field) != NULL) { \ + elm = SPLAY_RIGHT(elm, field); \ + while (SPLAY_LEFT(elm, field) != NULL) { \ + elm = SPLAY_LEFT(elm, field); \ + } \ + } else \ + elm = NULL; \ + return (elm); \ +} \ + \ +static __inline struct type * \ +name##_SPLAY_MIN_MAX(struct name *head, int val) \ +{ \ + name##_SPLAY_MINMAX(head, val); \ + return (SPLAY_ROOT(head)); \ +} + +/* Main splay operation. + * Moves node close to the key of elm to top + */ +#define SPLAY_GENERATE(name, type, field, cmp) \ +struct type * \ +name##_SPLAY_INSERT(struct name *head, struct type *elm) \ +{ \ + if (SPLAY_EMPTY(head)) { \ + SPLAY_LEFT(elm, field) = SPLAY_RIGHT(elm, field) = NULL; \ + } else { \ + int __comp; \ + name##_SPLAY(head, elm); \ + __comp = (cmp)(elm, (head)->sph_root); \ + if(__comp < 0) { \ + SPLAY_LEFT(elm, field) = SPLAY_LEFT((head)->sph_root, field);\ + SPLAY_RIGHT(elm, field) = (head)->sph_root; \ + SPLAY_LEFT((head)->sph_root, field) = NULL; \ + } else if (__comp > 0) { \ + SPLAY_RIGHT(elm, field) = SPLAY_RIGHT((head)->sph_root, field);\ + SPLAY_LEFT(elm, field) = (head)->sph_root; \ + SPLAY_RIGHT((head)->sph_root, field) = NULL; \ + } else \ + return ((head)->sph_root); \ + } \ + (head)->sph_root = (elm); \ + return (NULL); \ +} \ + \ +struct type * \ +name##_SPLAY_REMOVE(struct name *head, struct type *elm) \ +{ \ + struct type *__tmp; \ + if (SPLAY_EMPTY(head)) \ + return (NULL); \ + name##_SPLAY(head, elm); \ + if ((cmp)(elm, (head)->sph_root) == 0) { \ + if (SPLAY_LEFT((head)->sph_root, field) == NULL) { \ + (head)->sph_root = SPLAY_RIGHT((head)->sph_root, field);\ + } else { \ + __tmp = SPLAY_RIGHT((head)->sph_root, field); \ + (head)->sph_root = SPLAY_LEFT((head)->sph_root, field);\ + name##_SPLAY(head, elm); \ + SPLAY_RIGHT((head)->sph_root, field) = __tmp; \ + } \ + return (elm); \ + } \ + return (NULL); \ +} \ + \ +void \ +name##_SPLAY(struct name *head, struct type *elm) \ +{ \ + struct type __node, *__left, *__right, *__tmp; \ + int __comp; \ +\ + SPLAY_LEFT(&__node, field) = SPLAY_RIGHT(&__node, field) = NULL;\ + __left = __right = &__node; \ +\ + while ((__comp = (cmp)(elm, (head)->sph_root)) != 0) { \ + if (__comp < 0) { \ + __tmp = SPLAY_LEFT((head)->sph_root, field); \ + if (__tmp == NULL) \ + break; \ + if ((cmp)(elm, __tmp) < 0){ \ + SPLAY_ROTATE_RIGHT(head, __tmp, field); \ + if (SPLAY_LEFT((head)->sph_root, field) == NULL)\ + break; \ + } \ + SPLAY_LINKLEFT(head, __right, field); \ + } else if (__comp > 0) { \ + __tmp = SPLAY_RIGHT((head)->sph_root, field); \ + if (__tmp == NULL) \ + break; \ + if ((cmp)(elm, __tmp) > 0){ \ + SPLAY_ROTATE_LEFT(head, __tmp, field); \ + if (SPLAY_RIGHT((head)->sph_root, field) == NULL)\ + break; \ + } \ + SPLAY_LINKRIGHT(head, __left, field); \ + } \ + } \ + SPLAY_ASSEMBLE(head, &__node, __left, __right, field); \ +} \ + \ +/* Splay with either the minimum or the maximum element \ + * Used to find minimum or maximum element in tree. \ + */ \ +void name##_SPLAY_MINMAX(struct name *head, int __comp) \ +{ \ + struct type __node, *__left, *__right, *__tmp; \ +\ + SPLAY_LEFT(&__node, field) = SPLAY_RIGHT(&__node, field) = NULL;\ + __left = __right = &__node; \ +\ + while (1) { \ + if (__comp < 0) { \ + __tmp = SPLAY_LEFT((head)->sph_root, field); \ + if (__tmp == NULL) \ + break; \ + if (__comp < 0){ \ + SPLAY_ROTATE_RIGHT(head, __tmp, field); \ + if (SPLAY_LEFT((head)->sph_root, field) == NULL)\ + break; \ + } \ + SPLAY_LINKLEFT(head, __right, field); \ + } else if (__comp > 0) { \ + __tmp = SPLAY_RIGHT((head)->sph_root, field); \ + if (__tmp == NULL) \ + break; \ + if (__comp > 0) { \ + SPLAY_ROTATE_LEFT(head, __tmp, field); \ + if (SPLAY_RIGHT((head)->sph_root, field) == NULL)\ + break; \ + } \ + SPLAY_LINKRIGHT(head, __left, field); \ + } \ + } \ + SPLAY_ASSEMBLE(head, &__node, __left, __right, field); \ +} + +#define SPLAY_NEGINF -1 +#define SPLAY_INF 1 + +#define SPLAY_INSERT(name, x, y) name##_SPLAY_INSERT(x, y) +#define SPLAY_REMOVE(name, x, y) name##_SPLAY_REMOVE(x, y) +#define SPLAY_FIND(name, x, y) name##_SPLAY_FIND(x, y) +#define SPLAY_NEXT(name, x, y) name##_SPLAY_NEXT(x, y) +#define SPLAY_MIN(name, x) (SPLAY_EMPTY(x) ? NULL \ + : name##_SPLAY_MIN_MAX(x, SPLAY_NEGINF)) +#define SPLAY_MAX(name, x) (SPLAY_EMPTY(x) ? NULL \ + : name##_SPLAY_MIN_MAX(x, SPLAY_INF)) + +#define SPLAY_FOREACH(x, name, head) \ + for ((x) = SPLAY_MIN(name, head); \ + (x) != NULL; \ + (x) = SPLAY_NEXT(name, head, x)) + +/* Macros that define a red-black tree */ +#define RB_HEAD(name, type) \ +struct name { \ + struct type *rbh_root; /* root of the tree */ \ +} + +#define RB_INITIALIZER(root) \ + { NULL } + +#define RB_INIT(root) do { \ + (root)->rbh_root = NULL; \ +} while (/*CONSTCOND*/ 0) + +/* + * Undef for Linux + */ +#undef RB_BLACK +#undef RB_RED +#undef RB_ROOT + +#define RB_BLACK 0 +#define RB_RED 1 +#define RB_ENTRY(type) \ +struct { \ + struct type *rbe_left; /* left element */ \ + struct type *rbe_right; /* right element */ \ + struct type *rbe_parent; /* parent element */ \ + int rbe_color; /* node color */ \ +} + +#define RB_LEFT(elm, field) (elm)->field.rbe_left +#define RB_RIGHT(elm, field) (elm)->field.rbe_right +#define RB_PARENT(elm, field) (elm)->field.rbe_parent +#define RB_COLOR(elm, field) (elm)->field.rbe_color +#define RB_ROOT(head) (head)->rbh_root +#define RB_EMPTY(head) (RB_ROOT(head) == NULL) + +#define RB_SET(elm, parent, field) do { \ + RB_PARENT(elm, field) = parent; \ + RB_LEFT(elm, field) = RB_RIGHT(elm, field) = NULL; \ + RB_COLOR(elm, field) = RB_RED; \ +} while (/*CONSTCOND*/ 0) + +#define RB_SET_BLACKRED(black, red, field) do { \ + RB_COLOR(black, field) = RB_BLACK; \ + RB_COLOR(red, field) = RB_RED; \ +} while (/*CONSTCOND*/ 0) + +#ifndef RB_AUGMENT +#define RB_AUGMENT(x) do {} while (0) +#endif + +#define RB_ROTATE_LEFT(head, elm, tmp, field) do { \ + (tmp) = RB_RIGHT(elm, field); \ + if ((RB_RIGHT(elm, field) = RB_LEFT(tmp, field)) != NULL) { \ + RB_PARENT(RB_LEFT(tmp, field), field) = (elm); \ + } \ + RB_AUGMENT(elm); \ + if ((RB_PARENT(tmp, field) = RB_PARENT(elm, field)) != NULL) { \ + if ((elm) == RB_LEFT(RB_PARENT(elm, field), field)) \ + RB_LEFT(RB_PARENT(elm, field), field) = (tmp); \ + else \ + RB_RIGHT(RB_PARENT(elm, field), field) = (tmp); \ + } else \ + (head)->rbh_root = (tmp); \ + RB_LEFT(tmp, field) = (elm); \ + RB_PARENT(elm, field) = (tmp); \ + RB_AUGMENT(tmp); \ + if ((RB_PARENT(tmp, field))) \ + RB_AUGMENT(RB_PARENT(tmp, field)); \ +} while (/*CONSTCOND*/ 0) + +#define RB_ROTATE_RIGHT(head, elm, tmp, field) do { \ + (tmp) = RB_LEFT(elm, field); \ + if ((RB_LEFT(elm, field) = RB_RIGHT(tmp, field)) != NULL) { \ + RB_PARENT(RB_RIGHT(tmp, field), field) = (elm); \ + } \ + RB_AUGMENT(elm); \ + if ((RB_PARENT(tmp, field) = RB_PARENT(elm, field)) != NULL) { \ + if ((elm) == RB_LEFT(RB_PARENT(elm, field), field)) \ + RB_LEFT(RB_PARENT(elm, field), field) = (tmp); \ + else \ + RB_RIGHT(RB_PARENT(elm, field), field) = (tmp); \ + } else \ + (head)->rbh_root = (tmp); \ + RB_RIGHT(tmp, field) = (elm); \ + RB_PARENT(elm, field) = (tmp); \ + RB_AUGMENT(tmp); \ + if ((RB_PARENT(tmp, field))) \ + RB_AUGMENT(RB_PARENT(tmp, field)); \ +} while (/*CONSTCOND*/ 0) + +/* Generates prototypes and inline functions */ +#define RB_PROTOTYPE(name, type, field, cmp) \ + RB_PROTOTYPE_INTERNAL(name, type, field, cmp,) +#define RB_PROTOTYPE_STATIC(name, type, field, cmp) \ + RB_PROTOTYPE_INTERNAL(name, type, field, cmp, __unused static) +#define RB_PROTOTYPE_INTERNAL(name, type, field, cmp, attr) \ +attr void name##_RB_INSERT_COLOR(struct name *, struct type *); \ +attr void name##_RB_REMOVE_COLOR(struct name *, struct type *, struct type *); \ +attr struct type *name##_RB_REMOVE(struct name *, struct type *); \ +attr struct type *name##_RB_INSERT(struct name *, struct type *); \ +attr struct type *name##_RB_FIND(struct name *, struct type *); \ +attr struct type *name##_RB_NFIND(struct name *, struct type *); \ +attr struct type *name##_RB_NEXT(struct type *); \ +attr struct type *name##_RB_PREV(struct type *); \ +attr struct type *name##_RB_MINMAX(struct name *, int) \ + +/* Main rb operation. + * Moves node close to the key of elm to top + */ +#define RB_GENERATE(name, type, field, cmp) \ + RB_GENERATE_INTERNAL(name, type, field, cmp,) +#define RB_GENERATE_STATIC(name, type, field, cmp) \ + RB_GENERATE_INTERNAL(name, type, field, cmp, __unused static) +#define RB_GENERATE_INTERNAL(name, type, field, cmp, attr) \ +attr void \ +name##_RB_INSERT_COLOR(struct name *head, struct type *elm) \ +{ \ + struct type *parent, *gparent, *tmp; \ + while ((parent = RB_PARENT(elm, field)) != NULL && \ + RB_COLOR(parent, field) == RB_RED) { \ + gparent = RB_PARENT(parent, field); \ + if (parent == RB_LEFT(gparent, field)) { \ + tmp = RB_RIGHT(gparent, field); \ + if (tmp && RB_COLOR(tmp, field) == RB_RED) { \ + RB_COLOR(tmp, field) = RB_BLACK; \ + RB_SET_BLACKRED(parent, gparent, field);\ + elm = gparent; \ + continue; \ + } \ + if (RB_RIGHT(parent, field) == elm) { \ + RB_ROTATE_LEFT(head, parent, tmp, field);\ + tmp = parent; \ + parent = elm; \ + elm = tmp; \ + } \ + RB_SET_BLACKRED(parent, gparent, field); \ + RB_ROTATE_RIGHT(head, gparent, tmp, field); \ + } else { \ + tmp = RB_LEFT(gparent, field); \ + if (tmp && RB_COLOR(tmp, field) == RB_RED) { \ + RB_COLOR(tmp, field) = RB_BLACK; \ + RB_SET_BLACKRED(parent, gparent, field);\ + elm = gparent; \ + continue; \ + } \ + if (RB_LEFT(parent, field) == elm) { \ + RB_ROTATE_RIGHT(head, parent, tmp, field);\ + tmp = parent; \ + parent = elm; \ + elm = tmp; \ + } \ + RB_SET_BLACKRED(parent, gparent, field); \ + RB_ROTATE_LEFT(head, gparent, tmp, field); \ + } \ + } \ + RB_COLOR(head->rbh_root, field) = RB_BLACK; \ +} \ + \ +attr void \ +name##_RB_REMOVE_COLOR(struct name *head, struct type *parent, struct type *elm) \ +{ \ + struct type *tmp; \ + while ((elm == NULL || RB_COLOR(elm, field) == RB_BLACK) && \ + elm != RB_ROOT(head)) { \ + if (RB_LEFT(parent, field) == elm) { \ + tmp = RB_RIGHT(parent, field); \ + if (RB_COLOR(tmp, field) == RB_RED) { \ + RB_SET_BLACKRED(tmp, parent, field); \ + RB_ROTATE_LEFT(head, parent, tmp, field);\ + tmp = RB_RIGHT(parent, field); \ + } \ + if ((RB_LEFT(tmp, field) == NULL || \ + RB_COLOR(RB_LEFT(tmp, field), field) == RB_BLACK) &&\ + (RB_RIGHT(tmp, field) == NULL || \ + RB_COLOR(RB_RIGHT(tmp, field), field) == RB_BLACK)) {\ + RB_COLOR(tmp, field) = RB_RED; \ + elm = parent; \ + parent = RB_PARENT(elm, field); \ + } else { \ + if (RB_RIGHT(tmp, field) == NULL || \ + RB_COLOR(RB_RIGHT(tmp, field), field) == RB_BLACK) {\ + struct type *oleft; \ + if ((oleft = RB_LEFT(tmp, field)) \ + != NULL) \ + RB_COLOR(oleft, field) = RB_BLACK;\ + RB_COLOR(tmp, field) = RB_RED; \ + RB_ROTATE_RIGHT(head, tmp, oleft, field);\ + tmp = RB_RIGHT(parent, field); \ + } \ + RB_COLOR(tmp, field) = RB_COLOR(parent, field);\ + RB_COLOR(parent, field) = RB_BLACK; \ + if (RB_RIGHT(tmp, field)) \ + RB_COLOR(RB_RIGHT(tmp, field), field) = RB_BLACK;\ + RB_ROTATE_LEFT(head, parent, tmp, field);\ + elm = RB_ROOT(head); \ + break; \ + } \ + } else { \ + tmp = RB_LEFT(parent, field); \ + if (RB_COLOR(tmp, field) == RB_RED) { \ + RB_SET_BLACKRED(tmp, parent, field); \ + RB_ROTATE_RIGHT(head, parent, tmp, field);\ + tmp = RB_LEFT(parent, field); \ + } \ + if ((RB_LEFT(tmp, field) == NULL || \ + RB_COLOR(RB_LEFT(tmp, field), field) == RB_BLACK) &&\ + (RB_RIGHT(tmp, field) == NULL || \ + RB_COLOR(RB_RIGHT(tmp, field), field) == RB_BLACK)) {\ + RB_COLOR(tmp, field) = RB_RED; \ + elm = parent; \ + parent = RB_PARENT(elm, field); \ + } else { \ + if (RB_LEFT(tmp, field) == NULL || \ + RB_COLOR(RB_LEFT(tmp, field), field) == RB_BLACK) {\ + struct type *oright; \ + if ((oright = RB_RIGHT(tmp, field)) \ + != NULL) \ + RB_COLOR(oright, field) = RB_BLACK;\ + RB_COLOR(tmp, field) = RB_RED; \ + RB_ROTATE_LEFT(head, tmp, oright, field);\ + tmp = RB_LEFT(parent, field); \ + } \ + RB_COLOR(tmp, field) = RB_COLOR(parent, field);\ + RB_COLOR(parent, field) = RB_BLACK; \ + if (RB_LEFT(tmp, field)) \ + RB_COLOR(RB_LEFT(tmp, field), field) = RB_BLACK;\ + RB_ROTATE_RIGHT(head, parent, tmp, field);\ + elm = RB_ROOT(head); \ + break; \ + } \ + } \ + } \ + if (elm) \ + RB_COLOR(elm, field) = RB_BLACK; \ +} \ + \ +attr struct type * \ +name##_RB_REMOVE(struct name *head, struct type *elm) \ +{ \ + struct type *child, *parent, *old = elm; \ + int color; \ + if (RB_LEFT(elm, field) == NULL) \ + child = RB_RIGHT(elm, field); \ + else if (RB_RIGHT(elm, field) == NULL) \ + child = RB_LEFT(elm, field); \ + else { \ + struct type *left; \ + elm = RB_RIGHT(elm, field); \ + while ((left = RB_LEFT(elm, field)) != NULL) \ + elm = left; \ + child = RB_RIGHT(elm, field); \ + parent = RB_PARENT(elm, field); \ + color = RB_COLOR(elm, field); \ + if (child) \ + RB_PARENT(child, field) = parent; \ + if (parent) { \ + if (RB_LEFT(parent, field) == elm) \ + RB_LEFT(parent, field) = child; \ + else \ + RB_RIGHT(parent, field) = child; \ + RB_AUGMENT(parent); \ + } else \ + RB_ROOT(head) = child; \ + if (RB_PARENT(elm, field) == old) \ + parent = elm; \ + (elm)->field = (old)->field; \ + if (RB_PARENT(old, field)) { \ + if (RB_LEFT(RB_PARENT(old, field), field) == old)\ + RB_LEFT(RB_PARENT(old, field), field) = elm;\ + else \ + RB_RIGHT(RB_PARENT(old, field), field) = elm;\ + RB_AUGMENT(RB_PARENT(old, field)); \ + } else \ + RB_ROOT(head) = elm; \ + RB_PARENT(RB_LEFT(old, field), field) = elm; \ + if (RB_RIGHT(old, field)) \ + RB_PARENT(RB_RIGHT(old, field), field) = elm; \ + if (parent) { \ + left = parent; \ + do { \ + RB_AUGMENT(left); \ + } while ((left = RB_PARENT(left, field)) != NULL); \ + } \ + goto color; \ + } \ + parent = RB_PARENT(elm, field); \ + color = RB_COLOR(elm, field); \ + if (child) \ + RB_PARENT(child, field) = parent; \ + if (parent) { \ + if (RB_LEFT(parent, field) == elm) \ + RB_LEFT(parent, field) = child; \ + else \ + RB_RIGHT(parent, field) = child; \ + RB_AUGMENT(parent); \ + } else \ + RB_ROOT(head) = child; \ +color: \ + if (color == RB_BLACK) \ + name##_RB_REMOVE_COLOR(head, parent, child); \ + return (old); \ +} \ + \ +/* Inserts a node into the RB tree */ \ +attr struct type * \ +name##_RB_INSERT(struct name *head, struct type *elm) \ +{ \ + struct type *tmp; \ + struct type *parent = NULL; \ + int comp = 0; \ + tmp = RB_ROOT(head); \ + while (tmp) { \ + parent = tmp; \ + comp = (cmp)(elm, parent); \ + if (comp < 0) \ + tmp = RB_LEFT(tmp, field); \ + else if (comp > 0) \ + tmp = RB_RIGHT(tmp, field); \ + else \ + return (tmp); \ + } \ + RB_SET(elm, parent, field); \ + if (parent != NULL) { \ + if (comp < 0) \ + RB_LEFT(parent, field) = elm; \ + else \ + RB_RIGHT(parent, field) = elm; \ + RB_AUGMENT(parent); \ + } else \ + RB_ROOT(head) = elm; \ + name##_RB_INSERT_COLOR(head, elm); \ + return (NULL); \ +} \ + \ +/* Finds the node with the same key as elm */ \ +attr struct type * \ +name##_RB_FIND(struct name *head, struct type *elm) \ +{ \ + struct type *tmp = RB_ROOT(head); \ + int comp; \ + while (tmp) { \ + comp = cmp(elm, tmp); \ + if (comp < 0) \ + tmp = RB_LEFT(tmp, field); \ + else if (comp > 0) \ + tmp = RB_RIGHT(tmp, field); \ + else \ + return (tmp); \ + } \ + return (NULL); \ +} \ + \ +/* Finds the first node greater than or equal to the search key */ \ +attr struct type * \ +name##_RB_NFIND(struct name *head, struct type *elm) \ +{ \ + struct type *tmp = RB_ROOT(head); \ + struct type *res = NULL; \ + int comp; \ + while (tmp) { \ + comp = cmp(elm, tmp); \ + if (comp < 0) { \ + res = tmp; \ + tmp = RB_LEFT(tmp, field); \ + } \ + else if (comp > 0) \ + tmp = RB_RIGHT(tmp, field); \ + else \ + return (tmp); \ + } \ + return (res); \ +} \ + \ +/* ARGSUSED */ \ +attr struct type * \ +name##_RB_NEXT(struct type *elm) \ +{ \ + if (RB_RIGHT(elm, field)) { \ + elm = RB_RIGHT(elm, field); \ + while (RB_LEFT(elm, field)) \ + elm = RB_LEFT(elm, field); \ + } else { \ + if (RB_PARENT(elm, field) && \ + (elm == RB_LEFT(RB_PARENT(elm, field), field))) \ + elm = RB_PARENT(elm, field); \ + else { \ + while (RB_PARENT(elm, field) && \ + (elm == RB_RIGHT(RB_PARENT(elm, field), field)))\ + elm = RB_PARENT(elm, field); \ + elm = RB_PARENT(elm, field); \ + } \ + } \ + return (elm); \ +} \ + \ +/* ARGSUSED */ \ +attr struct type * \ +name##_RB_PREV(struct type *elm) \ +{ \ + if (RB_LEFT(elm, field)) { \ + elm = RB_LEFT(elm, field); \ + while (RB_RIGHT(elm, field)) \ + elm = RB_RIGHT(elm, field); \ + } else { \ + if (RB_PARENT(elm, field) && \ + (elm == RB_RIGHT(RB_PARENT(elm, field), field))) \ + elm = RB_PARENT(elm, field); \ + else { \ + while (RB_PARENT(elm, field) && \ + (elm == RB_LEFT(RB_PARENT(elm, field), field)))\ + elm = RB_PARENT(elm, field); \ + elm = RB_PARENT(elm, field); \ + } \ + } \ + return (elm); \ +} \ + \ +attr struct type * \ +name##_RB_MINMAX(struct name *head, int val) \ +{ \ + struct type *tmp = RB_ROOT(head); \ + struct type *parent = NULL; \ + while (tmp) { \ + parent = tmp; \ + if (val < 0) \ + tmp = RB_LEFT(tmp, field); \ + else \ + tmp = RB_RIGHT(tmp, field); \ + } \ + return (parent); \ +} + +#define RB_NEGINF -1 +#define RB_INF 1 + +#define RB_INSERT(name, x, y) name##_RB_INSERT(x, y) +#define RB_REMOVE(name, x, y) name##_RB_REMOVE(x, y) +#define RB_FIND(name, x, y) name##_RB_FIND(x, y) +#define RB_NFIND(name, x, y) name##_RB_NFIND(x, y) +#define RB_NEXT(name, x, y) name##_RB_NEXT(y) +#define RB_PREV(name, x, y) name##_RB_PREV(y) +#define RB_MIN(name, x) name##_RB_MINMAX(x, RB_NEGINF) +#define RB_MAX(name, x) name##_RB_MINMAX(x, RB_INF) + +#define RB_FOREACH(x, name, head) \ + for ((x) = RB_MIN(name, head); \ + (x) != NULL; \ + (x) = name##_RB_NEXT(x)) + +#define RB_FOREACH_REVERSE(x, name, head) \ + for ((x) = RB_MAX(name, head); \ + (x) != NULL; \ + (x) = name##_RB_PREV(x)) + +#pragma clang diagnostic pop diff --git a/include/xhyve/support/uuid.h b/include/xhyve/support/uuid.h new file mode 100644 index 0000000..009c617 --- /dev/null +++ b/include/xhyve/support/uuid.h @@ -0,0 +1,153 @@ +/*- + * Copyright (c) 2002,2005 Marcel Moolenaar + * Copyright (c) 2002 Hiten Mahesh Pandya + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#pragma once + +#include +#include +#include + +#define _UUID_NODE_LEN 6 + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" +struct uuid { + uint32_t time_low; + uint16_t time_mid; + uint16_t time_hi_and_version; + uint8_t clock_seq_hi_and_reserved; + uint8_t clock_seq_low; + uint8_t node[_UUID_NODE_LEN]; +}; +#pragma clang diagnostic pop + +typedef struct uuid uuid_internal_t; + +/* + * This implementation mostly conforms to the DCE 1.1 specification. + * See Also: + * uuidgen(1), uuidgen(2), uuid(3) + */ + +/* Status codes returned by the functions. */ +#define uuid_s_ok 0 +#define uuid_s_bad_version 1 +#define uuid_s_invalid_string_uuid 2 +#define uuid_s_no_memory 3 + +/* + * uuid_create_nil() - create a nil UUID. + * See also: + * http://www.opengroup.org/onlinepubs/009629399/uuid_create_nil.htm + */ +static inline void +uuid_create_nil(uuid_t *u, uint32_t *status) +{ + if (status) + *status = uuid_s_ok; + + bzero(u, sizeof(*u)); +} + +static void +uuid_enc_le(void *buf, const uuid_t *uuid) +{ + uuid_internal_t *u = (uuid_internal_t *) ((void *) uuid); + uint8_t *p = buf; + int i; + + memcpy(p, &u->time_low, 4); + memcpy(p, &u->time_mid, 2); + memcpy(p, &u->time_hi_and_version, 2); + p[8] = u->clock_seq_hi_and_reserved; + p[9] = u->clock_seq_low; + for (i = 0; i < _UUID_NODE_LEN; i++) + p[10 + i] = u->node[i]; +} + +/* + * uuid_from_string() - convert a string representation of an UUID into + * a binary representation. + * See also: + * http://www.opengroup.org/onlinepubs/009629399/uuid_from_string.htm + * + * NOTE: The sequence field is in big-endian, while the time fields are in + * native byte order. + */ +static inline void +uuid_from_string(const char *s, uuid_t *uuid, uint32_t *status) +{ + uuid_internal_t *u = (uuid_internal_t *) ((void *) uuid); + int n; + + /* Short-circuit 2 special cases: NULL pointer and empty string. */ + if (s == NULL || *s == '\0') { + uuid_create_nil(((uuid_t *) u), status); + return; + } + + /* Assume the worst. */ + if (status != NULL) + *status = uuid_s_invalid_string_uuid; + + /* The UUID string representation has a fixed length. */ + if (strlen(s) != 36) + return; + + /* + * We only work with "new" UUIDs. New UUIDs have the form: + * 01234567-89ab-cdef-0123-456789abcdef + * The so called "old" UUIDs, which we don't support, have the form: + * 0123456789ab.cd.ef.01.23.45.67.89.ab + */ + if (s[8] != '-') + return; + + n = sscanf(s, + "%8x-%4hx-%4hx-%2hhx%2hhx-%2hhx%2hhx%2hhx%2hhx%2hhx%2hhx", + &u->time_low, &u->time_mid, &u->time_hi_and_version, + &u->clock_seq_hi_and_reserved, &u->clock_seq_low, &u->node[0], + &u->node[1], &u->node[2], &u->node[3], &u->node[4], &u->node[5]); + + /* Make sure we have all conversions. */ + if (n != 11) + return; + + /* We have a successful scan. Check semantics... */ + n = u->clock_seq_hi_and_reserved; + if ((n & 0x80) != 0x00 && /* variant 0? */ + (n & 0xc0) != 0x80 && /* variant 1? */ + (n & 0xe0) != 0xc0) { /* variant 2? */ + if (status != NULL) + *status = uuid_s_bad_version; + } else { + if (status != NULL) + *status = uuid_s_ok; + } +} diff --git a/bhyve/uart_emul.h b/include/xhyve/uart_emul.h similarity index 80% rename from bhyve/uart_emul.h rename to include/xhyve/uart_emul.h index 993b92e..804dfb8 100644 --- a/bhyve/uart_emul.h +++ b/include/xhyve/uart_emul.h @@ -26,20 +26,17 @@ * $FreeBSD$ */ -#ifndef _UART_EMUL_H_ -#define _UART_EMUL_H_ +#pragma once - -#define UART_IO_BAR_SIZE 8 +#define UART_IO_BAR_SIZE 8 struct uart_softc; typedef void (*uart_intr_func_t)(void *arg); struct uart_softc *uart_init(uart_intr_func_t intr_assert, - uart_intr_func_t intr_deassert, void *arg); + uart_intr_func_t intr_deassert, void *arg); -int uart_legacy_alloc(int unit, int *ioaddr, int *irq); -uint8_t uart_read(struct uart_softc *sc, int offset); -void uart_write(struct uart_softc *sc, int offset, uint8_t value); -int uart_set_backend(struct uart_softc *sc, const char *opt); -#endif +int uart_legacy_alloc(int unit, int *ioaddr, int *irq); +uint8_t uart_read(struct uart_softc *sc, int offset); +void uart_write(struct uart_softc *sc, int offset, uint8_t value); +int uart_set_backend(struct uart_softc *sc, const char *opt); diff --git a/bhyve/virtio.h b/include/xhyve/virtio.h similarity index 77% rename from bhyve/virtio.h rename to include/xhyve/virtio.h index 0e96a1d..feb0fbb 100644 --- a/bhyve/virtio.h +++ b/include/xhyve/virtio.h @@ -26,8 +26,10 @@ * $FreeBSD$ */ -#ifndef _VIRTIO_H_ -#define _VIRTIO_H_ +#pragma once + +#include +#include /* * These are derived from several virtio specifications. @@ -125,35 +127,40 @@ #define VRING_DESC_F_WRITE (1 << 1) #define VRING_DESC_F_INDIRECT (1 << 2) -struct virtio_desc { /* AKA vring_desc */ - uint64_t vd_addr; /* guest physical address */ - uint32_t vd_len; /* length of scatter/gather seg */ - uint16_t vd_flags; /* VRING_F_DESC_* */ - uint16_t vd_next; /* next desc if F_NEXT */ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpacked" + +struct virtio_desc { /* AKA vring_desc */ + uint64_t vd_addr; /* guest physical address */ + uint32_t vd_len; /* length of scatter/gather seg */ + uint16_t vd_flags; /* VRING_F_DESC_* */ + uint16_t vd_next; /* next desc if F_NEXT */ } __packed; -struct virtio_used { /* AKA vring_used_elem */ - uint32_t vu_idx; /* head of used descriptor chain */ - uint32_t vu_tlen; /* length written-to */ +struct virtio_used { /* AKA vring_used_elem */ + uint32_t vu_idx; /* head of used descriptor chain */ + uint32_t vu_tlen; /* length written-to */ } __packed; #define VRING_AVAIL_F_NO_INTERRUPT 1 struct vring_avail { - uint16_t va_flags; /* VRING_AVAIL_F_* */ - uint16_t va_idx; /* counts to 65535, then cycles */ - uint16_t va_ring[]; /* size N, reported in QNUM value */ -/* uint16_t va_used_event; -- after N ring entries */ + uint16_t va_flags; /* VRING_AVAIL_F_* */ + uint16_t va_idx; /* counts to 65535, then cycles */ + uint16_t va_ring[]; /* size N, reported in QNUM value */ +/* uint16_t va_used_event; -- after N ring entries */ } __packed; #define VRING_USED_F_NO_NOTIFY 1 struct vring_used { - uint16_t vu_flags; /* VRING_USED_F_* */ - uint16_t vu_idx; /* counts to 65535, then cycles */ - struct virtio_used vu_ring[]; /* size N */ -/* uint16_t vu_avail_event; -- after N ring entries */ + uint16_t vu_flags; /* VRING_USED_F_* */ + uint16_t vu_idx; /* counts to 65535, then cycles */ + struct virtio_used vu_ring[]; /* size N */ +/* uint16_t vu_avail_event; -- after N ring entries */ } __packed; +#pragma clang diagnostic pop + /* * The address of any given virtual queue is determined by a single * Page Frame Number register. The guest writes the PFN into the @@ -269,16 +276,15 @@ vring_size(u_int qsz) /* constant 3 below = va_flags, va_idx, va_used_event */ size = sizeof(struct virtio_desc) * qsz + sizeof(uint16_t) * (3 + qsz); - size = roundup2(size, VRING_ALIGN); + size = roundup2(size, ((size_t) VRING_ALIGN)); /* constant 3 below = vu_flags, vu_idx, vu_avail_event */ size += sizeof(uint16_t) * 3 + sizeof(struct virtio_used) * qsz; - size = roundup2(size, VRING_ALIGN); + size = roundup2(size, ((size_t) VRING_ALIGN)); return (size); } -struct vmctx; struct pci_devinst; struct vqueue_info; @@ -316,45 +322,53 @@ struct vqueue_info; #define VIRTIO_EVENT_IDX 0x02 /* use the event-index values */ #define VIRTIO_BROKED 0x08 /* ??? */ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" + struct virtio_softc { - struct virtio_consts *vs_vc; /* constants (see below) */ - int vs_flags; /* VIRTIO_* flags from above */ - pthread_mutex_t *vs_mtx; /* POSIX mutex, if any */ - struct pci_devinst *vs_pi; /* PCI device instance */ - uint32_t vs_negotiated_caps; /* negotiated capabilities */ - struct vqueue_info *vs_queues; /* one per vc_nvq */ - int vs_curq; /* current queue */ - uint8_t vs_status; /* value from last status write */ - uint8_t vs_isr; /* ISR flags, if not MSI-X */ - uint16_t vs_msix_cfg_idx; /* MSI-X vector for config event */ + struct virtio_consts *vs_vc; /* constants (see below) */ + int vs_flags; /* VIRTIO_* flags from above */ + pthread_mutex_t *vs_mtx; /* POSIX mutex, if any */ + struct pci_devinst *vs_pi; /* PCI device instance */ + uint32_t vs_negotiated_caps; /* negotiated capabilities */ + struct vqueue_info *vs_queues; /* one per vc_nvq */ + int vs_curq; /* current queue */ + uint8_t vs_status; /* value from last status write */ + uint8_t vs_isr; /* ISR flags, if not MSI-X */ + uint16_t vs_msix_cfg_idx; /* MSI-X vector for config event */ }; -#define VS_LOCK(vs) \ -do { \ - if (vs->vs_mtx) \ - pthread_mutex_lock(vs->vs_mtx); \ +#define VS_LOCK(vs) \ +do { \ + if (vs->vs_mtx) \ + pthread_mutex_lock(vs->vs_mtx); \ } while (0) -#define VS_UNLOCK(vs) \ -do { \ - if (vs->vs_mtx) \ - pthread_mutex_unlock(vs->vs_mtx); \ +#define VS_UNLOCK(vs) \ +do { \ + if (vs->vs_mtx) \ + pthread_mutex_unlock(vs->vs_mtx); \ } while (0) struct virtio_consts { - const char *vc_name; /* name of driver (for diagnostics) */ - int vc_nvq; /* number of virtual queues */ - size_t vc_cfgsize; /* size of dev-specific config regs */ - void (*vc_reset)(void *); /* called on virtual device reset */ - void (*vc_qnotify)(void *, struct vqueue_info *); - /* called on QNOTIFY if no VQ notify */ - int (*vc_cfgread)(void *, int, int, uint32_t *); - /* called to read config regs */ - int (*vc_cfgwrite)(void *, int, int, uint32_t); - /* called to write config regs */ - void (*vc_apply_features)(void *, uint64_t); - /* called to apply negotiated features */ - uint64_t vc_hv_caps; /* hypervisor-provided capabilities */ + /* name of driver (for diagnostics) */ + const char *vc_name; + /* number of virtual queues */ + int vc_nvq; + /* size of dev-specific config regs */ + size_t vc_cfgsize; + /* called on virtual device reset */ + void (*vc_reset)(void *); + /* called on QNOTIFY if no VQ notify */ + void (*vc_qnotify)(void *, struct vqueue_info *); + /* called to read config regs */ + int (*vc_cfgread)(void *, int, int, uint32_t *); + /* called to write config regs */ + int (*vc_cfgwrite)(void *, int, int, uint32_t); + /* called to apply negotiated features */ + void (*vc_apply_features)(void *, uint64_t); + /* hypervisor-provided capabilities */ + uint64_t vc_hv_caps; }; /* @@ -377,25 +391,34 @@ struct virtio_consts { #define VQ_ALLOC 0x01 /* set once we have a pfn */ #define VQ_BROKED 0x02 /* ??? */ struct vqueue_info { - uint16_t vq_qsize; /* size of this queue (a power of 2) */ - void (*vq_notify)(void *, struct vqueue_info *); - /* called instead of vc_notify, if not NULL */ - - struct virtio_softc *vq_vs; /* backpointer to softc */ - uint16_t vq_num; /* we're the num'th queue in the softc */ - - uint16_t vq_flags; /* flags (see above) */ - uint16_t vq_last_avail; /* a recent value of vq_avail->va_idx */ - uint16_t vq_save_used; /* saved vq_used->vu_idx; see vq_endchains */ - uint16_t vq_msix_idx; /* MSI-X index, or VIRTIO_MSI_NO_VECTOR */ - - uint32_t vq_pfn; /* PFN of virt queue (not shifted!) */ - - volatile struct virtio_desc *vq_desc; /* descriptor array */ - volatile struct vring_avail *vq_avail; /* the "avail" ring */ - volatile struct vring_used *vq_used; /* the "used" ring */ - + /* size of this queue (a power of 2) */ + uint16_t vq_qsize; + /* called instead of vc_notify, if not NULL */ + void (*vq_notify)(void *, struct vqueue_info *); + /* backpointer to softc */ + struct virtio_softc *vq_vs; + /* we're the num'th queue in the softc */ + uint16_t vq_num; + /* flags (see above) */ + uint16_t vq_flags; + /* a recent value of vq_avail->va_idx */ + uint16_t vq_last_avail; + /* saved vq_used->vu_idx; see vq_endchains */ + uint16_t vq_save_used; + /* MSI-X index, or VIRTIO_MSI_NO_VECTOR */ + uint16_t vq_msix_idx; + /* PFN of virt queue (not shifted!) */ + uint32_t vq_pfn; + /* descriptor array */ + volatile struct virtio_desc *vq_desc; + /* the "avail" ring */ + volatile struct vring_avail *vq_avail; + /* the "used" ring */ + volatile struct vring_used *vq_used; }; + +#pragma clang diagnostic pop + /* as noted above, these are sort of backwards, name-wise */ #define VQ_AVAIL_EVENT_IDX(vq) \ (*(volatile uint16_t *)&(vq)->vq_used->vu_ring[(vq)->vq_qsize]) @@ -408,7 +431,6 @@ struct vqueue_info { static inline int vq_ring_ready(struct vqueue_info *vq) { - return (vq->vq_flags & VQ_ALLOC); } @@ -419,7 +441,6 @@ vq_ring_ready(struct vqueue_info *vq) static inline int vq_has_descs(struct vqueue_info *vq) { - return (vq_ring_ready(vq) && vq->vq_last_avail != vq->vq_avail->va_idx); } @@ -431,7 +452,6 @@ vq_has_descs(struct vqueue_info *vq) static inline void vq_interrupt(struct virtio_softc *vs, struct vqueue_info *vq) { - if (pci_msix_enabled(vs->vs_pi)) pci_generate_msix(vs->vs_pi, vq->vq_msix_idx); else { @@ -444,21 +464,17 @@ vq_interrupt(struct virtio_softc *vs, struct vqueue_info *vq) } struct iovec; -void vi_softc_linkup(struct virtio_softc *vs, struct virtio_consts *vc, - void *dev_softc, struct pci_devinst *pi, - struct vqueue_info *queues); -int vi_intr_init(struct virtio_softc *vs, int barnum, int use_msix); -void vi_reset_dev(struct virtio_softc *); -void vi_set_io_bar(struct virtio_softc *, int); - -int vq_getchain(struct vqueue_info *vq, uint16_t *pidx, - struct iovec *iov, int n_iov, uint16_t *flags); -void vq_retchain(struct vqueue_info *vq); -void vq_relchain(struct vqueue_info *vq, uint16_t idx, uint32_t iolen); -void vq_endchains(struct vqueue_info *vq, int used_all_avail); - -uint64_t vi_pci_read(struct vmctx *ctx, int vcpu, struct pci_devinst *pi, - int baridx, uint64_t offset, int size); -void vi_pci_write(struct vmctx *ctx, int vcpu, struct pci_devinst *pi, - int baridx, uint64_t offset, int size, uint64_t value); -#endif /* _VIRTIO_H_ */ +void vi_softc_linkup(struct virtio_softc *vs, struct virtio_consts *vc, + void *dev_softc, struct pci_devinst *pi, struct vqueue_info *queues); +int vi_intr_init(struct virtio_softc *vs, int barnum, int use_msix); +void vi_reset_dev(struct virtio_softc *); +void vi_set_io_bar(struct virtio_softc *, int); +int vq_getchain(struct vqueue_info *vq, uint16_t *pidx, struct iovec *iov, + int n_iov, uint16_t *flags); +void vq_retchain(struct vqueue_info *vq); +void vq_relchain(struct vqueue_info *vq, uint16_t idx, uint32_t iolen); +void vq_endchains(struct vqueue_info *vq, int used_all_avail); +uint64_t vi_pci_read(int vcpu, struct pci_devinst *pi, int baridx, + uint64_t offset, int size); +void vi_pci_write(int vcpu, struct pci_devinst *pi, int baridx, uint64_t offset, + int size, uint64_t value); diff --git a/vmm/intel/vmcs.h b/include/xhyve/vmm/intel/vmcs.h similarity index 80% rename from vmm/intel/vmcs.h rename to include/xhyve/vmm/intel/vmcs.h index 6d78a69..4ce70e2 100644 --- a/vmm/intel/vmcs.h +++ b/include/xhyve/vmm/intel/vmcs.h @@ -26,75 +26,62 @@ * $FreeBSD$ */ -#ifndef _VMCS_H_ -#define _VMCS_H_ +#pragma once -#ifdef _KERNEL -struct vmcs { - uint32_t identifier; - uint32_t abort_code; - char _impl_specific[PAGE_SIZE - sizeof(uint32_t) * 2]; -}; -CTASSERT(sizeof(struct vmcs) == PAGE_SIZE); +#include +#include +#include +#include -/* MSR save region is composed of an array of 'struct msr_entry' */ -struct msr_entry { - uint32_t index; - uint32_t reserved; - uint64_t val; +int vmcs_getreg(int vcpuid, int ident, uint64_t *rv); +int vmcs_setreg(int vcpuid, int ident, uint64_t val); +int vmcs_getdesc(int vcpuid, int ident, struct seg_desc *desc); +int vmcs_setdesc(int vcpuid, int ident, struct seg_desc *desc); -}; - -int vmcs_set_msr_save(struct vmcs *vmcs, u_long g_area, u_int g_count); -int vmcs_init(struct vmcs *vmcs); -int vmcs_getreg(struct vmcs *vmcs, int running, int ident, uint64_t *rv); -int vmcs_setreg(struct vmcs *vmcs, int running, int ident, uint64_t val); -int vmcs_getdesc(struct vmcs *vmcs, int running, int ident, - struct seg_desc *desc); -int vmcs_setdesc(struct vmcs *vmcs, int running, int ident, - struct seg_desc *desc); - -/* - * Avoid header pollution caused by inline use of 'vtophys()' in vmx_cpufunc.h - */ -#ifdef _VMX_CPUFUNC_H_ static __inline uint64_t -vmcs_read(uint32_t encoding) +vmcs_read(int vcpuid, uint32_t encoding) { - int error; uint64_t val; - error = vmread(encoding, &val); - KASSERT(error == 0, ("vmcs_read(%u) error %d", encoding, error)); + hv_vmx_vcpu_read_vmcs(((hv_vcpuid_t) vcpuid), encoding, &val); return (val); } static __inline void -vmcs_write(uint32_t encoding, uint64_t val) +vmcs_write(int vcpuid, uint32_t encoding, uint64_t val) { - int error; - - error = vmwrite(encoding, val); - KASSERT(error == 0, ("vmcs_write(%u) error %d", encoding, error)); + if (encoding == 0x00004002) { + if (val == 0x0000000000000004) { + abort(); + } + } + hv_vmx_vcpu_write_vmcs(((hv_vcpuid_t) vcpuid), encoding, val); } -#endif /* _VMX_CPUFUNC_H_ */ -#define vmexit_instruction_length() vmcs_read(VMCS_EXIT_INSTRUCTION_LENGTH) -#define vmcs_guest_rip() vmcs_read(VMCS_GUEST_RIP) -#define vmcs_instruction_error() vmcs_read(VMCS_INSTRUCTION_ERROR) -#define vmcs_exit_reason() (vmcs_read(VMCS_EXIT_REASON) & 0xffff) -#define vmcs_exit_qualification() vmcs_read(VMCS_EXIT_QUALIFICATION) -#define vmcs_guest_cr3() vmcs_read(VMCS_GUEST_CR3) -#define vmcs_gpa() vmcs_read(VMCS_GUEST_PHYSICAL_ADDRESS) -#define vmcs_gla() vmcs_read(VMCS_GUEST_LINEAR_ADDRESS) -#define vmcs_idt_vectoring_info() vmcs_read(VMCS_IDT_VECTORING_INFO) -#define vmcs_idt_vectoring_err() vmcs_read(VMCS_IDT_VECTORING_ERROR) - -#endif /* _KERNEL */ +#define vmexit_instruction_length(vcpuid) \ + vmcs_read(vcpuid, VMCS_EXIT_INSTRUCTION_LENGTH) +#define vmcs_guest_rip(vcpuid) \ + vmcs_read(vcpuid, VMCS_GUEST_RIP) +#define vmcs_instruction_error(vcpuid) \ + vmcs_read(vcpuid, VMCS_INSTRUCTION_ERROR) +#define vmcs_exit_reason(vcpuid) \ + (vmcs_read(vcpuid, VMCS_EXIT_REASON) & 0xffff) +#define vmcs_exit_qualification(vcpuid) \ + vmcs_read(vcpuid, VMCS_EXIT_QUALIFICATION) +#define vmcs_guest_cr3(vcpuid) \ + vmcs_read(vcpuid, VMCS_GUEST_CR3) +#define vmcs_gpa(vcpuid) \ + vmcs_read(vcpuid, VMCS_GUEST_PHYSICAL_ADDRESS) +#define vmcs_gla(vcpuid) \ + vmcs_read(vcpuid, VMCS_GUEST_LINEAR_ADDRESS) +#define vmcs_idt_vectoring_info(vcpuid) \ + vmcs_read(vcpuid, VMCS_IDT_VECTORING_INFO) +#define vmcs_idt_vectoring_err(vcpuid) \ + vmcs_read(vcpuid, VMCS_IDT_VECTORING_ERROR) #define VMCS_INITIAL 0xffffffffffffffff -#define VMCS_IDENT(encoding) ((encoding) | 0x80000000) +#define VMCS_IDENT(encoding) ((int) (((unsigned) (encoding)) | 0x80000000)) /* * VMCS field encodings from Appendix H, Intel Architecture Manual Vol3B. */ @@ -342,33 +329,33 @@ vmcs_write(uint32_t encoding, uint64_t val) * * Applies to VM-exits due to hardware exception or EPT fault. */ -#define EXIT_QUAL_NMIUDTI (1 << 12) +#define EXIT_QUAL_NMIUDTI (1U << 12) /* * VMCS interrupt information fields */ #define VMCS_INTR_VALID (1U << 31) -#define VMCS_INTR_T_MASK 0x700 /* Interruption-info type */ -#define VMCS_INTR_T_HWINTR (0 << 8) -#define VMCS_INTR_T_NMI (2 << 8) -#define VMCS_INTR_T_HWEXCEPTION (3 << 8) -#define VMCS_INTR_T_SWINTR (4 << 8) -#define VMCS_INTR_T_PRIV_SWEXCEPTION (5 << 8) -#define VMCS_INTR_T_SWEXCEPTION (6 << 8) -#define VMCS_INTR_DEL_ERRCODE (1 << 11) +#define VMCS_INTR_T_MASK 0x700U /* Interruption-info type */ +#define VMCS_INTR_T_HWINTR (0U << 8) +#define VMCS_INTR_T_NMI (2U << 8) +#define VMCS_INTR_T_HWEXCEPTION (3U << 8) +#define VMCS_INTR_T_SWINTR (4U << 8) +#define VMCS_INTR_T_PRIV_SWEXCEPTION (5U << 8) +#define VMCS_INTR_T_SWEXCEPTION (6U << 8) +#define VMCS_INTR_DEL_ERRCODE (1U << 11) /* * VMCS IDT-Vectoring information fields */ #define VMCS_IDT_VEC_VALID (1U << 31) -#define VMCS_IDT_VEC_ERRCODE_VALID (1 << 11) +#define VMCS_IDT_VEC_ERRCODE_VALID (1U << 11) /* * VMCS Guest interruptibility field */ -#define VMCS_INTERRUPTIBILITY_STI_BLOCKING (1 << 0) -#define VMCS_INTERRUPTIBILITY_MOVSS_BLOCKING (1 << 1) -#define VMCS_INTERRUPTIBILITY_SMI_BLOCKING (1 << 2) -#define VMCS_INTERRUPTIBILITY_NMI_BLOCKING (1 << 3) +#define VMCS_INTERRUPTIBILITY_STI_BLOCKING (1U << 0) +#define VMCS_INTERRUPTIBILITY_MOVSS_BLOCKING (1U << 1) +#define VMCS_INTERRUPTIBILITY_SMI_BLOCKING (1U << 2) +#define VMCS_INTERRUPTIBILITY_NMI_BLOCKING (1U << 3) /* * Exit qualification for EXIT_REASON_INVAL_VMCS @@ -397,5 +384,3 @@ vmcs_write(uint32_t encoding, uint64_t val) * Exit qualification for APIC-write VM exit */ #define APIC_WRITE_OFFSET(qual) ((qual) & 0xFFF) - -#endif diff --git a/vmm/intel/vmx.h b/include/xhyve/vmm/intel/vmx.h similarity index 59% rename from vmm/intel/vmx.h rename to include/xhyve/vmm/intel/vmx.h index bc48861..9402892 100644 --- a/vmm/intel/vmx.h +++ b/include/xhyve/vmm/intel/vmx.h @@ -1,5 +1,6 @@ /*- * Copyright (c) 2011 NetApp, Inc. + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,50 +27,12 @@ * $FreeBSD$ */ -#ifndef _VMX_H_ -#define _VMX_H_ +#pragma once -#include "vmcs.h" - -struct pmap; - -struct vmxctx { - register_t guest_rdi; /* Guest state */ - register_t guest_rsi; - register_t guest_rdx; - register_t guest_rcx; - register_t guest_r8; - register_t guest_r9; - register_t guest_rax; - register_t guest_rbx; - register_t guest_rbp; - register_t guest_r10; - register_t guest_r11; - register_t guest_r12; - register_t guest_r13; - register_t guest_r14; - register_t guest_r15; - register_t guest_cr2; - - register_t host_r15; /* Host state */ - register_t host_r14; - register_t host_r13; - register_t host_r12; - register_t host_rbp; - register_t host_rsp; - register_t host_rbx; - /* - * XXX todo debug registers and fpu state - */ - - int inst_fail_status; - - /* - * The pmap needs to be deactivated in vmx_enter_guest() - * so keep a copy of the 'pmap' in each vmxctx. - */ - struct pmap *pmap; -}; +#include +#include +#include +#include struct vmxcap { int set; @@ -77,16 +40,19 @@ struct vmxcap { uint32_t proc_ctls2; }; +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" struct vmxstate { uint64_t nextrip; /* next instruction to be executed by guest */ int lastcpu; /* host cpu that this 'vcpu' last ran on */ uint16_t vpid; }; +#pragma clang diagnostic pop struct apic_page { - uint32_t reg[PAGE_SIZE / 4]; + uint32_t reg[XHYVE_PAGE_SIZE / 4]; }; -CTASSERT(sizeof(struct apic_page) == PAGE_SIZE); +CTASSERT(sizeof(struct apic_page) == XHYVE_PAGE_SIZE); /* Posted Interrupt Descriptor (described in section 29.6 of the Intel SDM) */ struct pir_desc { @@ -109,32 +75,20 @@ enum { /* virtual machine softc */ struct vmx { - struct vmcs vmcs[VM_MAXCPU]; /* one vmcs per virtual cpu */ - struct apic_page apic_page[VM_MAXCPU]; /* one apic page per vcpu */ - char msr_bitmap[PAGE_SIZE]; - struct pir_desc pir_desc[VM_MAXCPU]; - uint64_t guest_msrs[VM_MAXCPU][GUEST_MSR_NUM]; - struct vmxctx ctx[VM_MAXCPU]; - struct vmxcap cap[VM_MAXCPU]; - struct vmxstate state[VM_MAXCPU]; - uint64_t eptp; - struct vm *vm; - long eptgen[MAXCPU]; /* cached pmap->pm_eptgen */ + struct apic_page apic_page[VM_MAXCPU]; /* one apic page per vcpu */ + uint64_t guest_msrs[VM_MAXCPU][GUEST_MSR_NUM]; + struct vmxcap cap[VM_MAXCPU]; + struct vmxstate state[VM_MAXCPU]; + struct vm *vm; }; -CTASSERT((offsetof(struct vmx, vmcs) & PAGE_MASK) == 0); -CTASSERT((offsetof(struct vmx, msr_bitmap) & PAGE_MASK) == 0); -CTASSERT((offsetof(struct vmx, pir_desc[0]) & 63) == 0); #define VMX_GUEST_VMEXIT 0 #define VMX_VMRESUME_ERROR 1 #define VMX_VMLAUNCH_ERROR 2 #define VMX_INVEPT_ERROR 3 -int vmx_enter_guest(struct vmxctx *ctx, struct vmx *vmx, int launched); void vmx_call_isr(uintptr_t entry); u_long vmx_fix_cr0(u_long cr0); u_long vmx_fix_cr4(u_long cr4); extern char vmx_exit_guest[]; - -#endif diff --git a/include/xhyve/vmm/intel/vmx_controls.h b/include/xhyve/vmm/intel/vmx_controls.h new file mode 100644 index 0000000..230afba --- /dev/null +++ b/include/xhyve/vmm/intel/vmx_controls.h @@ -0,0 +1,94 @@ +/*- + * Copyright (c) 2011 NetApp, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY NETAPP, INC ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL NETAPP, INC OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#pragma once + +/* Pin-Based VM-Execution Controls */ +#define PINBASED_EXTINT_EXITING (1u << 0) +#define PINBASED_NMI_EXITING (1u << 3) +#define PINBASED_VIRTUAL_NMI (1u << 5) +#define PINBASED_PREMPTION_TIMER (1u << 6) +#define PINBASED_POSTED_INTERRUPT (1u << 7) + +/* Primary Processor-Based VM-Execution Controls */ +#define PROCBASED_INT_WINDOW_EXITING (1u << 2) +#define PROCBASED_TSC_OFFSET (1u << 3) +#define PROCBASED_HLT_EXITING (1u << 7) +#define PROCBASED_INVLPG_EXITING (1u << 9) +#define PROCBASED_MWAIT_EXITING (1u << 10) +#define PROCBASED_RDPMC_EXITING (1u << 11) +#define PROCBASED_RDTSC_EXITING (1u << 12) +#define PROCBASED_CR3_LOAD_EXITING (1u << 15) +#define PROCBASED_CR3_STORE_EXITING (1u << 16) +#define PROCBASED_CR8_LOAD_EXITING (1u << 19) +#define PROCBASED_CR8_STORE_EXITING (1u << 20) +#define PROCBASED_USE_TPR_SHADOW (1u << 21) +#define PROCBASED_NMI_WINDOW_EXITING (1u << 22) +#define PROCBASED_MOV_DR_EXITING (1u << 23) +#define PROCBASED_IO_EXITING (1u << 24) +#define PROCBASED_IO_BITMAPS (1u << 25) +#define PROCBASED_MTF (1u << 27) +#define PROCBASED_MSR_BITMAPS (1u << 28) +#define PROCBASED_MONITOR_EXITING (1u << 29) +#define PROCBASED_PAUSE_EXITING (1u << 30) +#define PROCBASED_SECONDARY_CONTROLS (1U << 31) + +/* Secondary Processor-Based VM-Execution Controls */ +#define PROCBASED2_VIRTUALIZE_APIC_ACCESSES (1u << 0) +#define PROCBASED2_ENABLE_EPT (1u << 1) +#define PROCBASED2_DESC_TABLE_EXITING (1u << 2) +#define PROCBASED2_ENABLE_RDTSCP (1u << 3) +#define PROCBASED2_VIRTUALIZE_X2APIC_MODE (1u << 4) +#define PROCBASED2_ENABLE_VPID (1u << 5) +#define PROCBASED2_WBINVD_EXITING (1u << 6) +#define PROCBASED2_UNRESTRICTED_GUEST (1u << 7) +#define PROCBASED2_APIC_REGISTER_VIRTUALIZATION (1u << 8) +#define PROCBASED2_VIRTUAL_INTERRUPT_DELIVERY (1u << 9) +#define PROCBASED2_PAUSE_LOOP_EXITING (1u << 10) +#define PROCBASED2_RDRAND_EXITING (1u << 11) +#define PROCBASED2_ENABLE_INVPCID (1u << 12) + +/* VM Exit Controls */ +#define VM_EXIT_SAVE_DEBUG_CONTROLS (1u << 2) +#define VM_EXIT_HOST_LMA (1u << 9) +#define VM_EXIT_LOAD_PERF_GLOBAL_CTRL (1u << 12) +#define VM_EXIT_ACKNOWLEDGE_INTERRUPT (1u << 15) +#define VM_EXIT_SAVE_PAT (1u << 18) +#define VM_EXIT_LOAD_PAT (1u << 19) +#define VM_EXIT_SAVE_EFER (1u << 20) +#define VM_EXIT_LOAD_EFER (1u << 21) +#define VM_EXIT_SAVE_PREEMPTION_TIMER (1u << 22) + +/* VM Entry Controls */ +#define VM_ENTRY_LOAD_DEBUG_CONTROLS (1u << 2) +#define VM_ENTRY_GUEST_LMA (1u << 9) +#define VM_ENTRY_INTO_SMM (1u << 10) +#define VM_ENTRY_DEACTIVATE_DUAL_MONITOR (1u << 11) +#define VM_ENTRY_LOAD_PERF_GLOBAL_CTRL (1u << 13) +#define VM_ENTRY_LOAD_PAT (1u << 14) +#define VM_ENTRY_LOAD_EFER (1u << 15) diff --git a/vmm/intel/ept.h b/include/xhyve/vmm/intel/vmx_msr.h similarity index 74% rename from vmm/intel/ept.h rename to include/xhyve/vmm/intel/vmx_msr.h index 1393e46..58d532d 100644 --- a/vmm/intel/ept.h +++ b/include/xhyve/vmm/intel/vmx_msr.h @@ -26,14 +26,20 @@ * $FreeBSD$ */ -#ifndef _EPT_H_ -#define _EPT_H_ +#pragma once + +#include +#include +#include +#include +#include struct vmx; -int ept_init(int ipinum); -void ept_invalidate_mappings(u_long eptp); -struct vmspace *ept_vmspace_alloc(vm_offset_t min, vm_offset_t max); -void ept_vmspace_free(struct vmspace *vmspace); -uint64_t eptp(uint64_t pml4); -#endif +void vmx_msr_init(void); +void vmx_msr_guest_init(struct vmx *vmx, int vcpuid); +int vmx_rdmsr(struct vmx *, int vcpuid, u_int num, uint64_t *val); +int vmx_wrmsr(struct vmx *, int vcpuid, u_int num, uint64_t val); + +int vmx_set_ctlreg(hv_vmx_capability_t cap_field, uint32_t ones_mask, + uint32_t zeros_mask, uint32_t *retval); diff --git a/vmm/io/vatpic.h b/include/xhyve/vmm/io/vatpic.h similarity index 88% rename from vmm/io/vatpic.h rename to include/xhyve/vmm/io/vatpic.h index d4a1be1..a17b9db 100644 --- a/vmm/io/vatpic.h +++ b/include/xhyve/vmm/io/vatpic.h @@ -26,15 +26,19 @@ * $FreeBSD$ */ -#ifndef _VATPIC_H_ -#define _VATPIC_H_ +#pragma once -#include +#include +#include +#include -#define ICU_IMR_OFFSET 1 +#define IO_ICU1 0x020 /* 8259A Interrupt Controller #1 */ +#define IO_ICU2 0x0a0 /* 8259A Interrupt Controller #2 */ -#define IO_ELCR1 0x4d0 -#define IO_ELCR2 0x4d1 +#define ICU_IMR_OFFSET 1 + +#define IO_ELCR1 0x4d0 +#define IO_ELCR2 0x4d1 struct vatpic *vatpic_init(struct vm *vm); void vatpic_cleanup(struct vatpic *vatpic); @@ -53,5 +57,3 @@ int vatpic_set_irq_trigger(struct vm *vm, int irq, enum vm_intr_trigger trigger) void vatpic_pending_intr(struct vm *vm, int *vecptr); void vatpic_intr_accepted(struct vm *vm, int vector); - -#endif /* _VATPIC_H_ */ diff --git a/vmm/io/vatpit.h b/include/xhyve/vmm/io/vatpit.h similarity index 91% rename from vmm/io/vatpit.h rename to include/xhyve/vmm/io/vatpit.h index 5719c9c..87c61a1 100644 --- a/vmm/io/vatpit.h +++ b/include/xhyve/vmm/io/vatpit.h @@ -27,19 +27,22 @@ * $FreeBSD$ */ -#ifndef _VATPIT_H_ -#define _VATPIT_H_ +#pragma once -#include +#include +#include + +//#include #define NMISC_PORT 0x61 +struct vm; +struct vatpit; + struct vatpit *vatpit_init(struct vm *vm); void vatpit_cleanup(struct vatpit *vatpit); int vatpit_handler(struct vm *vm, int vcpuid, bool in, int port, int bytes, - uint32_t *eax); + uint32_t *eax); int vatpit_nmisc_handler(struct vm *vm, int vcpuid, bool in, int port, - int bytes, uint32_t *eax); - -#endif /* _VATPIT_H_ */ + int bytes, uint32_t *eax); diff --git a/vmm/io/vhpet.h b/include/xhyve/vmm/io/vhpet.h similarity index 79% rename from vmm/io/vhpet.h rename to include/xhyve/vmm/io/vhpet.h index 330e017..ea09e6e 100644 --- a/vmm/io/vhpet.h +++ b/include/xhyve/vmm/io/vhpet.h @@ -27,18 +27,20 @@ * $FreeBSD$ */ -#ifndef _VHPET_H_ -#define _VHPET_H_ +#pragma once -#define VHPET_BASE 0xfed00000 -#define VHPET_SIZE 1024 +#include + +#define VHPET_BASE 0xfed00000 +#define VHPET_SIZE 0x400 + +struct vm; +struct vhpet; struct vhpet *vhpet_init(struct vm *vm); -void vhpet_cleanup(struct vhpet *vhpet); -int vhpet_mmio_write(void *vm, int vcpuid, uint64_t gpa, uint64_t val, - int size, void *arg); -int vhpet_mmio_read(void *vm, int vcpuid, uint64_t gpa, uint64_t *val, - int size, void *arg); -int vhpet_getcap(struct vm_hpet_cap *cap); - -#endif /* _VHPET_H_ */ +void vhpet_cleanup(struct vhpet *vhpet); +int vhpet_mmio_write(void *vm, int vcpuid, uint64_t gpa, uint64_t val, + int size, void *arg); +int vhpet_mmio_read(void *vm, int vcpuid, uint64_t gpa, uint64_t *val, + int size, void *arg); +int vhpet_getcap(uint32_t *cap); diff --git a/vmm/io/vioapic.h b/include/xhyve/vmm/io/vioapic.h similarity index 71% rename from vmm/io/vioapic.h rename to include/xhyve/vmm/io/vioapic.h index 65176b3..b5df1ba 100644 --- a/vmm/io/vioapic.h +++ b/include/xhyve/vmm/io/vioapic.h @@ -27,24 +27,27 @@ * $FreeBSD$ */ -#ifndef _VIOAPIC_H_ -#define _VIOAPIC_H_ +#pragma once -#define VIOAPIC_BASE 0xFEC00000 -#define VIOAPIC_SIZE 4096 +#include + +#define VIOAPIC_BASE 0xfec00000 +#define VIOAPIC_SIZE 0x1000 + +struct vm; +struct vioapic; struct vioapic *vioapic_init(struct vm *vm); -void vioapic_cleanup(struct vioapic *vioapic); +void vioapic_cleanup(struct vioapic *vioapic); -int vioapic_assert_irq(struct vm *vm, int irq); -int vioapic_deassert_irq(struct vm *vm, int irq); -int vioapic_pulse_irq(struct vm *vm, int irq); +int vioapic_assert_irq(struct vm *vm, int irq); +int vioapic_deassert_irq(struct vm *vm, int irq); +int vioapic_pulse_irq(struct vm *vm, int irq); -int vioapic_mmio_write(void *vm, int vcpuid, uint64_t gpa, - uint64_t wval, int size, void *arg); -int vioapic_mmio_read(void *vm, int vcpuid, uint64_t gpa, - uint64_t *rval, int size, void *arg); +int vioapic_mmio_write(void *vm, int vcpuid, uint64_t gpa, + uint64_t wval, int size, void *arg); +int vioapic_mmio_read(void *vm, int vcpuid, uint64_t gpa, + uint64_t *rval, int size, void *arg); -int vioapic_pincount(struct vm *vm); -void vioapic_process_eoi(struct vm *vm, int vcpuid, int vector); -#endif +int vioapic_pincount(struct vm *vm); +void vioapic_process_eoi(struct vm *vm, int vcpuid, int vector); diff --git a/vmm/io/vlapic.h b/include/xhyve/vmm/io/vlapic.h similarity index 98% rename from vmm/io/vlapic.h rename to include/xhyve/vmm/io/vlapic.h index 0e68b2f..e7520c6 100644 --- a/vmm/io/vlapic.h +++ b/include/xhyve/vmm/io/vlapic.h @@ -26,11 +26,13 @@ * $FreeBSD$ */ -#ifndef _VLAPIC_H_ -#define _VLAPIC_H_ +#pragma once + +#include +#include +#include struct vm; -enum x2apic_state; int vlapic_write(struct vlapic *vlapic, int mmio_access, uint64_t offset, uint64_t data, bool *retu); @@ -106,4 +108,3 @@ void vlapic_icrtmr_write_handler(struct vlapic *vlapic); void vlapic_dcr_write_handler(struct vlapic *vlapic); void vlapic_lvt_write_handler(struct vlapic *vlapic, uint32_t offset); void vlapic_self_ipi_handler(struct vlapic *vlapic, uint64_t val); -#endif /* _VLAPIC_H_ */ diff --git a/vmm/io/vlapic_priv.h b/include/xhyve/vmm/io/vlapic_priv.h similarity index 73% rename from vmm/io/vlapic_priv.h rename to include/xhyve/vmm/io/vlapic_priv.h index 08592c8..62d2811 100644 --- a/vmm/io/vlapic_priv.h +++ b/include/xhyve/vmm/io/vlapic_priv.h @@ -26,10 +26,13 @@ * $FreeBSD$ */ -#ifndef _VLAPIC_PRIV_H_ -#define _VLAPIC_PRIV_H_ +#pragma once -#include +#include +#include +#include +#include +#include /* * APIC Register: Offset Description @@ -95,32 +98,32 @@ #define VLAPIC_CTR3(vlapic, format, p1, p2, p3) \ VCPU_CTR3((vlapic)->vm, (vlapic)->vcpuid, format, p1, p2, p3) -#define VLAPIC_CTR_IRR(vlapic, msg) \ -do { \ - uint32_t *irrptr = &(vlapic)->apic_page->irr0; \ - irrptr[0] = irrptr[0]; /* silence compiler */ \ - VLAPIC_CTR1((vlapic), msg " irr0 0x%08x", irrptr[0 << 2]); \ - VLAPIC_CTR1((vlapic), msg " irr1 0x%08x", irrptr[1 << 2]); \ - VLAPIC_CTR1((vlapic), msg " irr2 0x%08x", irrptr[2 << 2]); \ - VLAPIC_CTR1((vlapic), msg " irr3 0x%08x", irrptr[3 << 2]); \ - VLAPIC_CTR1((vlapic), msg " irr4 0x%08x", irrptr[4 << 2]); \ - VLAPIC_CTR1((vlapic), msg " irr5 0x%08x", irrptr[5 << 2]); \ - VLAPIC_CTR1((vlapic), msg " irr6 0x%08x", irrptr[6 << 2]); \ - VLAPIC_CTR1((vlapic), msg " irr7 0x%08x", irrptr[7 << 2]); \ +#define VLAPIC_CTR_IRR(vlapic, msg) \ +do { \ + uint32_t *x = &(vlapic)->apic_page->irr0; \ + x[0] = x[0]; /* silence compiler */ \ + VLAPIC_CTR1((vlapic), msg " irr0 0x%08x", x[0 << 2]); \ + VLAPIC_CTR1((vlapic), msg " irr1 0x%08x", x[1 << 2]); \ + VLAPIC_CTR1((vlapic), msg " irr2 0x%08x", x[2 << 2]); \ + VLAPIC_CTR1((vlapic), msg " irr3 0x%08x", x[3 << 2]); \ + VLAPIC_CTR1((vlapic), msg " irr4 0x%08x", x[4 << 2]); \ + VLAPIC_CTR1((vlapic), msg " irr5 0x%08x", x[5 << 2]); \ + VLAPIC_CTR1((vlapic), msg " irr6 0x%08x", x[6 << 2]); \ + VLAPIC_CTR1((vlapic), msg " irr7 0x%08x", x[7 << 2]); \ } while (0) -#define VLAPIC_CTR_ISR(vlapic, msg) \ -do { \ - uint32_t *isrptr = &(vlapic)->apic_page->isr0; \ - isrptr[0] = isrptr[0]; /* silence compiler */ \ - VLAPIC_CTR1((vlapic), msg " isr0 0x%08x", isrptr[0 << 2]); \ - VLAPIC_CTR1((vlapic), msg " isr1 0x%08x", isrptr[1 << 2]); \ - VLAPIC_CTR1((vlapic), msg " isr2 0x%08x", isrptr[2 << 2]); \ - VLAPIC_CTR1((vlapic), msg " isr3 0x%08x", isrptr[3 << 2]); \ - VLAPIC_CTR1((vlapic), msg " isr4 0x%08x", isrptr[4 << 2]); \ - VLAPIC_CTR1((vlapic), msg " isr5 0x%08x", isrptr[5 << 2]); \ - VLAPIC_CTR1((vlapic), msg " isr6 0x%08x", isrptr[6 << 2]); \ - VLAPIC_CTR1((vlapic), msg " isr7 0x%08x", isrptr[7 << 2]); \ +#define VLAPIC_CTR_ISR(vlapic, msg) \ +do { \ + uint32_t *x = &(vlapic)->apic_page->isr0; \ + x[0] = x[0]; /* silence compiler */ \ + VLAPIC_CTR1((vlapic), msg " isr0 0x%08x", x[0 << 2]); \ + VLAPIC_CTR1((vlapic), msg " isr1 0x%08x", x[1 << 2]); \ + VLAPIC_CTR1((vlapic), msg " isr2 0x%08x", x[2 << 2]); \ + VLAPIC_CTR1((vlapic), msg " isr3 0x%08x", x[3 << 2]); \ + VLAPIC_CTR1((vlapic), msg " isr4 0x%08x", x[4 << 2]); \ + VLAPIC_CTR1((vlapic), msg " isr5 0x%08x", x[5 << 2]); \ + VLAPIC_CTR1((vlapic), msg " isr6 0x%08x", x[6 << 2]); \ + VLAPIC_CTR1((vlapic), msg " isr7 0x%08x", x[7 << 2]); \ } while (0) enum boot_state { @@ -147,44 +150,40 @@ struct vlapic_ops { void (*enable_x2apic_mode)(struct vlapic *vlapic); }; +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" struct vlapic { - struct vm *vm; - int vcpuid; - struct LAPIC *apic_page; - struct vlapic_ops ops; - - uint32_t esr_pending; - int esr_firing; - - struct callout callout; /* vlapic timer */ - struct bintime timer_fire_bt; /* callout expiry time */ - struct bintime timer_freq_bt; /* timer frequency */ - struct bintime timer_period_bt; /* timer period */ - struct mtx timer_mtx; - + struct vm *vm; + int vcpuid; + struct LAPIC *apic_page; + struct vlapic_ops ops; + uint32_t esr_pending; + int esr_firing; + struct callout callout; /* vlapic timer */ + struct bintime timer_fire_bt; /* callout expiry time */ + struct bintime timer_freq_bt; /* timer frequency */ + struct bintime timer_period_bt; /* timer period */ + OSSpinLock timer_lock; /* * The 'isrvec_stk' is a stack of vectors injected by the local apic. * A vector is popped from the stack when the processor does an EOI. * The vector on the top of the stack is used to compute the * Processor Priority in conjunction with the TPR. */ - uint8_t isrvec_stk[ISRVEC_STK_SIZE]; - int isrvec_stk_top; - - uint64_t msr_apicbase; + uint8_t isrvec_stk[ISRVEC_STK_SIZE]; + int isrvec_stk_top; + uint64_t msr_apicbase; enum boot_state boot_state; - /* * Copies of some registers in the virtual APIC page. We do this for * a couple of different reasons: * - to be able to detect what changed (e.g. svr_last) * - to maintain a coherent snapshot of the register (e.g. lvt_last) */ - uint32_t svr_last; - uint32_t lvt_last[VLAPIC_MAXLVT_INDEX + 1]; + uint32_t svr_last; + uint32_t lvt_last[VLAPIC_MAXLVT_INDEX + 1]; }; +#pragma clang diagnostic pop void vlapic_init(struct vlapic *vlapic); void vlapic_cleanup(struct vlapic *vlapic); - -#endif /* _VLAPIC_PRIV_H_ */ diff --git a/vmm/io/vpmtmr.h b/include/xhyve/vmm/io/vpmtmr.h similarity index 96% rename from vmm/io/vpmtmr.h rename to include/xhyve/vmm/io/vpmtmr.h index 039a281..06caf53 100644 --- a/vmm/io/vpmtmr.h +++ b/include/xhyve/vmm/io/vpmtmr.h @@ -26,17 +26,17 @@ * $FreeBSD$ */ -#ifndef _VPMTMR_H_ -#define _VPMTMR_H_ +#pragma once + +#include #define IO_PMTMR 0x408 +struct vm; struct vpmtmr; struct vpmtmr *vpmtmr_init(struct vm *vm); void vpmtmr_cleanup(struct vpmtmr *pmtmr); int vpmtmr_handler(struct vm *vm, int vcpuid, bool in, int port, int bytes, - uint32_t *val); - -#endif + uint32_t *val); diff --git a/vmm/io/vrtc.h b/include/xhyve/vmm/io/vrtc.h similarity index 92% rename from vmm/io/vrtc.h rename to include/xhyve/vmm/io/vrtc.h index 6fbbc9c..334a628 100644 --- a/vmm/io/vrtc.h +++ b/include/xhyve/vmm/io/vrtc.h @@ -26,11 +26,15 @@ * $FreeBSD$ */ -#ifndef _VRTC_H_ -#define _VRTC_H_ +#pragma once -#include +#include +#include +#include +#define IO_RTC 0x070 /* 4990A RTC */ + +struct vm; struct vrtc; struct vrtc *vrtc_init(struct vm *vm); @@ -43,8 +47,6 @@ int vrtc_nvram_write(struct vm *vm, int offset, uint8_t value); int vrtc_nvram_read(struct vm *vm, int offset, uint8_t *retval); int vrtc_addr_handler(struct vm *vm, int vcpuid, bool in, int port, int bytes, - uint32_t *val); + uint32_t *val); int vrtc_data_handler(struct vm *vm, int vcpuid, bool in, int port, int bytes, - uint32_t *val); - -#endif + uint32_t *val); diff --git a/include/xhyve/vmm/vmm.h b/include/xhyve/vmm/vmm.h new file mode 100644 index 0000000..7b72e8a --- /dev/null +++ b/include/xhyve/vmm/vmm.h @@ -0,0 +1,314 @@ +/*- + * Copyright (c) 2011 NetApp, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY NETAPP, INC ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL NETAPP, INC OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#pragma once + +#include +#include +#include +#include +#include +#include + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" + +#define VM_INTINFO_VECTOR(info) ((info) & 0xff) +#define VM_INTINFO_DEL_ERRCODE 0x800 +#define VM_INTINFO_RSVD 0x7ffff000 +#define VM_INTINFO_VALID 0x80000000 +#define VM_INTINFO_TYPE 0x700 +#define VM_INTINFO_HWINTR (0 << 8) +#define VM_INTINFO_NMI (2 << 8) +#define VM_INTINFO_HWEXCEPTION (3 << 8) +#define VM_INTINFO_SWINTR (4 << 8) + +struct vm; +struct vm_exception; +struct vm_memory_segment; +struct seg_desc; +struct vm_exit; +struct vm_run; +struct vhpet; +struct vioapic; +struct vlapic; +struct vmspace; +struct vm_object; +struct vm_guest_paging; +struct pmap; + +typedef int (*vmm_init_func_t)(void); +typedef int (*vmm_cleanup_func_t)(void); +typedef void *(*vmi_vm_init_func_t)(struct vm *vm); +typedef int (*vmi_vcpu_init_func_t)(void *vmi, int vcpu); +typedef int (*vmi_run_func_t)(void *vmi, int vcpu, register_t rip, + void *rendezvous_cookie, void *suspend_cookie); +typedef void (*vmi_vm_cleanup_func_t)(void *vmi); +typedef void (*vmi_vcpu_cleanup_func_t)(void *vmi, int vcpu); +typedef int (*vmi_get_register_t)(void *vmi, int vcpu, int num, + uint64_t *retval); +typedef int (*vmi_set_register_t)(void *vmi, int vcpu, int num, + uint64_t val); +typedef int (*vmi_get_desc_t)(void *vmi, int vcpu, int num, + struct seg_desc *desc); +typedef int (*vmi_set_desc_t)(void *vmi, int vcpu, int num, + struct seg_desc *desc); +typedef int (*vmi_get_cap_t)(void *vmi, int vcpu, int num, int *retval); +typedef int (*vmi_set_cap_t)(void *vmi, int vcpu, int num, int val); +typedef struct vlapic * (*vmi_vlapic_init)(void *vmi, int vcpu); +typedef void (*vmi_vlapic_cleanup)(void *vmi, struct vlapic *vlapic); +typedef void (*vmi_interrupt)(int vcpu); + +struct vmm_ops { + vmm_init_func_t init; /* module wide initialization */ + vmm_cleanup_func_t cleanup; + vmi_vm_init_func_t vm_init; /* vm-specific initialization */ + vmi_vcpu_init_func_t vcpu_init; + vmi_run_func_t vmrun; + vmi_vm_cleanup_func_t vm_cleanup; + vmi_vcpu_cleanup_func_t vcpu_cleanup; + vmi_get_register_t vmgetreg; + vmi_set_register_t vmsetreg; + vmi_get_desc_t vmgetdesc; + vmi_set_desc_t vmsetdesc; + vmi_get_cap_t vmgetcap; + vmi_set_cap_t vmsetcap; + vmi_vlapic_init vlapic_init; + vmi_vlapic_cleanup vlapic_cleanup; + vmi_interrupt vcpu_interrupt; +}; + +extern struct vmm_ops vmm_ops_intel; + +int vmm_init(void); +int vmm_cleanup(void); +int vm_create(struct vm **retvm); +int vcpu_create(struct vm *vm, int vcpu); +void vm_destroy(struct vm *vm); +void vcpu_destroy(struct vm *vm, int vcpu); +int vm_reinit(struct vm *vm); +const char *vm_name(struct vm *vm); +int vm_malloc(struct vm *vm, uint64_t gpa, size_t len); +void *vm_gpa2hva(struct vm *vm, uint64_t gpa, uint64_t len); +int vm_gpabase2memseg(struct vm *vm, uint64_t gpabase, + struct vm_memory_segment *seg); +int vm_get_memobj(struct vm *vm, uint64_t gpa, size_t len, uint64_t *offset, + void **object); +bool vm_mem_allocated(struct vm *vm, uint64_t gpa); +int vm_get_register(struct vm *vm, int vcpu, int reg, uint64_t *retval); +int vm_set_register(struct vm *vm, int vcpu, int reg, uint64_t val); +int vm_get_seg_desc(struct vm *vm, int vcpu, int reg, + struct seg_desc *ret_desc); +int vm_set_seg_desc(struct vm *vm, int vcpu, int reg, struct seg_desc *desc); +int vm_run(struct vm *vm, int vcpu, struct vm_exit *vm_exit); +int vm_suspend(struct vm *vm, enum vm_suspend_how how); +int vm_inject_nmi(struct vm *vm, int vcpu); +int vm_nmi_pending(struct vm *vm, int vcpuid); +void vm_nmi_clear(struct vm *vm, int vcpuid); +int vm_inject_extint(struct vm *vm, int vcpu); +int vm_extint_pending(struct vm *vm, int vcpuid); +void vm_extint_clear(struct vm *vm, int vcpuid); +struct vlapic *vm_lapic(struct vm *vm, int cpu); +struct vioapic *vm_ioapic(struct vm *vm); +struct vhpet *vm_hpet(struct vm *vm); +int vm_get_capability(struct vm *vm, int vcpu, int type, int *val); +int vm_set_capability(struct vm *vm, int vcpu, int type, int val); +int vm_get_x2apic_state(struct vm *vm, int vcpu, enum x2apic_state *state); +int vm_set_x2apic_state(struct vm *vm, int vcpu, enum x2apic_state state); +int vm_apicid2vcpuid(struct vm *vm, int apicid); +int vm_activate_cpu(struct vm *vm, int vcpu); +struct vm_exit *vm_exitinfo(struct vm *vm, int vcpuid); +void vm_exit_suspended(struct vm *vm, int vcpuid, uint64_t rip); +void vm_exit_rendezvous(struct vm *vm, int vcpuid, uint64_t rip); + +/* + * Rendezvous all vcpus specified in 'dest' and execute 'func(arg)'. + * The rendezvous 'func(arg)' is not allowed to do anything that will + * cause the thread to be put to sleep. + * + * If the rendezvous is being initiated from a vcpu context then the + * 'vcpuid' must refer to that vcpu, otherwise it should be set to -1. + * + * The caller cannot hold any locks when initiating the rendezvous. + * + * The implementation of this API may cause vcpus other than those specified + * by 'dest' to be stalled. The caller should not rely on any vcpus making + * forward progress when the rendezvous is in progress. + */ +typedef void (*vm_rendezvous_func_t)(struct vm *vm, int vcpuid, void *arg); +void vm_smp_rendezvous(struct vm *vm, int vcpuid, cpuset_t dest, + vm_rendezvous_func_t func, void *arg); +cpuset_t vm_active_cpus(struct vm *vm); +cpuset_t vm_suspended_cpus(struct vm *vm); + +static __inline int +vcpu_rendezvous_pending(void *rendezvous_cookie) +{ + + return (*(uintptr_t *)rendezvous_cookie != 0); +} + +static __inline int +vcpu_suspended(void *suspend_cookie) +{ + + return (*(int *)suspend_cookie); +} + +enum vcpu_state { + VCPU_IDLE, + VCPU_FROZEN, + VCPU_RUNNING, + VCPU_SLEEPING, +}; + +int vcpu_set_state(struct vm *vm, int vcpu, enum vcpu_state state, + bool from_idle); +enum vcpu_state vcpu_get_state(struct vm *vm, int vcpu); + +static int __inline +vcpu_is_running(struct vm *vm, int vcpu) +{ + return (vcpu_get_state(vm, vcpu) == VCPU_RUNNING); +} + +void *vcpu_stats(struct vm *vm, int vcpu); +void vcpu_notify_event(struct vm *vm, int vcpuid, bool lapic_intr); +struct vatpic *vm_atpic(struct vm *vm); +struct vatpit *vm_atpit(struct vm *vm); +struct vpmtmr *vm_pmtmr(struct vm *vm); +struct vrtc *vm_rtc(struct vm *vm); + +/* + * Inject exception 'vector' into the guest vcpu. This function returns 0 on + * success and non-zero on failure. + * + * Wrapper functions like 'vm_inject_gp()' should be preferred to calling + * this function directly because they enforce the trap-like or fault-like + * behavior of an exception. + * + * This function should only be called in the context of the thread that is + * executing this vcpu. + */ +int vm_inject_exception(struct vm *vm, int vcpuid, int vector, int err_valid, + uint32_t errcode, int restart_instruction); + +/* + * This function is called after a VM-exit that occurred during exception or + * interrupt delivery through the IDT. The format of 'intinfo' is described + * in Figure 15-1, "EXITINTINFO for All Intercepts", APM, Vol 2. + * + * If a VM-exit handler completes the event delivery successfully then it + * should call vm_exit_intinfo() to extinguish the pending event. For e.g., + * if the task switch emulation is triggered via a task gate then it should + * call this function with 'intinfo=0' to indicate that the external event + * is not pending anymore. + * + * Return value is 0 on success and non-zero on failure. + */ +int vm_exit_intinfo(struct vm *vm, int vcpuid, uint64_t intinfo); + +/* + * This function is called before every VM-entry to retrieve a pending + * event that should be injected into the guest. This function combines + * nested events into a double or triple fault. + * + * Returns 0 if there are no events that need to be injected into the guest + * and non-zero otherwise. + */ +int vm_entry_intinfo(struct vm *vm, int vcpuid, uint64_t *info); + +int vm_get_intinfo(struct vm *vm, int vcpuid, uint64_t *info1, uint64_t *info2); + +enum vm_reg_name vm_segment_name(int seg_encoding); + +struct vm_copyinfo { + uint64_t gpa; + size_t len; + void *hva; +}; + +/* + * Set up 'copyinfo[]' to copy to/from guest linear address space starting + * at 'gla' and 'len' bytes long. The 'prot' should be set to PROT_READ for + * a copyin or PROT_WRITE for a copyout. + * + * retval is_fault Intepretation + * 0 0 Success + * 0 1 An exception was injected into the guest + * EFAULT N/A Unrecoverable error + * + * The 'copyinfo[]' can be passed to 'vm_copyin()' or 'vm_copyout()' only if + * the return value is 0. The 'copyinfo[]' resources should be freed by calling + * 'vm_copy_teardown()' after the copy is done. + */ +int vm_copy_setup(struct vm *vm, int vcpuid, struct vm_guest_paging *paging, + uint64_t gla, size_t len, int prot, struct vm_copyinfo *copyinfo, + int num_copyinfo, int *is_fault); +void vm_copy_teardown(struct vm *vm, int vcpuid, struct vm_copyinfo *copyinfo, + int num_copyinfo); +void vm_copyin(struct vm *vm, int vcpuid, struct vm_copyinfo *copyinfo, + void *kaddr, size_t len); +void vm_copyout(struct vm *vm, int vcpuid, const void *kaddr, + struct vm_copyinfo *copyinfo, size_t len); + +int vcpu_trace_exceptions(void); + +/* APIs to inject faults into the guest */ +void vm_inject_fault(void *vm, int vcpuid, int vector, int errcode_valid, + int errcode); + +static __inline void +vm_inject_ud(void *vm, int vcpuid) +{ + vm_inject_fault(vm, vcpuid, IDT_UD, 0, 0); +} + +static __inline void +vm_inject_gp(void *vm, int vcpuid) +{ + vm_inject_fault(vm, vcpuid, IDT_GP, 1, 0); +} + +static __inline void +vm_inject_ac(void *vm, int vcpuid, int errcode) +{ + vm_inject_fault(vm, vcpuid, IDT_AC, 1, errcode); +} + +static __inline void +vm_inject_ss(void *vm, int vcpuid, int errcode) +{ + vm_inject_fault(vm, vcpuid, IDT_SS, 1, errcode); +} + +void vm_inject_pf(void *vm, int vcpuid, int error_code, uint64_t cr2); + +int vm_restart_instruction(void *vm, int vcpuid); + +#pragma clang diagnostic pop diff --git a/include/xhyve/vmm/vmm_api.h b/include/xhyve/vmm/vmm_api.h new file mode 100644 index 0000000..1cfd7f0 --- /dev/null +++ b/include/xhyve/vmm/vmm_api.h @@ -0,0 +1,113 @@ +/*- + * Copyright (c) 2011 NetApp, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY NETAPP, INC ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL NETAPP, INC OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#pragma once + +#include +#include +#include +#include + +struct iovec; + +/* + * Different styles of mapping the memory assigned to a VM into the address + * space of the controlling process. + */ +enum vm_mmap_style { + VM_MMAP_NONE, /* no mapping */ + VM_MMAP_ALL, /* fully and statically mapped */ + VM_MMAP_SPARSE, /* mappings created on-demand */ +}; + +int xh_vm_create(void); +void xh_vm_destroy(void); +int xh_vcpu_create(int vcpu); +void xh_vcpu_destroy(int vcpu); +int xh_vm_get_memory_seg(uint64_t gpa, size_t *ret_len); +int xh_vm_setup_memory(size_t len, enum vm_mmap_style vms); +void *xh_vm_map_gpa(uint64_t gpa, size_t len); +int xh_vm_gla2gpa(int vcpu, struct vm_guest_paging *paging, uint64_t gla, + int prot, uint64_t *gpa, int *fault); +uint32_t xh_vm_get_lowmem_limit(void); +void xh_vm_set_lowmem_limit(uint32_t limit); +void xh_vm_set_memflags(int flags); +size_t xh_vm_get_lowmem_size(void); +size_t xh_vm_get_highmem_size(void); +int xh_vm_set_desc(int vcpu, int reg, uint64_t base, uint32_t limit, + uint32_t access); +int xh_vm_get_desc(int vcpu, int reg, uint64_t *base, uint32_t *limit, + uint32_t *access); +int xh_vm_get_seg_desc(int vcpu, int reg, struct seg_desc *seg_desc); +int xh_vm_set_register(int vcpu, int reg, uint64_t val); +int xh_vm_get_register(int vcpu, int reg, uint64_t *retval); +int xh_vm_run(int vcpu, struct vm_exit *ret_vmexit); +int xh_vm_suspend(enum vm_suspend_how how); +int xh_vm_reinit(void); +int xh_vm_apicid2vcpu(int apicid); +int xh_vm_inject_exception(int vcpu, int vector, int errcode_valid, + uint32_t errcode, int restart_instruction); +int xh_vm_lapic_irq(int vcpu, int vector); +int xh_vm_lapic_local_irq(int vcpu, int vector); +int xh_vm_lapic_msi(uint64_t addr, uint64_t msg); +int xh_vm_ioapic_assert_irq(int irq); +int xh_vm_ioapic_deassert_irq(int irq); +int xh_vm_ioapic_pulse_irq(int irq); +int xh_vm_ioapic_pincount(int *pincount); +int xh_vm_isa_assert_irq(int atpic_irq, int ioapic_irq); +int xh_vm_isa_deassert_irq(int atpic_irq, int ioapic_irq); +int xh_vm_isa_pulse_irq(int atpic_irq, int ioapic_irq); +int xh_vm_isa_set_irq_trigger(int atpic_irq, enum vm_intr_trigger trigger); +int xh_vm_inject_nmi(int vcpu); +int xh_vm_capability_name2type(const char *capname); +const char *xh_vm_capability_type2name(int type); +int xh_vm_get_capability(int vcpu, enum vm_cap_type cap, int *retval); +int xh_vm_set_capability(int vcpu, enum vm_cap_type cap, int val); +int xh_vm_get_intinfo(int vcpu, uint64_t *i1, uint64_t *i2); +int xh_vm_set_intinfo(int vcpu, uint64_t exit_intinfo); +uint64_t *xh_vm_get_stats(int vcpu, struct timeval *ret_tv, int *ret_entries); +const char *xh_vm_get_stat_desc(int index); +int xh_vm_get_x2apic_state(int vcpu, enum x2apic_state *s); +int xh_vm_set_x2apic_state(int vcpu, enum x2apic_state s); +int xh_vm_get_hpet_capabilities(uint32_t *capabilities); +int xh_vm_copy_setup(int vcpu, struct vm_guest_paging *pg, uint64_t gla, + size_t len, int prot, struct iovec *iov, int iovcnt, int *fault); +void xh_vm_copyin(struct iovec *iov, void *dst, size_t len); +void xh_vm_copyout(const void *src, struct iovec *iov, size_t len); +int xh_vm_rtc_write(int offset, uint8_t value); +int xh_vm_rtc_read(int offset, uint8_t *retval); +int xh_vm_rtc_settime(time_t secs); +int xh_vm_rtc_gettime(time_t *secs); +int xh_vcpu_reset(int vcpu); +int xh_vm_active_cpus(cpuset_t *cpus); +int xh_vm_suspended_cpus(cpuset_t *cpus); +int xh_vm_activate_cpu(int vcpu); +int xh_vm_restart_instruction(int vcpu); +int xh_vm_emulate_instruction(int vcpu, uint64_t gpa, struct vie *vie, + struct vm_guest_paging *paging, mem_region_read_t memread, + mem_region_write_t memwrite, void *memarg); diff --git a/include/xhyve/vmm/vmm_callout.h b/include/xhyve/vmm/vmm_callout.h new file mode 100644 index 0000000..4068bbd --- /dev/null +++ b/include/xhyve/vmm/vmm_callout.h @@ -0,0 +1,117 @@ +#pragma once + +#include +#include +#include +#include + +#define SBT_1S ((sbintime_t)1 << 32) +#define SBT_1M (SBT_1S * 60) +#define SBT_1MS (SBT_1S / 1000) +#define SBT_1US (SBT_1S / 1000000) +#define SBT_1NS (SBT_1S / 1000000000) +#define SBT_MAX 0x7fffffffffffffffLL + +#define FREQ2BT(freq, bt) \ +{ \ + (bt)->sec = 0; \ + (bt)->frac = ((uint64_t)0x8000000000000000 / (freq)) << 1; \ +} + +#define BT2FREQ(bt) \ + (((uint64_t)0x8000000000000000 + ((bt)->frac >> 2)) / \ + ((bt)->frac >> 1)) + +struct bintime { + uint64_t sec; + uint64_t frac; +}; + +typedef int64_t sbintime_t; + +static inline sbintime_t bttosbt(const struct bintime bt) { + return (sbintime_t) ((bt.sec << 32) + (bt.frac >> 32)); +} + +static inline void bintime_mul(struct bintime *bt, unsigned int x) { + uint64_t p1, p2; + + p1 = (bt->frac & 0xffffffffull) * x; + p2 = (bt->frac >> 32) * x + (p1 >> 32); + bt->sec *= x; + bt->sec += (p2 >> 32); + bt->frac = (p2 << 32) | (p1 & 0xffffffffull); +} + +static inline void bintime_add(struct bintime *_bt, const struct bintime *_bt2) +{ + uint64_t _u; + + _u = _bt->frac; + _bt->frac += _bt2->frac; + if (_u > _bt->frac) + _bt->sec++; + _bt->sec += _bt2->sec; +} + +static inline void bintime_sub(struct bintime *_bt, const struct bintime *_bt2) +{ + uint64_t _u; + + _u = _bt->frac; + _bt->frac -= _bt2->frac; + if (_u < _bt->frac) + _bt->sec--; + _bt->sec -= _bt2->sec; +} + +#define bintime_cmp(a, b, cmp) \ + (((a)->sec == (b)->sec) ? \ + ((a)->frac cmp (b)->frac) : \ + ((a)->sec cmp (b)->sec)) + + +void binuptime(struct bintime *bt); +void getmicrotime(struct timeval *tv); + +static inline sbintime_t sbinuptime(void) { + struct bintime _bt; + + binuptime(&_bt); + return (bttosbt(_bt)); +} + +struct callout { + pthread_cond_t wait; + struct callout *prev; + struct callout *next; + uint64_t timeout; + void *argument; + void (*callout)(void *); + int flags; + int queued; +}; + +#define C_ABSOLUTE 0x0200 /* event time is absolute */ +#define CALLOUT_ACTIVE 0x0002 /* callout is currently active */ +#define CALLOUT_PENDING 0x0004 /* callout is waiting for timeout */ +#define CALLOUT_MPSAFE 0x0008 /* callout handler is mp safe */ +#define CALLOUT_RETURNUNLOCKED 0x0010 /* handler returns with mtx unlocked */ +#define CALLOUT_COMPLETED 0x0020 /* callout thread finished */ +#define CALLOUT_WAITING 0x0040 /* thread waiting for callout to finish */ +//#define CALLOUT_QUEUED 0x0080 + +void callout_system_init(void); +void callout_init(struct callout *c, int mpsafe); +int callout_reset_sbt(struct callout *c, sbintime_t sbt, + sbintime_t precision, void (*ftn)(void *), void *arg, + int flags); + +int callout_stop_safe(struct callout *c, int drain); + +#define callout_active(c) ((c)->flags & CALLOUT_ACTIVE) +#define callout_deactivate(c) ((c)->flags &= ~CALLOUT_ACTIVE) +#define callout_pending(c) ((c)->flags & CALLOUT_PENDING) +#define callout_completed(c) ((c)->flags & CALLOUT_COMPLETED) +#define callout_drain(c) callout_stop_safe(c, 1) +#define callout_stop(c) callout_stop_safe(c, 0) diff --git a/include/xhyve/vmm/vmm_common.h b/include/xhyve/vmm/vmm_common.h new file mode 100644 index 0000000..f5c5326 --- /dev/null +++ b/include/xhyve/vmm/vmm_common.h @@ -0,0 +1,322 @@ +/*- + * Copyright (c) 2011 NetApp, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY NETAPP, INC ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL NETAPP, INC OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#pragma once + +#include + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" + +#define VM_MAXCPU 16 /* maximum virtual cpus */ + +enum vm_suspend_how { + VM_SUSPEND_NONE, + VM_SUSPEND_RESET, + VM_SUSPEND_POWEROFF, + VM_SUSPEND_HALT, + VM_SUSPEND_TRIPLEFAULT, + VM_SUSPEND_LAST +}; + +enum vm_cap_type { + VM_CAP_HALT_EXIT, + VM_CAP_MTRAP_EXIT, + VM_CAP_PAUSE_EXIT, + VM_CAP_MAX +}; + +enum vm_intr_trigger { + EDGE_TRIGGER, + LEVEL_TRIGGER +}; + +enum x2apic_state { + X2APIC_DISABLED, + X2APIC_ENABLED, + X2APIC_STATE_LAST +}; + +enum vm_cpu_mode { + CPU_MODE_REAL, + CPU_MODE_PROTECTED, + CPU_MODE_COMPATIBILITY, /* IA-32E mode (CS.L = 0) */ + CPU_MODE_64BIT, /* IA-32E mode (CS.L = 1) */ +}; + +enum vm_paging_mode { + PAGING_MODE_FLAT, + PAGING_MODE_32, + PAGING_MODE_PAE, + PAGING_MODE_64, +}; + +struct seg_desc { + uint64_t base; + uint32_t limit; + uint32_t access; +}; + +#define SEG_DESC_TYPE(access) ((access) & 0x001f) +#define SEG_DESC_DPL(access) (((access) >> 5) & 0x3) +#define SEG_DESC_PRESENT(access) (((access) & 0x0080) ? 1 : 0) +#define SEG_DESC_DEF32(access) (((access) & 0x4000) ? 1 : 0) +#define SEG_DESC_GRANULARITY(access) (((access) & 0x8000) ? 1 : 0) +#define SEG_DESC_UNUSABLE(access) (((access) & 0x10000) ? 1 : 0) + +struct vm_guest_paging { + uint64_t cr3; + int cpl; + enum vm_cpu_mode cpu_mode; + enum vm_paging_mode paging_mode; +}; + +enum vm_reg_name { + VM_REG_GUEST_RAX, + VM_REG_GUEST_RBX, + VM_REG_GUEST_RCX, + VM_REG_GUEST_RDX, + VM_REG_GUEST_RSI, + VM_REG_GUEST_RDI, + VM_REG_GUEST_RBP, + VM_REG_GUEST_R8, + VM_REG_GUEST_R9, + VM_REG_GUEST_R10, + VM_REG_GUEST_R11, + VM_REG_GUEST_R12, + VM_REG_GUEST_R13, + VM_REG_GUEST_R14, + VM_REG_GUEST_R15, + VM_REG_GUEST_CR0, + VM_REG_GUEST_CR3, + VM_REG_GUEST_CR4, + VM_REG_GUEST_DR7, + VM_REG_GUEST_RSP, + VM_REG_GUEST_RIP, + VM_REG_GUEST_RFLAGS, + VM_REG_GUEST_ES, + VM_REG_GUEST_CS, + VM_REG_GUEST_SS, + VM_REG_GUEST_DS, + VM_REG_GUEST_FS, + VM_REG_GUEST_GS, + VM_REG_GUEST_LDTR, + VM_REG_GUEST_TR, + VM_REG_GUEST_IDTR, + VM_REG_GUEST_GDTR, + VM_REG_GUEST_EFER, + VM_REG_GUEST_CR2, + VM_REG_GUEST_PDPTE0, + VM_REG_GUEST_PDPTE1, + VM_REG_GUEST_PDPTE2, + VM_REG_GUEST_PDPTE3, + VM_REG_GUEST_INTR_SHADOW, + VM_REG_LAST +}; + +enum vm_exitcode { + VM_EXITCODE_INOUT, + VM_EXITCODE_VMX, + VM_EXITCODE_BOGUS, + VM_EXITCODE_RDMSR, + VM_EXITCODE_WRMSR, + VM_EXITCODE_HLT, + VM_EXITCODE_MTRAP, + VM_EXITCODE_PAUSE, + VM_EXITCODE_PAGING, + VM_EXITCODE_INST_EMUL, + VM_EXITCODE_SPINUP_AP, + VM_EXITCODE_DEPRECATED1, /* used to be SPINDOWN_CPU */ + VM_EXITCODE_RENDEZVOUS, + VM_EXITCODE_IOAPIC_EOI, + VM_EXITCODE_SUSPENDED, + VM_EXITCODE_INOUT_STR, + VM_EXITCODE_TASK_SWITCH, + VM_EXITCODE_MONITOR, + VM_EXITCODE_MWAIT, + VM_EXITCODE_MAX +}; + +struct vm_inout { + uint16_t bytes:3; /* 1 or 2 or 4 */ + uint16_t in:1; + uint16_t string:1; + uint16_t rep:1; + uint16_t port; + uint32_t eax; /* valid for out */ +}; + +struct vm_inout_str { + struct vm_inout inout; /* must be the first element */ + struct vm_guest_paging paging; + uint64_t rflags; + uint64_t cr0; + uint64_t index; + uint64_t count; /* rep=1 (%rcx), rep=0 (1) */ + int addrsize; + enum vm_reg_name seg_name; + struct seg_desc seg_desc; +}; + +struct vie_op { + uint8_t op_byte; /* actual opcode byte */ + uint8_t op_type; /* type of operation (e.g. MOV) */ + uint16_t op_flags; +}; + +#define VIE_INST_SIZE 15 +struct vie { + uint8_t inst[VIE_INST_SIZE]; /* instruction bytes */ + uint8_t num_valid; /* size of the instruction */ + uint8_t num_processed; + uint8_t addrsize:4, opsize:4; /* address and operand sizes */ + uint8_t rex_w:1, /* REX prefix */ + rex_r:1, + rex_x:1, + rex_b:1, + rex_present:1, + repz_present:1, /* REP/REPE/REPZ prefix */ + repnz_present:1, /* REPNE/REPNZ prefix */ + opsize_override:1, /* Operand size override */ + addrsize_override:1, /* Address size override */ + segment_override:1; /* Segment override */ + uint8_t mod:2, /* ModRM byte */ + reg:4, + rm:4; + uint8_t ss:2, /* SIB byte */ + index:4, + base:4; + uint8_t disp_bytes; + uint8_t imm_bytes; + uint8_t scale; + int base_register; /* VM_REG_GUEST_xyz */ + int index_register; /* VM_REG_GUEST_xyz */ + int segment_register; /* VM_REG_GUEST_xyz */ + int64_t displacement; /* optional addr displacement */ + int64_t immediate; /* optional immediate operand */ + uint8_t decoded; /* set to 1 if successfully decoded */ + struct vie_op op; /* opcode description */ +}; + +enum task_switch_reason { + TSR_CALL, + TSR_IRET, + TSR_JMP, + TSR_IDT_GATE /* task gate in IDT */ +}; + +struct vm_task_switch { + uint16_t tsssel; /* new TSS selector */ + int ext; /* task switch due to external event */ + uint32_t errcode; + int errcode_valid; /* push 'errcode' on the new stack */ + enum task_switch_reason reason; + struct vm_guest_paging paging; +}; + +struct vm_exit { + enum vm_exitcode exitcode; + int inst_length; /* 0 means unknown */ + uint64_t rip; + union { + struct vm_inout inout; + struct vm_inout_str inout_str; + struct { + uint64_t gpa; + int fault_type; + } paging; + struct { + uint64_t gpa; + uint64_t gla; + uint64_t cs_base; + int cs_d; /* CS.D */ + struct vm_guest_paging paging; + struct vie vie; + } inst_emul; + /* + * VMX specific payload. Used when there is no "better" + * exitcode to represent the VM-exit. + */ + struct { + int status; /* vmx inst status */ + /* + * 'exit_reason' and 'exit_qualification' are valid + * only if 'status' is zero. + */ + uint32_t exit_reason; + uint64_t exit_qualification; + /* + * 'inst_error' and 'inst_type' are valid + * only if 'status' is non-zero. + */ + int inst_type; + int inst_error; + } vmx; + struct { + uint32_t code; /* ecx value */ + uint64_t wval; + } msr; + struct { + int vcpu; + uint64_t rip; + } spinup_ap; + struct { + uint64_t rflags; + } hlt; + struct { + int vector; + } ioapic_eoi; + struct { + enum vm_suspend_how how; + } suspended; + struct vm_task_switch task_switch; + } u; +}; + +/* FIXME remove */ +struct vm_memory_segment { + uint64_t gpa; /* in */ + size_t len; +}; + +typedef int (*mem_region_read_t)(void *vm, int cpuid, uint64_t gpa, + uint64_t *rval, int rsize, void *arg); + +typedef int (*mem_region_write_t)(void *vm, int cpuid, uint64_t gpa, + uint64_t wval, int wsize, void *arg); + +uint64_t vie_size2mask(int size); + +int vie_calculate_gla(enum vm_cpu_mode cpu_mode, enum vm_reg_name seg, + struct seg_desc *desc, uint64_t off, int length, int addrsize, int prot, + uint64_t *gla); + +int vie_alignment_check(int cpl, int operand_size, uint64_t cr0, + uint64_t rflags, uint64_t gla); + +#pragma clang diagnostic pop diff --git a/bhyve/spinup_ap.h b/include/xhyve/vmm/vmm_host.h similarity index 80% rename from bhyve/spinup_ap.h rename to include/xhyve/vmm/vmm_host.h index 2749ee9..493d399 100644 --- a/bhyve/spinup_ap.h +++ b/include/xhyve/vmm/vmm_host.h @@ -26,9 +26,19 @@ * $FreeBSD$ */ -#ifndef _SPINUP_AP_H_ -#define _SPINUP_AP_H_ +#pragma once -int spinup_ap(struct vmctx *ctx, int vcpu, int newcpu, uint64_t rip); +#include -#endif +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" +struct xsave_limits { + int xsave_enabled; + uint64_t xcr0_allowed; + uint32_t xsave_max_size; +}; +#pragma clang diagnostic pop + +void vmm_host_state_init(void); + +const struct xsave_limits *vmm_get_xsave_limits(void); diff --git a/vmm_instruction_emul.h b/include/xhyve/vmm/vmm_instruction_emul.h similarity index 80% rename from vmm_instruction_emul.h rename to include/xhyve/vmm/vmm_instruction_emul.h index 5e7127f..1097b0c 100644 --- a/vmm_instruction_emul.h +++ b/include/xhyve/vmm/vmm_instruction_emul.h @@ -26,19 +26,10 @@ * $FreeBSD$ */ -#ifndef _VMM_INSTRUCTION_EMUL_H_ -#define _VMM_INSTRUCTION_EMUL_H_ +#pragma once -#include - -/* - * Callback functions to read and write memory regions. - */ -typedef int (*mem_region_read_t)(void *vm, int cpuid, uint64_t gpa, - uint64_t *rval, int rsize, void *arg); - -typedef int (*mem_region_write_t)(void *vm, int cpuid, uint64_t gpa, - uint64_t wval, int wsize, void *arg); +#include +#include /* * Emulate the decoded 'vie' instruction. @@ -58,22 +49,9 @@ int vmm_emulate_instruction(void *vm, int cpuid, uint64_t gpa, struct vie *vie, int vie_update_register(void *vm, int vcpuid, enum vm_reg_name reg, uint64_t val, int size); -/* - * Returns 1 if an alignment check exception should be injected and 0 otherwise. - */ -int vie_alignment_check(int cpl, int operand_size, uint64_t cr0, - uint64_t rflags, uint64_t gla); - /* Returns 1 if the 'gla' is not canonical and 0 otherwise. */ int vie_canonical_check(enum vm_cpu_mode cpu_mode, uint64_t gla); -uint64_t vie_size2mask(int size); - -int vie_calculate_gla(enum vm_cpu_mode cpu_mode, enum vm_reg_name seg, - struct seg_desc *desc, uint64_t off, int length, int addrsize, int prot, - uint64_t *gla); - -#ifdef _KERNEL /* * APIs to fetch and decode the instruction from nested page fault handler. * @@ -111,6 +89,3 @@ void vie_init(struct vie *vie, const char *inst_bytes, int inst_length); #define VIE_INVALID_GLA (1UL << 63) /* a non-canonical address */ int vmm_decode_instruction(struct vm *vm, int cpuid, uint64_t gla, enum vm_cpu_mode cpu_mode, int csd, struct vie *vie); -#endif /* _KERNEL */ - -#endif /* _VMM_INSTRUCTION_EMUL_H_ */ diff --git a/vmm/vmm_ioport.h b/include/xhyve/vmm/vmm_ioport.h similarity index 95% rename from vmm/vmm_ioport.h rename to include/xhyve/vmm/vmm_ioport.h index ba51989..e6f1675 100644 --- a/vmm/vmm_ioport.h +++ b/include/xhyve/vmm/vmm_ioport.h @@ -26,12 +26,15 @@ * $FreeBSD$ */ -#ifndef _VMM_IOPORT_H_ -#define _VMM_IOPORT_H_ +#pragma once + +#include +#include + +struct vm; +struct vm_exit; typedef int (*ioport_handler_func_t)(struct vm *vm, int vcpuid, bool in, int port, int bytes, uint32_t *val); int vm_handle_inout(struct vm *vm, int vcpuid, struct vm_exit *vme, bool *retu); - -#endif /* _VMM_IOPORT_H_ */ diff --git a/vmm/vmm_ktr.h b/include/xhyve/vmm/vmm_ktr.h similarity index 69% rename from vmm/vmm_ktr.h rename to include/xhyve/vmm/vmm_ktr.h index 61ff53f..acfe5b6 100644 --- a/vmm/vmm_ktr.h +++ b/include/xhyve/vmm/vmm_ktr.h @@ -1,5 +1,6 @@ /*- * Copyright (c) 2011 NetApp, Inc. + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,44 +27,46 @@ * $FreeBSD$ */ -#ifndef _VMM_KTR_H_ -#define _VMM_KTR_H_ +#pragma once -#include -#include +#include -#ifndef KTR_VMM -#define KTR_VMM KTR_GEN +#ifdef XHYVE_CONFIG_TRACE +#define vmmtrace printf +#else +#define vmmtrace if (0) printf #endif +struct vm; +extern const char *vm_name(struct vm *vm); + #define VCPU_CTR0(vm, vcpuid, format) \ -CTR2(KTR_VMM, "vm %s[%d]: " format, vm_name((vm)), (vcpuid)) +vmmtrace("vm %s[%d]: " format "\n", vm_name((vm)), (vcpuid)) #define VCPU_CTR1(vm, vcpuid, format, p1) \ -CTR3(KTR_VMM, "vm %s[%d]: " format, vm_name((vm)), (vcpuid), (p1)) +vmmtrace("vm %s[%d]: " format "\n", vm_name((vm)), (vcpuid), (p1)) #define VCPU_CTR2(vm, vcpuid, format, p1, p2) \ -CTR4(KTR_VMM, "vm %s[%d]: " format, vm_name((vm)), (vcpuid), (p1), (p2)) +vmmtrace("vm %s[%d]: " format "\n", vm_name((vm)), (vcpuid), (p1), (p2)) #define VCPU_CTR3(vm, vcpuid, format, p1, p2, p3) \ -CTR5(KTR_VMM, "vm %s[%d]: " format, vm_name((vm)), (vcpuid), (p1), (p2), (p3)) +vmmtrace("vm %s[%d]: " format "\n", vm_name((vm)), (vcpuid), (p1), (p2), (p3)) #define VCPU_CTR4(vm, vcpuid, format, p1, p2, p3, p4) \ -CTR6(KTR_VMM, "vm %s[%d]: " format, vm_name((vm)), (vcpuid), \ +vmmtrace("vm %s[%d]: " format "\n", vm_name((vm)), (vcpuid), \ (p1), (p2), (p3), (p4)) #define VM_CTR0(vm, format) \ -CTR1(KTR_VMM, "vm %s: " format, vm_name((vm))) +vmmtrace("vm %s: " format "\n", vm_name((vm))) #define VM_CTR1(vm, format, p1) \ -CTR2(KTR_VMM, "vm %s: " format, vm_name((vm)), (p1)) +vmmtrace("vm %s: " format "\n", vm_name((vm)), (p1)) #define VM_CTR2(vm, format, p1, p2) \ -CTR3(KTR_VMM, "vm %s: " format, vm_name((vm)), (p1), (p2)) +vmmtrace("vm %s: " format "\n", vm_name((vm)), (p1), (p2)) #define VM_CTR3(vm, format, p1, p2, p3) \ -CTR4(KTR_VMM, "vm %s: " format, vm_name((vm)), (p1), (p2), (p3)) +vmmtrace("vm %s: " format "\n", vm_name((vm)), (p1), (p2), (p3)) #define VM_CTR4(vm, format, p1, p2, p3, p4) \ -CTR5(KTR_VMM, "vm %s: " format, vm_name((vm)), (p1), (p2), (p3), (p4)) -#endif +vmmtrace("vm %s: " format "\n", vm_name((vm)), (p1), (p2), (p3), (p4)) diff --git a/vmm/vmm_lapic.h b/include/xhyve/vmm/vmm_lapic.h similarity index 95% rename from vmm/vmm_lapic.h rename to include/xhyve/vmm/vmm_lapic.h index 88fa948..e7df042 100644 --- a/vmm/vmm_lapic.h +++ b/include/xhyve/vmm/vmm_lapic.h @@ -26,12 +26,15 @@ * $FreeBSD$ */ -#ifndef _VMM_LAPIC_H_ -#define _VMM_LAPIC_H_ +#pragma once + +#include +#include +#include struct vm; -boolean_t lapic_msr(u_int num); +bool lapic_msr(u_int num); int lapic_rdmsr(struct vm *vm, int cpu, u_int msr, uint64_t *rval, bool *retu); int lapic_wrmsr(struct vm *vm, int cpu, u_int msr, uint64_t wval, @@ -71,5 +74,3 @@ lapic_intr_edge(struct vm *vm, int cpu, int vector) int lapic_set_local_intr(struct vm *vm, int cpu, int vector); int lapic_intr_msi(struct vm *vm, uint64_t addr, uint64_t msg); - -#endif diff --git a/vmm/vmm_mem.h b/include/xhyve/vmm/vmm_mem.h similarity index 75% rename from vmm/vmm_mem.h rename to include/xhyve/vmm/vmm_mem.h index a375070..6efbcf4 100644 --- a/vmm/vmm_mem.h +++ b/include/xhyve/vmm/vmm_mem.h @@ -26,18 +26,13 @@ * $FreeBSD$ */ -#ifndef _VMM_MEM_H_ -#define _VMM_MEM_H_ +#pragma once + +#include +#include struct vmspace; -struct vm_object; -int vmm_mem_init(void); -struct vm_object *vmm_mem_alloc(struct vmspace *, vm_paddr_t gpa, size_t size); -struct vm_object *vmm_mmio_alloc(struct vmspace *, vm_paddr_t gpa, size_t len, - vm_paddr_t hpa); -void vmm_mem_free(struct vmspace *, vm_paddr_t gpa, size_t size); -void vmm_mmio_free(struct vmspace *, vm_paddr_t gpa, size_t size); -vm_paddr_t vmm_mem_maxaddr(void); - -#endif +int vmm_mem_init(void); +void *vmm_mem_alloc(uint64_t gpa, size_t size); +void vmm_mem_free(uint64_t gpa, size_t size, void *object); diff --git a/vmm/vmm_stat.h b/include/xhyve/vmm/vmm_stat.h similarity index 88% rename from vmm/vmm_stat.h rename to include/xhyve/vmm/vmm_stat.h index 1640ba3..8169adb 100644 --- a/vmm/vmm_stat.h +++ b/include/xhyve/vmm/vmm_stat.h @@ -1,5 +1,6 @@ /*- * Copyright (c) 2011 NetApp, Inc. + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -29,8 +30,9 @@ * $FreeBSD$ */ -#ifndef _VMM_STAT_H_ -#define _VMM_STAT_H_ +#pragma once + +#include struct vm; @@ -46,6 +48,8 @@ struct vmm_stat_type; typedef void (*vmm_stat_func_t)(struct vm *vm, int vcpu, struct vmm_stat_type *stat); +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" struct vmm_stat_type { int index; /* position in the stats buffer */ int nelems; /* standalone or array */ @@ -53,14 +57,16 @@ struct vmm_stat_type { vmm_stat_func_t func; enum vmm_stat_scope scope; }; +#pragma clang diagnostic pop void vmm_stat_register(void *arg); #define VMM_STAT_FDEFINE(type, nelems, desc, func, scope) \ struct vmm_stat_type type[1] = { \ { -1, nelems, desc, func, scope } \ - }; \ - SYSINIT(type##_stat, SI_SUB_KLD, SI_ORDER_ANY, vmm_stat_register, type) + } + //}; \ + // SYSINIT(type##_stat, SI_SUB_KLD, SI_ORDER_ANY, vmm_stat_register, type) #define VMM_STAT_DEFINE(type, nelems, desc, scope) \ VMM_STAT_FDEFINE(type, nelems, desc, NULL, scope) @@ -72,8 +78,6 @@ void vmm_stat_register(void *arg); VMM_STAT_DEFINE(type, 1, desc, VMM_STAT_SCOPE_ANY) #define VMM_STAT_INTEL(type, desc) \ VMM_STAT_DEFINE(type, 1, desc, VMM_STAT_SCOPE_INTEL) -#define VMM_STAT_AMD(type, desc) \ - VMM_STAT_DEFINE(type, 1, desc, VMM_STAT_SCOPE_AMD) #define VMM_STAT_FUNC(type, desc, func) \ VMM_STAT_FDEFINE(type, 1, desc, func, VMM_STAT_SCOPE_ANY) @@ -95,13 +99,19 @@ static void __inline vmm_stat_array_incr(struct vm *vm, int vcpu, struct vmm_stat_type *vst, int statidx, uint64_t x) { -#ifdef VMM_KEEP_STATS +#ifdef XHYVE_CONFIG_STATS uint64_t *stats; stats = vcpu_stats(vm, vcpu); if (vst->index >= 0 && statidx < vst->nelems) stats[vst->index + statidx] += x; +#else + (void) vm; + (void) vcpu; + (void) vst; + (void) statidx; + (void) x; #endif } @@ -109,13 +119,19 @@ static void __inline vmm_stat_array_set(struct vm *vm, int vcpu, struct vmm_stat_type *vst, int statidx, uint64_t val) { -#ifdef VMM_KEEP_STATS +#ifdef XHYVE_CONFIG_STATS uint64_t *stats; stats = vcpu_stats(vm, vcpu); if (vst->index >= 0 && statidx < vst->nelems) stats[vst->index + statidx] = val; +#else + (void) vm; + (void) vcpu; + (void) vst; + (void) statidx; + (void) val; #endif } @@ -123,8 +139,13 @@ static void __inline vmm_stat_incr(struct vm *vm, int vcpu, struct vmm_stat_type *vst, uint64_t x) { -#ifdef VMM_KEEP_STATS +#ifdef XHYVE_CONFIG_STATS vmm_stat_array_incr(vm, vcpu, vst, 0, x); +#else + (void) vm; + (void) vcpu; + (void) vst; + (void) x; #endif } @@ -132,8 +153,13 @@ static void __inline vmm_stat_set(struct vm *vm, int vcpu, struct vmm_stat_type *vst, uint64_t val) { -#ifdef VMM_KEEP_STATS +#ifdef XHYVE_CONFIG_STATS vmm_stat_array_set(vm, vcpu, vst, 0, val); +#else + (void) vm; + (void) vcpu; + (void) vst; + (void) val; #endif } @@ -157,4 +183,3 @@ VMM_STAT_DECLARE(VMEXIT_ASTPENDING); VMM_STAT_DECLARE(VMEXIT_USERSPACE); VMM_STAT_DECLARE(VMEXIT_RENDEZVOUS); VMM_STAT_DECLARE(VMEXIT_EXCEPTION); -#endif diff --git a/vmm/vmm_util.h b/include/xhyve/vmm/vmm_util.h similarity index 87% rename from vmm/vmm_util.h rename to include/xhyve/vmm/vmm_util.h index 7f82332..ca71faf 100644 --- a/vmm/vmm_util.h +++ b/include/xhyve/vmm/vmm_util.h @@ -26,15 +26,8 @@ * $FreeBSD$ */ -#ifndef _VMM_UTIL_H_ -#define _VMM_UTIL_H_ +#pragma once struct trapframe; -boolean_t vmm_is_intel(void); -boolean_t vmm_is_amd(void); -boolean_t vmm_supports_1G_pages(void); - -void dump_trapframe(struct trapframe *tf); - -#endif +void dump_trapframe(struct trapframe *tf); diff --git a/vmm/x86.h b/include/xhyve/vmm/x86.h similarity index 87% rename from vmm/x86.h rename to include/xhyve/vmm/x86.h index 6f99d52..9b76974 100644 --- a/vmm/x86.h +++ b/include/xhyve/vmm/x86.h @@ -26,8 +26,9 @@ * $FreeBSD$ */ -#ifndef _X86_H_ -#define _X86_H_ +#pragma once + +#include #define CPUID_0000_0000 (0x0) #define CPUID_0000_0001 (0x1) @@ -61,18 +62,3 @@ int x86_emulate_cpuid(struct vm *vm, int vcpu_id, uint32_t *eax, uint32_t *ebx, uint32_t *ecx, uint32_t *edx); - -enum vm_cpuid_capability { - VCC_NONE, - VCC_NO_EXECUTE, - VCC_FFXSR, - VCC_TCE, - VCC_LAST -}; - -/* - * Return 'true' if the capability 'cap' is enabled in this virtual cpu - * and 'false' otherwise. - */ -bool vm_cpuid_capability(struct vm *vm, int vcpuid, enum vm_cpuid_capability); -#endif diff --git a/vmm/io/ppt.h b/include/xhyve/xhyve.h similarity index 54% rename from vmm/io/ppt.h rename to include/xhyve/xhyve.h index 8078896..4f85664 100644 --- a/vmm/io/ppt.h +++ b/include/xhyve/xhyve.h @@ -26,29 +26,55 @@ * $FreeBSD$ */ -#ifndef _IO_PPT_H_ -#define _IO_PPT_H_ +#pragma once -int ppt_unassign_all(struct vm *vm); -int ppt_map_mmio(struct vm *vm, int bus, int slot, int func, - vm_paddr_t gpa, size_t len, vm_paddr_t hpa); -int ppt_setup_msi(struct vm *vm, int vcpu, int bus, int slot, int func, - uint64_t addr, uint64_t msg, int numvec); -int ppt_setup_msix(struct vm *vm, int vcpu, int bus, int slot, int func, - int idx, uint64_t addr, uint64_t msg, uint32_t vector_control); -int ppt_assigned_devices(struct vm *vm); -boolean_t ppt_is_mmio(struct vm *vm, vm_paddr_t gpa); +#include +#include -/* - * Returns the number of devices sequestered by the ppt driver for assignment - * to virtual machines. - */ -int ppt_avail_devices(void); - -/* - * The following functions should never be called directly. - * Use 'vm_assign_pptdev()' and 'vm_unassign_pptdev()' instead. - */ -int ppt_assign_device(struct vm *vm, int bus, int slot, int func); -int ppt_unassign_device(struct vm *vm, int bus, int slot, int func); +#ifndef CTASSERT /* Allow lint to override */ +#define CTASSERT(x) _CTASSERT(x, __LINE__) +#define _CTASSERT(x, y) __CTASSERT(x, y) +#define __CTASSERT(x, y) typedef char __assert ## y[(x) ? 1 : -1] #endif + +#define VMEXIT_CONTINUE (0) +#define VMEXIT_ABORT (-1) + +extern int guest_ncpus; +extern char *guest_uuid_str; +extern char *vmname; + +void xh_vm_inject_fault(int vcpu, int vector, int errcode_valid, + uint32_t errcode); + +static __inline void +vm_inject_ud(int vcpuid) +{ + xh_vm_inject_fault(vcpuid, IDT_UD, 0, 0); +} + +static __inline void +vm_inject_gp(int vcpuid) +{ + xh_vm_inject_fault(vcpuid, IDT_GP, 1, 0); +} + +static __inline void +vm_inject_ac(int vcpuid, uint32_t errcode) +{ + xh_vm_inject_fault(vcpuid, IDT_AC, 1, errcode); +} + +static __inline void +vm_inject_ss(int vcpuid, uint32_t errcode) +{ + xh_vm_inject_fault(vcpuid, IDT_SS, 1, errcode); +} + +void *paddr_guest2host(uintptr_t addr, size_t len); + +void vcpu_set_capabilities(int cpu); +void vcpu_add(int fromcpu, int newcpu, uint64_t rip); +int fbsdrun_vmexit_on_hlt(void); +int fbsdrun_vmexit_on_pause(void); +int fbsdrun_virtio_msix(void); diff --git a/bhyve/xmsr.h b/include/xhyve/xmsr.h similarity index 87% rename from bhyve/xmsr.h rename to include/xhyve/xmsr.h index bcf65b7..ff793ff 100644 --- a/bhyve/xmsr.h +++ b/include/xhyve/xmsr.h @@ -26,11 +26,10 @@ * $FreeBSD$ */ -#ifndef _XMSR_H_ -#define _XMSR_H_ +#pragma once + +#include int init_msr(void); -int emulate_wrmsr(struct vmctx *ctx, int vcpu, uint32_t code, uint64_t val); -int emulate_rdmsr(struct vmctx *ctx, int vcpu, uint32_t code, uint64_t *val); - -#endif +int emulate_wrmsr(int vcpu, uint32_t code, uint64_t val); +int emulate_rdmsr(int vcpu, uint32_t code, uint64_t *val); diff --git a/libvmmapi/Makefile b/libvmmapi/Makefile deleted file mode 100644 index 26cf86f..0000000 --- a/libvmmapi/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -# $FreeBSD$ - -LIB= vmmapi -SRCS= vmmapi.c vmmapi_freebsd.c -INCS= vmmapi.h - -WARNS?= 2 - -LIBADD= util - -CFLAGS+= -I${.CURDIR} - -.include diff --git a/libvmmapi/vmmapi.c b/libvmmapi/vmmapi.c deleted file mode 100644 index 1e6e627..0000000 --- a/libvmmapi/vmmapi.c +++ /dev/null @@ -1,1201 +0,0 @@ -/*- - * Copyright (c) 2011 NetApp, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY NETAPP, INC ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL NETAPP, INC OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD$ - */ - -#include -__FBSDID("$FreeBSD$"); - -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include - -#include -#include - -#include "vmmapi.h" - -#define MB (1024 * 1024UL) -#define GB (1024 * 1024 * 1024UL) - -struct vmctx { - int fd; - uint32_t lowmem_limit; - enum vm_mmap_style vms; - int memflags; - size_t lowmem; - char *lowmem_addr; - size_t highmem; - char *highmem_addr; - char *name; -}; - -#define CREATE(x) sysctlbyname("hw.vmm.create", NULL, NULL, (x), strlen((x))) -#define DESTROY(x) sysctlbyname("hw.vmm.destroy", NULL, NULL, (x), strlen((x))) - -static int -vm_device_open(const char *name) -{ - int fd, len; - char *vmfile; - - len = strlen("/dev/vmm/") + strlen(name) + 1; - vmfile = malloc(len); - assert(vmfile != NULL); - snprintf(vmfile, len, "/dev/vmm/%s", name); - - /* Open the device file */ - fd = open(vmfile, O_RDWR, 0); - - free(vmfile); - return (fd); -} - -int -vm_create(const char *name) -{ - - return (CREATE((char *)name)); -} - -struct vmctx * -vm_open(const char *name) -{ - struct vmctx *vm; - - vm = malloc(sizeof(struct vmctx) + strlen(name) + 1); - assert(vm != NULL); - - vm->fd = -1; - vm->memflags = 0; - vm->lowmem_limit = 3 * GB; - vm->name = (char *)(vm + 1); - strcpy(vm->name, name); - - if ((vm->fd = vm_device_open(vm->name)) < 0) - goto err; - - return (vm); -err: - vm_destroy(vm); - return (NULL); -} - -void -vm_destroy(struct vmctx *vm) -{ - assert(vm != NULL); - - if (vm->fd >= 0) - close(vm->fd); - DESTROY(vm->name); - - free(vm); -} - -int -vm_parse_memsize(const char *optarg, size_t *ret_memsize) -{ - char *endptr; - size_t optval; - int error; - - optval = strtoul(optarg, &endptr, 0); - if (*optarg != '\0' && *endptr == '\0') { - /* - * For the sake of backward compatibility if the memory size - * specified on the command line is less than a megabyte then - * it is interpreted as being in units of MB. - */ - if (optval < MB) - optval *= MB; - *ret_memsize = optval; - error = 0; - } else - error = expand_number(optarg, ret_memsize); - - return (error); -} - -int -vm_get_memory_seg(struct vmctx *ctx, vm_paddr_t gpa, size_t *ret_len, - int *wired) -{ - int error; - struct vm_memory_segment seg; - - bzero(&seg, sizeof(seg)); - seg.gpa = gpa; - error = ioctl(ctx->fd, VM_GET_MEMORY_SEG, &seg); - *ret_len = seg.len; - if (wired != NULL) - *wired = seg.wired; - return (error); -} - -uint32_t -vm_get_lowmem_limit(struct vmctx *ctx) -{ - - return (ctx->lowmem_limit); -} - -void -vm_set_lowmem_limit(struct vmctx *ctx, uint32_t limit) -{ - - ctx->lowmem_limit = limit; -} - -void -vm_set_memflags(struct vmctx *ctx, int flags) -{ - - ctx->memflags = flags; -} - -static int -setup_memory_segment(struct vmctx *ctx, vm_paddr_t gpa, size_t len, char **addr) -{ - int error, mmap_flags; - struct vm_memory_segment seg; - - /* - * Create and optionally map 'len' bytes of memory at guest - * physical address 'gpa' - */ - bzero(&seg, sizeof(seg)); - seg.gpa = gpa; - seg.len = len; - error = ioctl(ctx->fd, VM_MAP_MEMORY, &seg); - if (error == 0 && addr != NULL) { - mmap_flags = MAP_SHARED; - if ((ctx->memflags & VM_MEM_F_INCORE) == 0) - mmap_flags |= MAP_NOCORE; - *addr = mmap(NULL, len, PROT_READ | PROT_WRITE, mmap_flags, - ctx->fd, gpa); - } - return (error); -} - -int -vm_setup_memory(struct vmctx *ctx, size_t memsize, enum vm_mmap_style vms) -{ - char **addr; - int error; - - /* XXX VM_MMAP_SPARSE not implemented yet */ - assert(vms == VM_MMAP_NONE || vms == VM_MMAP_ALL); - ctx->vms = vms; - - /* - * If 'memsize' cannot fit entirely in the 'lowmem' segment then - * create another 'highmem' segment above 4GB for the remainder. - */ - if (memsize > ctx->lowmem_limit) { - ctx->lowmem = ctx->lowmem_limit; - ctx->highmem = memsize - ctx->lowmem; - } else { - ctx->lowmem = memsize; - ctx->highmem = 0; - } - - if (ctx->lowmem > 0) { - addr = (vms == VM_MMAP_ALL) ? &ctx->lowmem_addr : NULL; - error = setup_memory_segment(ctx, 0, ctx->lowmem, addr); - if (error) - return (error); - } - - if (ctx->highmem > 0) { - addr = (vms == VM_MMAP_ALL) ? &ctx->highmem_addr : NULL; - error = setup_memory_segment(ctx, 4*GB, ctx->highmem, addr); - if (error) - return (error); - } - - return (0); -} - -void * -vm_map_gpa(struct vmctx *ctx, vm_paddr_t gaddr, size_t len) -{ - - /* XXX VM_MMAP_SPARSE not implemented yet */ - assert(ctx->vms == VM_MMAP_ALL); - - if (gaddr < ctx->lowmem && gaddr + len <= ctx->lowmem) - return ((void *)(ctx->lowmem_addr + gaddr)); - - if (gaddr >= 4*GB) { - gaddr -= 4*GB; - if (gaddr < ctx->highmem && gaddr + len <= ctx->highmem) - return ((void *)(ctx->highmem_addr + gaddr)); - } - - return (NULL); -} - -size_t -vm_get_lowmem_size(struct vmctx *ctx) -{ - - return (ctx->lowmem); -} - -size_t -vm_get_highmem_size(struct vmctx *ctx) -{ - - return (ctx->highmem); -} - -int -vm_set_desc(struct vmctx *ctx, int vcpu, int reg, - uint64_t base, uint32_t limit, uint32_t access) -{ - int error; - struct vm_seg_desc vmsegdesc; - - bzero(&vmsegdesc, sizeof(vmsegdesc)); - vmsegdesc.cpuid = vcpu; - vmsegdesc.regnum = reg; - vmsegdesc.desc.base = base; - vmsegdesc.desc.limit = limit; - vmsegdesc.desc.access = access; - - error = ioctl(ctx->fd, VM_SET_SEGMENT_DESCRIPTOR, &vmsegdesc); - return (error); -} - -int -vm_get_desc(struct vmctx *ctx, int vcpu, int reg, - uint64_t *base, uint32_t *limit, uint32_t *access) -{ - int error; - struct vm_seg_desc vmsegdesc; - - bzero(&vmsegdesc, sizeof(vmsegdesc)); - vmsegdesc.cpuid = vcpu; - vmsegdesc.regnum = reg; - - error = ioctl(ctx->fd, VM_GET_SEGMENT_DESCRIPTOR, &vmsegdesc); - if (error == 0) { - *base = vmsegdesc.desc.base; - *limit = vmsegdesc.desc.limit; - *access = vmsegdesc.desc.access; - } - return (error); -} - -int -vm_get_seg_desc(struct vmctx *ctx, int vcpu, int reg, struct seg_desc *seg_desc) -{ - int error; - - error = vm_get_desc(ctx, vcpu, reg, &seg_desc->base, &seg_desc->limit, - &seg_desc->access); - return (error); -} - -int -vm_set_register(struct vmctx *ctx, int vcpu, int reg, uint64_t val) -{ - int error; - struct vm_register vmreg; - - bzero(&vmreg, sizeof(vmreg)); - vmreg.cpuid = vcpu; - vmreg.regnum = reg; - vmreg.regval = val; - - error = ioctl(ctx->fd, VM_SET_REGISTER, &vmreg); - return (error); -} - -int -vm_get_register(struct vmctx *ctx, int vcpu, int reg, uint64_t *ret_val) -{ - int error; - struct vm_register vmreg; - - bzero(&vmreg, sizeof(vmreg)); - vmreg.cpuid = vcpu; - vmreg.regnum = reg; - - error = ioctl(ctx->fd, VM_GET_REGISTER, &vmreg); - *ret_val = vmreg.regval; - return (error); -} - -int -vm_run(struct vmctx *ctx, int vcpu, struct vm_exit *vmexit) -{ - int error; - struct vm_run vmrun; - - bzero(&vmrun, sizeof(vmrun)); - vmrun.cpuid = vcpu; - - error = ioctl(ctx->fd, VM_RUN, &vmrun); - bcopy(&vmrun.vm_exit, vmexit, sizeof(struct vm_exit)); - return (error); -} - -int -vm_suspend(struct vmctx *ctx, enum vm_suspend_how how) -{ - struct vm_suspend vmsuspend; - - bzero(&vmsuspend, sizeof(vmsuspend)); - vmsuspend.how = how; - return (ioctl(ctx->fd, VM_SUSPEND, &vmsuspend)); -} - -int -vm_reinit(struct vmctx *ctx) -{ - - return (ioctl(ctx->fd, VM_REINIT, 0)); -} - -int -vm_inject_exception(struct vmctx *ctx, int vcpu, int vector, int errcode_valid, - uint32_t errcode, int restart_instruction) -{ - struct vm_exception exc; - - exc.cpuid = vcpu; - exc.vector = vector; - exc.error_code = errcode; - exc.error_code_valid = errcode_valid; - exc.restart_instruction = restart_instruction; - - return (ioctl(ctx->fd, VM_INJECT_EXCEPTION, &exc)); -} - -int -vm_apicid2vcpu(struct vmctx *ctx, int apicid) -{ - /* - * The apic id associated with the 'vcpu' has the same numerical value - * as the 'vcpu' itself. - */ - return (apicid); -} - -int -vm_lapic_irq(struct vmctx *ctx, int vcpu, int vector) -{ - struct vm_lapic_irq vmirq; - - bzero(&vmirq, sizeof(vmirq)); - vmirq.cpuid = vcpu; - vmirq.vector = vector; - - return (ioctl(ctx->fd, VM_LAPIC_IRQ, &vmirq)); -} - -int -vm_lapic_local_irq(struct vmctx *ctx, int vcpu, int vector) -{ - struct vm_lapic_irq vmirq; - - bzero(&vmirq, sizeof(vmirq)); - vmirq.cpuid = vcpu; - vmirq.vector = vector; - - return (ioctl(ctx->fd, VM_LAPIC_LOCAL_IRQ, &vmirq)); -} - -int -vm_lapic_msi(struct vmctx *ctx, uint64_t addr, uint64_t msg) -{ - struct vm_lapic_msi vmmsi; - - bzero(&vmmsi, sizeof(vmmsi)); - vmmsi.addr = addr; - vmmsi.msg = msg; - - return (ioctl(ctx->fd, VM_LAPIC_MSI, &vmmsi)); -} - -int -vm_ioapic_assert_irq(struct vmctx *ctx, int irq) -{ - struct vm_ioapic_irq ioapic_irq; - - bzero(&ioapic_irq, sizeof(struct vm_ioapic_irq)); - ioapic_irq.irq = irq; - - return (ioctl(ctx->fd, VM_IOAPIC_ASSERT_IRQ, &ioapic_irq)); -} - -int -vm_ioapic_deassert_irq(struct vmctx *ctx, int irq) -{ - struct vm_ioapic_irq ioapic_irq; - - bzero(&ioapic_irq, sizeof(struct vm_ioapic_irq)); - ioapic_irq.irq = irq; - - return (ioctl(ctx->fd, VM_IOAPIC_DEASSERT_IRQ, &ioapic_irq)); -} - -int -vm_ioapic_pulse_irq(struct vmctx *ctx, int irq) -{ - struct vm_ioapic_irq ioapic_irq; - - bzero(&ioapic_irq, sizeof(struct vm_ioapic_irq)); - ioapic_irq.irq = irq; - - return (ioctl(ctx->fd, VM_IOAPIC_PULSE_IRQ, &ioapic_irq)); -} - -int -vm_ioapic_pincount(struct vmctx *ctx, int *pincount) -{ - - return (ioctl(ctx->fd, VM_IOAPIC_PINCOUNT, pincount)); -} - -int -vm_isa_assert_irq(struct vmctx *ctx, int atpic_irq, int ioapic_irq) -{ - struct vm_isa_irq isa_irq; - - bzero(&isa_irq, sizeof(struct vm_isa_irq)); - isa_irq.atpic_irq = atpic_irq; - isa_irq.ioapic_irq = ioapic_irq; - - return (ioctl(ctx->fd, VM_ISA_ASSERT_IRQ, &isa_irq)); -} - -int -vm_isa_deassert_irq(struct vmctx *ctx, int atpic_irq, int ioapic_irq) -{ - struct vm_isa_irq isa_irq; - - bzero(&isa_irq, sizeof(struct vm_isa_irq)); - isa_irq.atpic_irq = atpic_irq; - isa_irq.ioapic_irq = ioapic_irq; - - return (ioctl(ctx->fd, VM_ISA_DEASSERT_IRQ, &isa_irq)); -} - -int -vm_isa_pulse_irq(struct vmctx *ctx, int atpic_irq, int ioapic_irq) -{ - struct vm_isa_irq isa_irq; - - bzero(&isa_irq, sizeof(struct vm_isa_irq)); - isa_irq.atpic_irq = atpic_irq; - isa_irq.ioapic_irq = ioapic_irq; - - return (ioctl(ctx->fd, VM_ISA_PULSE_IRQ, &isa_irq)); -} - -int -vm_isa_set_irq_trigger(struct vmctx *ctx, int atpic_irq, - enum vm_intr_trigger trigger) -{ - struct vm_isa_irq_trigger isa_irq_trigger; - - bzero(&isa_irq_trigger, sizeof(struct vm_isa_irq_trigger)); - isa_irq_trigger.atpic_irq = atpic_irq; - isa_irq_trigger.trigger = trigger; - - return (ioctl(ctx->fd, VM_ISA_SET_IRQ_TRIGGER, &isa_irq_trigger)); -} - -int -vm_inject_nmi(struct vmctx *ctx, int vcpu) -{ - struct vm_nmi vmnmi; - - bzero(&vmnmi, sizeof(vmnmi)); - vmnmi.cpuid = vcpu; - - return (ioctl(ctx->fd, VM_INJECT_NMI, &vmnmi)); -} - -static struct { - const char *name; - int type; -} capstrmap[] = { - { "hlt_exit", VM_CAP_HALT_EXIT }, - { "mtrap_exit", VM_CAP_MTRAP_EXIT }, - { "pause_exit", VM_CAP_PAUSE_EXIT }, - { "unrestricted_guest", VM_CAP_UNRESTRICTED_GUEST }, - { "enable_invpcid", VM_CAP_ENABLE_INVPCID }, - { 0 } -}; - -int -vm_capability_name2type(const char *capname) -{ - int i; - - for (i = 0; capstrmap[i].name != NULL && capname != NULL; i++) { - if (strcmp(capstrmap[i].name, capname) == 0) - return (capstrmap[i].type); - } - - return (-1); -} - -const char * -vm_capability_type2name(int type) -{ - int i; - - for (i = 0; capstrmap[i].name != NULL; i++) { - if (capstrmap[i].type == type) - return (capstrmap[i].name); - } - - return (NULL); -} - -int -vm_get_capability(struct vmctx *ctx, int vcpu, enum vm_cap_type cap, - int *retval) -{ - int error; - struct vm_capability vmcap; - - bzero(&vmcap, sizeof(vmcap)); - vmcap.cpuid = vcpu; - vmcap.captype = cap; - - error = ioctl(ctx->fd, VM_GET_CAPABILITY, &vmcap); - *retval = vmcap.capval; - return (error); -} - -int -vm_set_capability(struct vmctx *ctx, int vcpu, enum vm_cap_type cap, int val) -{ - struct vm_capability vmcap; - - bzero(&vmcap, sizeof(vmcap)); - vmcap.cpuid = vcpu; - vmcap.captype = cap; - vmcap.capval = val; - - return (ioctl(ctx->fd, VM_SET_CAPABILITY, &vmcap)); -} - -int -vm_assign_pptdev(struct vmctx *ctx, int bus, int slot, int func) -{ - struct vm_pptdev pptdev; - - bzero(&pptdev, sizeof(pptdev)); - pptdev.bus = bus; - pptdev.slot = slot; - pptdev.func = func; - - return (ioctl(ctx->fd, VM_BIND_PPTDEV, &pptdev)); -} - -int -vm_unassign_pptdev(struct vmctx *ctx, int bus, int slot, int func) -{ - struct vm_pptdev pptdev; - - bzero(&pptdev, sizeof(pptdev)); - pptdev.bus = bus; - pptdev.slot = slot; - pptdev.func = func; - - return (ioctl(ctx->fd, VM_UNBIND_PPTDEV, &pptdev)); -} - -int -vm_map_pptdev_mmio(struct vmctx *ctx, int bus, int slot, int func, - vm_paddr_t gpa, size_t len, vm_paddr_t hpa) -{ - struct vm_pptdev_mmio pptmmio; - - bzero(&pptmmio, sizeof(pptmmio)); - pptmmio.bus = bus; - pptmmio.slot = slot; - pptmmio.func = func; - pptmmio.gpa = gpa; - pptmmio.len = len; - pptmmio.hpa = hpa; - - return (ioctl(ctx->fd, VM_MAP_PPTDEV_MMIO, &pptmmio)); -} - -int -vm_setup_pptdev_msi(struct vmctx *ctx, int vcpu, int bus, int slot, int func, - uint64_t addr, uint64_t msg, int numvec) -{ - struct vm_pptdev_msi pptmsi; - - bzero(&pptmsi, sizeof(pptmsi)); - pptmsi.vcpu = vcpu; - pptmsi.bus = bus; - pptmsi.slot = slot; - pptmsi.func = func; - pptmsi.msg = msg; - pptmsi.addr = addr; - pptmsi.numvec = numvec; - - return (ioctl(ctx->fd, VM_PPTDEV_MSI, &pptmsi)); -} - -int -vm_setup_pptdev_msix(struct vmctx *ctx, int vcpu, int bus, int slot, int func, - int idx, uint64_t addr, uint64_t msg, uint32_t vector_control) -{ - struct vm_pptdev_msix pptmsix; - - bzero(&pptmsix, sizeof(pptmsix)); - pptmsix.vcpu = vcpu; - pptmsix.bus = bus; - pptmsix.slot = slot; - pptmsix.func = func; - pptmsix.idx = idx; - pptmsix.msg = msg; - pptmsix.addr = addr; - pptmsix.vector_control = vector_control; - - return ioctl(ctx->fd, VM_PPTDEV_MSIX, &pptmsix); -} - -uint64_t * -vm_get_stats(struct vmctx *ctx, int vcpu, struct timeval *ret_tv, - int *ret_entries) -{ - int error; - - static struct vm_stats vmstats; - - vmstats.cpuid = vcpu; - - error = ioctl(ctx->fd, VM_STATS, &vmstats); - if (error == 0) { - if (ret_entries) - *ret_entries = vmstats.num_entries; - if (ret_tv) - *ret_tv = vmstats.tv; - return (vmstats.statbuf); - } else - return (NULL); -} - -const char * -vm_get_stat_desc(struct vmctx *ctx, int index) -{ - static struct vm_stat_desc statdesc; - - statdesc.index = index; - if (ioctl(ctx->fd, VM_STAT_DESC, &statdesc) == 0) - return (statdesc.desc); - else - return (NULL); -} - -int -vm_get_x2apic_state(struct vmctx *ctx, int vcpu, enum x2apic_state *state) -{ - int error; - struct vm_x2apic x2apic; - - bzero(&x2apic, sizeof(x2apic)); - x2apic.cpuid = vcpu; - - error = ioctl(ctx->fd, VM_GET_X2APIC_STATE, &x2apic); - *state = x2apic.state; - return (error); -} - -int -vm_set_x2apic_state(struct vmctx *ctx, int vcpu, enum x2apic_state state) -{ - int error; - struct vm_x2apic x2apic; - - bzero(&x2apic, sizeof(x2apic)); - x2apic.cpuid = vcpu; - x2apic.state = state; - - error = ioctl(ctx->fd, VM_SET_X2APIC_STATE, &x2apic); - - return (error); -} - -/* - * From Intel Vol 3a: - * Table 9-1. IA-32 Processor States Following Power-up, Reset or INIT - */ -int -vcpu_reset(struct vmctx *vmctx, int vcpu) -{ - int error; - uint64_t rflags, rip, cr0, cr4, zero, desc_base, rdx; - uint32_t desc_access, desc_limit; - uint16_t sel; - - zero = 0; - - rflags = 0x2; - error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_RFLAGS, rflags); - if (error) - goto done; - - rip = 0xfff0; - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_RIP, rip)) != 0) - goto done; - - cr0 = CR0_NE; - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_CR0, cr0)) != 0) - goto done; - - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_CR3, zero)) != 0) - goto done; - - cr4 = 0; - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_CR4, cr4)) != 0) - goto done; - - /* - * CS: present, r/w, accessed, 16-bit, byte granularity, usable - */ - desc_base = 0xffff0000; - desc_limit = 0xffff; - desc_access = 0x0093; - error = vm_set_desc(vmctx, vcpu, VM_REG_GUEST_CS, - desc_base, desc_limit, desc_access); - if (error) - goto done; - - sel = 0xf000; - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_CS, sel)) != 0) - goto done; - - /* - * SS,DS,ES,FS,GS: present, r/w, accessed, 16-bit, byte granularity - */ - desc_base = 0; - desc_limit = 0xffff; - desc_access = 0x0093; - error = vm_set_desc(vmctx, vcpu, VM_REG_GUEST_SS, - desc_base, desc_limit, desc_access); - if (error) - goto done; - - error = vm_set_desc(vmctx, vcpu, VM_REG_GUEST_DS, - desc_base, desc_limit, desc_access); - if (error) - goto done; - - error = vm_set_desc(vmctx, vcpu, VM_REG_GUEST_ES, - desc_base, desc_limit, desc_access); - if (error) - goto done; - - error = vm_set_desc(vmctx, vcpu, VM_REG_GUEST_FS, - desc_base, desc_limit, desc_access); - if (error) - goto done; - - error = vm_set_desc(vmctx, vcpu, VM_REG_GUEST_GS, - desc_base, desc_limit, desc_access); - if (error) - goto done; - - sel = 0; - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_SS, sel)) != 0) - goto done; - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_DS, sel)) != 0) - goto done; - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_ES, sel)) != 0) - goto done; - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_FS, sel)) != 0) - goto done; - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_GS, sel)) != 0) - goto done; - - /* General purpose registers */ - rdx = 0xf00; - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_RAX, zero)) != 0) - goto done; - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_RBX, zero)) != 0) - goto done; - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_RCX, zero)) != 0) - goto done; - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_RDX, rdx)) != 0) - goto done; - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_RSI, zero)) != 0) - goto done; - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_RDI, zero)) != 0) - goto done; - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_RBP, zero)) != 0) - goto done; - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_RSP, zero)) != 0) - goto done; - - /* GDTR, IDTR */ - desc_base = 0; - desc_limit = 0xffff; - desc_access = 0; - error = vm_set_desc(vmctx, vcpu, VM_REG_GUEST_GDTR, - desc_base, desc_limit, desc_access); - if (error != 0) - goto done; - - error = vm_set_desc(vmctx, vcpu, VM_REG_GUEST_IDTR, - desc_base, desc_limit, desc_access); - if (error != 0) - goto done; - - /* TR */ - desc_base = 0; - desc_limit = 0xffff; - desc_access = 0x0000008b; - error = vm_set_desc(vmctx, vcpu, VM_REG_GUEST_TR, 0, 0, desc_access); - if (error) - goto done; - - sel = 0; - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_TR, sel)) != 0) - goto done; - - /* LDTR */ - desc_base = 0; - desc_limit = 0xffff; - desc_access = 0x00000082; - error = vm_set_desc(vmctx, vcpu, VM_REG_GUEST_LDTR, desc_base, - desc_limit, desc_access); - if (error) - goto done; - - sel = 0; - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_LDTR, 0)) != 0) - goto done; - - /* XXX cr2, debug registers */ - - error = 0; -done: - return (error); -} - -int -vm_get_gpa_pmap(struct vmctx *ctx, uint64_t gpa, uint64_t *pte, int *num) -{ - int error, i; - struct vm_gpa_pte gpapte; - - bzero(&gpapte, sizeof(gpapte)); - gpapte.gpa = gpa; - - error = ioctl(ctx->fd, VM_GET_GPA_PMAP, &gpapte); - - if (error == 0) { - *num = gpapte.ptenum; - for (i = 0; i < gpapte.ptenum; i++) - pte[i] = gpapte.pte[i]; - } - - return (error); -} - -int -vm_get_hpet_capabilities(struct vmctx *ctx, uint32_t *capabilities) -{ - int error; - struct vm_hpet_cap cap; - - bzero(&cap, sizeof(struct vm_hpet_cap)); - error = ioctl(ctx->fd, VM_GET_HPET_CAPABILITIES, &cap); - if (capabilities != NULL) - *capabilities = cap.capabilities; - return (error); -} - -int -vm_gla2gpa(struct vmctx *ctx, int vcpu, struct vm_guest_paging *paging, - uint64_t gla, int prot, uint64_t *gpa, int *fault) -{ - struct vm_gla2gpa gg; - int error; - - bzero(&gg, sizeof(struct vm_gla2gpa)); - gg.vcpuid = vcpu; - gg.prot = prot; - gg.gla = gla; - gg.paging = *paging; - - error = ioctl(ctx->fd, VM_GLA2GPA, &gg); - if (error == 0) { - *fault = gg.fault; - *gpa = gg.gpa; - } - return (error); -} - -#ifndef min -#define min(a,b) (((a) < (b)) ? (a) : (b)) -#endif - -int -vm_copy_setup(struct vmctx *ctx, int vcpu, struct vm_guest_paging *paging, - uint64_t gla, size_t len, int prot, struct iovec *iov, int iovcnt, - int *fault) -{ - void *va; - uint64_t gpa; - int error, i, n, off; - - for (i = 0; i < iovcnt; i++) { - iov[i].iov_base = 0; - iov[i].iov_len = 0; - } - - while (len) { - assert(iovcnt > 0); - error = vm_gla2gpa(ctx, vcpu, paging, gla, prot, &gpa, fault); - if (error || *fault) - return (error); - - off = gpa & PAGE_MASK; - n = min(len, PAGE_SIZE - off); - - va = vm_map_gpa(ctx, gpa, n); - if (va == NULL) - return (EFAULT); - - iov->iov_base = va; - iov->iov_len = n; - iov++; - iovcnt--; - - gla += n; - len -= n; - } - return (0); -} - -void -vm_copy_teardown(struct vmctx *ctx, int vcpu, struct iovec *iov, int iovcnt) -{ - - return; -} - -void -vm_copyin(struct vmctx *ctx, int vcpu, struct iovec *iov, void *vp, size_t len) -{ - const char *src; - char *dst; - size_t n; - - dst = vp; - while (len) { - assert(iov->iov_len); - n = min(len, iov->iov_len); - src = iov->iov_base; - bcopy(src, dst, n); - - iov++; - dst += n; - len -= n; - } -} - -void -vm_copyout(struct vmctx *ctx, int vcpu, const void *vp, struct iovec *iov, - size_t len) -{ - const char *src; - char *dst; - size_t n; - - src = vp; - while (len) { - assert(iov->iov_len); - n = min(len, iov->iov_len); - dst = iov->iov_base; - bcopy(src, dst, n); - - iov++; - src += n; - len -= n; - } -} - -static int -vm_get_cpus(struct vmctx *ctx, int which, cpuset_t *cpus) -{ - struct vm_cpuset vm_cpuset; - int error; - - bzero(&vm_cpuset, sizeof(struct vm_cpuset)); - vm_cpuset.which = which; - vm_cpuset.cpusetsize = sizeof(cpuset_t); - vm_cpuset.cpus = cpus; - - error = ioctl(ctx->fd, VM_GET_CPUS, &vm_cpuset); - return (error); -} - -int -vm_active_cpus(struct vmctx *ctx, cpuset_t *cpus) -{ - - return (vm_get_cpus(ctx, VM_ACTIVE_CPUS, cpus)); -} - -int -vm_suspended_cpus(struct vmctx *ctx, cpuset_t *cpus) -{ - - return (vm_get_cpus(ctx, VM_SUSPENDED_CPUS, cpus)); -} - -int -vm_activate_cpu(struct vmctx *ctx, int vcpu) -{ - struct vm_activate_cpu ac; - int error; - - bzero(&ac, sizeof(struct vm_activate_cpu)); - ac.vcpuid = vcpu; - error = ioctl(ctx->fd, VM_ACTIVATE_CPU, &ac); - return (error); -} - -int -vm_get_intinfo(struct vmctx *ctx, int vcpu, uint64_t *info1, uint64_t *info2) -{ - struct vm_intinfo vmii; - int error; - - bzero(&vmii, sizeof(struct vm_intinfo)); - vmii.vcpuid = vcpu; - error = ioctl(ctx->fd, VM_GET_INTINFO, &vmii); - if (error == 0) { - *info1 = vmii.info1; - *info2 = vmii.info2; - } - return (error); -} - -int -vm_set_intinfo(struct vmctx *ctx, int vcpu, uint64_t info1) -{ - struct vm_intinfo vmii; - int error; - - bzero(&vmii, sizeof(struct vm_intinfo)); - vmii.vcpuid = vcpu; - vmii.info1 = info1; - error = ioctl(ctx->fd, VM_SET_INTINFO, &vmii); - return (error); -} - -int -vm_rtc_write(struct vmctx *ctx, int offset, uint8_t value) -{ - struct vm_rtc_data rtcdata; - int error; - - bzero(&rtcdata, sizeof(struct vm_rtc_data)); - rtcdata.offset = offset; - rtcdata.value = value; - error = ioctl(ctx->fd, VM_RTC_WRITE, &rtcdata); - return (error); -} - -int -vm_rtc_read(struct vmctx *ctx, int offset, uint8_t *retval) -{ - struct vm_rtc_data rtcdata; - int error; - - bzero(&rtcdata, sizeof(struct vm_rtc_data)); - rtcdata.offset = offset; - error = ioctl(ctx->fd, VM_RTC_READ, &rtcdata); - if (error == 0) - *retval = rtcdata.value; - return (error); -} - -int -vm_rtc_settime(struct vmctx *ctx, time_t secs) -{ - struct vm_rtc_time rtctime; - int error; - - bzero(&rtctime, sizeof(struct vm_rtc_time)); - rtctime.secs = secs; - error = ioctl(ctx->fd, VM_RTC_SETTIME, &rtctime); - return (error); -} - -int -vm_rtc_gettime(struct vmctx *ctx, time_t *secs) -{ - struct vm_rtc_time rtctime; - int error; - - bzero(&rtctime, sizeof(struct vm_rtc_time)); - error = ioctl(ctx->fd, VM_RTC_GETTIME, &rtctime); - if (error == 0) - *secs = rtctime.secs; - return (error); -} - -int -vm_restart_instruction(void *arg, int vcpu) -{ - struct vmctx *ctx = arg; - - return (ioctl(ctx->fd, VM_RESTART_INSTRUCTION, &vcpu)); -} diff --git a/libvmmapi/vmmapi.h b/libvmmapi/vmmapi.h deleted file mode 100644 index d3ecdc4..0000000 --- a/libvmmapi/vmmapi.h +++ /dev/null @@ -1,173 +0,0 @@ -/*- - * Copyright (c) 2011 NetApp, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY NETAPP, INC ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL NETAPP, INC OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD$ - */ - -#ifndef _VMMAPI_H_ -#define _VMMAPI_H_ - -#include -#include - -/* - * API version for out-of-tree consumers like grub-bhyve for making compile - * time decisions. - */ -#define VMMAPI_VERSION 0101 /* 2 digit major followed by 2 digit minor */ - -struct iovec; -struct vmctx; -enum x2apic_state; - -/* - * Different styles of mapping the memory assigned to a VM into the address - * space of the controlling process. - */ -enum vm_mmap_style { - VM_MMAP_NONE, /* no mapping */ - VM_MMAP_ALL, /* fully and statically mapped */ - VM_MMAP_SPARSE, /* mappings created on-demand */ -}; - -#define VM_MEM_F_INCORE 0x01 /* include guest memory in core file */ - -int vm_create(const char *name); -struct vmctx *vm_open(const char *name); -void vm_destroy(struct vmctx *ctx); -int vm_parse_memsize(const char *optarg, size_t *memsize); -int vm_get_memory_seg(struct vmctx *ctx, vm_paddr_t gpa, size_t *ret_len, - int *wired); -int vm_setup_memory(struct vmctx *ctx, size_t len, enum vm_mmap_style s); -void *vm_map_gpa(struct vmctx *ctx, vm_paddr_t gaddr, size_t len); -int vm_get_gpa_pmap(struct vmctx *, uint64_t gpa, uint64_t *pte, int *num); -int vm_gla2gpa(struct vmctx *, int vcpuid, struct vm_guest_paging *paging, - uint64_t gla, int prot, uint64_t *gpa, int *fault); -uint32_t vm_get_lowmem_limit(struct vmctx *ctx); -void vm_set_lowmem_limit(struct vmctx *ctx, uint32_t limit); -void vm_set_memflags(struct vmctx *ctx, int flags); -size_t vm_get_lowmem_size(struct vmctx *ctx); -size_t vm_get_highmem_size(struct vmctx *ctx); -int vm_set_desc(struct vmctx *ctx, int vcpu, int reg, - uint64_t base, uint32_t limit, uint32_t access); -int vm_get_desc(struct vmctx *ctx, int vcpu, int reg, - uint64_t *base, uint32_t *limit, uint32_t *access); -int vm_get_seg_desc(struct vmctx *ctx, int vcpu, int reg, - struct seg_desc *seg_desc); -int vm_set_register(struct vmctx *ctx, int vcpu, int reg, uint64_t val); -int vm_get_register(struct vmctx *ctx, int vcpu, int reg, uint64_t *retval); -int vm_run(struct vmctx *ctx, int vcpu, struct vm_exit *ret_vmexit); -int vm_suspend(struct vmctx *ctx, enum vm_suspend_how how); -int vm_reinit(struct vmctx *ctx); -int vm_apicid2vcpu(struct vmctx *ctx, int apicid); -int vm_inject_exception(struct vmctx *ctx, int vcpu, int vector, - int errcode_valid, uint32_t errcode, int restart_instruction); -int vm_lapic_irq(struct vmctx *ctx, int vcpu, int vector); -int vm_lapic_local_irq(struct vmctx *ctx, int vcpu, int vector); -int vm_lapic_msi(struct vmctx *ctx, uint64_t addr, uint64_t msg); -int vm_ioapic_assert_irq(struct vmctx *ctx, int irq); -int vm_ioapic_deassert_irq(struct vmctx *ctx, int irq); -int vm_ioapic_pulse_irq(struct vmctx *ctx, int irq); -int vm_ioapic_pincount(struct vmctx *ctx, int *pincount); -int vm_isa_assert_irq(struct vmctx *ctx, int atpic_irq, int ioapic_irq); -int vm_isa_deassert_irq(struct vmctx *ctx, int atpic_irq, int ioapic_irq); -int vm_isa_pulse_irq(struct vmctx *ctx, int atpic_irq, int ioapic_irq); -int vm_isa_set_irq_trigger(struct vmctx *ctx, int atpic_irq, - enum vm_intr_trigger trigger); -int vm_inject_nmi(struct vmctx *ctx, int vcpu); -int vm_capability_name2type(const char *capname); -const char *vm_capability_type2name(int type); -int vm_get_capability(struct vmctx *ctx, int vcpu, enum vm_cap_type cap, - int *retval); -int vm_set_capability(struct vmctx *ctx, int vcpu, enum vm_cap_type cap, - int val); -int vm_assign_pptdev(struct vmctx *ctx, int bus, int slot, int func); -int vm_unassign_pptdev(struct vmctx *ctx, int bus, int slot, int func); -int vm_map_pptdev_mmio(struct vmctx *ctx, int bus, int slot, int func, - vm_paddr_t gpa, size_t len, vm_paddr_t hpa); -int vm_setup_pptdev_msi(struct vmctx *ctx, int vcpu, int bus, int slot, - int func, uint64_t addr, uint64_t msg, int numvec); -int vm_setup_pptdev_msix(struct vmctx *ctx, int vcpu, int bus, int slot, - int func, int idx, uint64_t addr, uint64_t msg, - uint32_t vector_control); - -int vm_get_intinfo(struct vmctx *ctx, int vcpu, uint64_t *i1, uint64_t *i2); -int vm_set_intinfo(struct vmctx *ctx, int vcpu, uint64_t exit_intinfo); - -/* - * Return a pointer to the statistics buffer. Note that this is not MT-safe. - */ -uint64_t *vm_get_stats(struct vmctx *ctx, int vcpu, struct timeval *ret_tv, - int *ret_entries); -const char *vm_get_stat_desc(struct vmctx *ctx, int index); - -int vm_get_x2apic_state(struct vmctx *ctx, int vcpu, enum x2apic_state *s); -int vm_set_x2apic_state(struct vmctx *ctx, int vcpu, enum x2apic_state s); - -int vm_get_hpet_capabilities(struct vmctx *ctx, uint32_t *capabilities); - -/* - * Translate the GLA range [gla,gla+len) into GPA segments in 'iov'. - * The 'iovcnt' should be big enough to accomodate all GPA segments. - * - * retval fault Interpretation - * 0 0 Success - * 0 1 An exception was injected into the guest - * EFAULT N/A Error - */ -int vm_copy_setup(struct vmctx *ctx, int vcpu, struct vm_guest_paging *pg, - uint64_t gla, size_t len, int prot, struct iovec *iov, int iovcnt, - int *fault); -void vm_copyin(struct vmctx *ctx, int vcpu, struct iovec *guest_iov, - void *host_dst, size_t len); -void vm_copyout(struct vmctx *ctx, int vcpu, const void *host_src, - struct iovec *guest_iov, size_t len); -void vm_copy_teardown(struct vmctx *ctx, int vcpu, struct iovec *iov, - int iovcnt); - -/* RTC */ -int vm_rtc_write(struct vmctx *ctx, int offset, uint8_t value); -int vm_rtc_read(struct vmctx *ctx, int offset, uint8_t *retval); -int vm_rtc_settime(struct vmctx *ctx, time_t secs); -int vm_rtc_gettime(struct vmctx *ctx, time_t *secs); - -/* Reset vcpu register state */ -int vcpu_reset(struct vmctx *ctx, int vcpu); - -int vm_active_cpus(struct vmctx *ctx, cpuset_t *cpus); -int vm_suspended_cpus(struct vmctx *ctx, cpuset_t *cpus); -int vm_activate_cpu(struct vmctx *ctx, int vcpu); - -/* - * FreeBSD specific APIs - */ -int vm_setup_freebsd_registers(struct vmctx *ctx, int vcpu, - uint64_t rip, uint64_t cr3, uint64_t gdtbase, - uint64_t rsp); -int vm_setup_freebsd_registers_i386(struct vmctx *vmctx, int vcpu, - uint32_t eip, uint32_t gdtbase, - uint32_t esp); -void vm_setup_freebsd_gdt(uint64_t *gdtr); -#endif /* _VMMAPI_H_ */ diff --git a/libvmmapi/vmmapi_freebsd.c b/libvmmapi/vmmapi_freebsd.c deleted file mode 100644 index d801184..0000000 --- a/libvmmapi/vmmapi_freebsd.c +++ /dev/null @@ -1,345 +0,0 @@ -/*- - * Copyright (c) 2011 NetApp, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY NETAPP, INC ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL NETAPP, INC OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD$ - */ - -#include -__FBSDID("$FreeBSD$"); - -#include - -#include -#include -#include - -#include -#include - -#include "vmmapi.h" - -#define I386_TSS_SIZE 104 - -#define DESC_PRESENT 0x00000080 -#define DESC_LONGMODE 0x00002000 -#define DESC_DEF32 0x00004000 -#define DESC_GRAN 0x00008000 -#define DESC_UNUSABLE 0x00010000 - -#define GUEST_NULL_SEL 0 -#define GUEST_CODE_SEL 1 -#define GUEST_DATA_SEL 2 -#define GUEST_TSS_SEL 3 -#define GUEST_GDTR_LIMIT64 (3 * 8 - 1) - -static struct segment_descriptor i386_gdt[] = { - {}, /* NULL */ - { .sd_lolimit = 0xffff, .sd_type = SDT_MEMER, /* CODE */ - .sd_p = 1, .sd_hilimit = 0xf, .sd_def32 = 1, .sd_gran = 1 }, - { .sd_lolimit = 0xffff, .sd_type = SDT_MEMRW, /* DATA */ - .sd_p = 1, .sd_hilimit = 0xf, .sd_def32 = 1, .sd_gran = 1 }, - { .sd_lolimit = I386_TSS_SIZE - 1, /* TSS */ - .sd_type = SDT_SYS386TSS, .sd_p = 1 } -}; - -/* - * Setup the 'vcpu' register set such that it will begin execution at - * 'eip' in flat mode. - */ -int -vm_setup_freebsd_registers_i386(struct vmctx *vmctx, int vcpu, uint32_t eip, - uint32_t gdtbase, uint32_t esp) -{ - uint64_t cr0, rflags, desc_base; - uint32_t desc_access, desc_limit, tssbase; - uint16_t gsel; - struct segment_descriptor *gdt; - int error, tmp; - - /* A 32-bit guest requires unrestricted mode. */ - error = vm_get_capability(vmctx, vcpu, VM_CAP_UNRESTRICTED_GUEST, &tmp); - if (error) - goto done; - error = vm_set_capability(vmctx, vcpu, VM_CAP_UNRESTRICTED_GUEST, 1); - if (error) - goto done; - - cr0 = CR0_PE | CR0_NE; - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_CR0, cr0)) != 0) - goto done; - - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_CR4, 0)) != 0) - goto done; - - /* - * Forcing EFER to 0 causes bhyve to clear the "IA-32e guest - * mode" entry control. - */ - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_EFER, 0))) - goto done; - - gdt = vm_map_gpa(vmctx, gdtbase, 0x1000); - if (gdt == NULL) - return (EFAULT); - memcpy(gdt, i386_gdt, sizeof(i386_gdt)); - desc_base = gdtbase; - desc_limit = sizeof(i386_gdt) - 1; - error = vm_set_desc(vmctx, vcpu, VM_REG_GUEST_GDTR, - desc_base, desc_limit, 0); - if (error != 0) - goto done; - - /* Place the TSS one page above the GDT. */ - tssbase = gdtbase + 0x1000; - gdt[3].sd_lobase = tssbase; - - rflags = 0x2; - error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_RFLAGS, rflags); - if (error) - goto done; - - desc_base = 0; - desc_limit = 0xffffffff; - desc_access = DESC_GRAN | DESC_DEF32 | DESC_PRESENT | SDT_MEMERA; - error = vm_set_desc(vmctx, vcpu, VM_REG_GUEST_CS, - desc_base, desc_limit, desc_access); - - desc_access = DESC_GRAN | DESC_DEF32 | DESC_PRESENT | SDT_MEMRWA; - error = vm_set_desc(vmctx, vcpu, VM_REG_GUEST_DS, - desc_base, desc_limit, desc_access); - if (error) - goto done; - - error = vm_set_desc(vmctx, vcpu, VM_REG_GUEST_ES, - desc_base, desc_limit, desc_access); - if (error) - goto done; - - error = vm_set_desc(vmctx, vcpu, VM_REG_GUEST_FS, - desc_base, desc_limit, desc_access); - if (error) - goto done; - - error = vm_set_desc(vmctx, vcpu, VM_REG_GUEST_GS, - desc_base, desc_limit, desc_access); - if (error) - goto done; - - error = vm_set_desc(vmctx, vcpu, VM_REG_GUEST_SS, - desc_base, desc_limit, desc_access); - if (error) - goto done; - - desc_base = tssbase; - desc_limit = I386_TSS_SIZE - 1; - desc_access = DESC_PRESENT | SDT_SYS386BSY; - error = vm_set_desc(vmctx, vcpu, VM_REG_GUEST_TR, - desc_base, desc_limit, desc_access); - if (error) - goto done; - - - error = vm_set_desc(vmctx, vcpu, VM_REG_GUEST_LDTR, 0, 0, - DESC_UNUSABLE); - if (error) - goto done; - - gsel = GSEL(GUEST_CODE_SEL, SEL_KPL); - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_CS, gsel)) != 0) - goto done; - - gsel = GSEL(GUEST_DATA_SEL, SEL_KPL); - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_DS, gsel)) != 0) - goto done; - - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_ES, gsel)) != 0) - goto done; - - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_FS, gsel)) != 0) - goto done; - - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_GS, gsel)) != 0) - goto done; - - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_SS, gsel)) != 0) - goto done; - - gsel = GSEL(GUEST_TSS_SEL, SEL_KPL); - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_TR, gsel)) != 0) - goto done; - - /* LDTR is pointing to the null selector */ - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_LDTR, 0)) != 0) - goto done; - - /* entry point */ - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_RIP, eip)) != 0) - goto done; - - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_RSP, esp)) != 0) - goto done; - - error = 0; -done: - return (error); -} - -void -vm_setup_freebsd_gdt(uint64_t *gdtr) -{ - gdtr[GUEST_NULL_SEL] = 0; - gdtr[GUEST_CODE_SEL] = 0x0020980000000000; - gdtr[GUEST_DATA_SEL] = 0x0000900000000000; -} - -/* - * Setup the 'vcpu' register set such that it will begin execution at - * 'rip' in long mode. - */ -int -vm_setup_freebsd_registers(struct vmctx *vmctx, int vcpu, - uint64_t rip, uint64_t cr3, uint64_t gdtbase, - uint64_t rsp) -{ - int error; - uint64_t cr0, cr4, efer, rflags, desc_base; - uint32_t desc_access, desc_limit; - uint16_t gsel; - - cr0 = CR0_PE | CR0_PG | CR0_NE; - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_CR0, cr0)) != 0) - goto done; - - cr4 = CR4_PAE; - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_CR4, cr4)) != 0) - goto done; - - efer = EFER_LME | EFER_LMA; - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_EFER, efer))) - goto done; - - rflags = 0x2; - error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_RFLAGS, rflags); - if (error) - goto done; - - desc_base = 0; - desc_limit = 0; - desc_access = 0x0000209B; - error = vm_set_desc(vmctx, vcpu, VM_REG_GUEST_CS, - desc_base, desc_limit, desc_access); - if (error) - goto done; - - desc_access = 0x00000093; - error = vm_set_desc(vmctx, vcpu, VM_REG_GUEST_DS, - desc_base, desc_limit, desc_access); - if (error) - goto done; - - error = vm_set_desc(vmctx, vcpu, VM_REG_GUEST_ES, - desc_base, desc_limit, desc_access); - if (error) - goto done; - - error = vm_set_desc(vmctx, vcpu, VM_REG_GUEST_FS, - desc_base, desc_limit, desc_access); - if (error) - goto done; - - error = vm_set_desc(vmctx, vcpu, VM_REG_GUEST_GS, - desc_base, desc_limit, desc_access); - if (error) - goto done; - - error = vm_set_desc(vmctx, vcpu, VM_REG_GUEST_SS, - desc_base, desc_limit, desc_access); - if (error) - goto done; - - /* - * XXX TR is pointing to null selector even though we set the - * TSS segment to be usable with a base address and limit of 0. - */ - desc_access = 0x0000008b; - error = vm_set_desc(vmctx, vcpu, VM_REG_GUEST_TR, 0, 0, desc_access); - if (error) - goto done; - - error = vm_set_desc(vmctx, vcpu, VM_REG_GUEST_LDTR, 0, 0, - DESC_UNUSABLE); - if (error) - goto done; - - gsel = GSEL(GUEST_CODE_SEL, SEL_KPL); - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_CS, gsel)) != 0) - goto done; - - gsel = GSEL(GUEST_DATA_SEL, SEL_KPL); - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_DS, gsel)) != 0) - goto done; - - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_ES, gsel)) != 0) - goto done; - - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_FS, gsel)) != 0) - goto done; - - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_GS, gsel)) != 0) - goto done; - - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_SS, gsel)) != 0) - goto done; - - /* XXX TR is pointing to the null selector */ - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_TR, 0)) != 0) - goto done; - - /* LDTR is pointing to the null selector */ - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_LDTR, 0)) != 0) - goto done; - - /* entry point */ - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_RIP, rip)) != 0) - goto done; - - /* page table base */ - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_CR3, cr3)) != 0) - goto done; - - desc_base = gdtbase; - desc_limit = GUEST_GDTR_LIMIT64; - error = vm_set_desc(vmctx, vcpu, VM_REG_GUEST_GDTR, - desc_base, desc_limit, 0); - if (error != 0) - goto done; - - if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_RSP, rsp)) != 0) - goto done; - - error = 0; -done: - return (error); -} diff --git a/bhyve/acpi.c b/src/acpi.c similarity index 95% rename from bhyve/acpi.c rename to src/acpi.c index a9dd1cc..cd52123 100644 --- a/bhyve/acpi.c +++ b/src/acpi.c @@ -1,5 +1,6 @@ /*- * Copyright (c) 2012 NetApp, Inc. + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -50,26 +51,20 @@ * DSDT -> 0xf2800 (variable - can go up to 0x100000) */ -#include -__FBSDID("$FreeBSD$"); - -#include -#include -#include - -#include +#include #include #include -#include -#include #include - -#include -#include - -#include "bhyverun.h" -#include "acpi.h" -#include "pci_emul.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include /* * Define the base address of the ACPI tables, and the offsets to @@ -109,11 +104,14 @@ static FILE *dsdt_fp; static int dsdt_indent_level; static int dsdt_error; +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" struct basl_fio { int fd; - FILE *fp; - char f_name[MAXPATHLEN]; + FILE *fp; + char f_name[MAXPATHLEN]; }; +#pragma clang diagnostic pop #define EFPRINTF(...) \ err = fprintf(__VA_ARGS__); if (err < 0) goto err_exit; @@ -613,7 +611,7 @@ basl_fwrite_mcfg(FILE *fp) EFPRINTF(fp, "[0008]\t\tReserved : 0\n"); EFPRINTF(fp, "\n"); - EFPRINTF(fp, "[0008]\t\tBase Address : %016lX\n", pci_ecfg_base()); + EFPRINTF(fp, "[0008]\t\tBase Address : %016llx\n", pci_ecfg_base()); EFPRINTF(fp, "[0002]\t\tSegment Group: 0000\n"); EFPRINTF(fp, "[0001]\t\tStart Bus: 00\n"); EFPRINTF(fp, "[0001]\t\tEnd Bus: FF\n"); @@ -657,6 +655,8 @@ err_exit: return (errno); } +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wformat-nonliteral" /* * Helper routines for writing to the DSDT from other modules. */ @@ -666,6 +666,8 @@ dsdt_line(const char *fmt, ...) va_list ap; int err; + err = 0; + if (dsdt_error != 0) return; @@ -683,6 +685,7 @@ dsdt_line(const char *fmt, ...) err_exit: dsdt_error = errno; } +#pragma clang diagnostic pop void dsdt_indent(int levels) @@ -838,13 +841,12 @@ basl_start(struct basl_fio *in, struct basl_fio *out) static void basl_end(struct basl_fio *in, struct basl_fio *out) { - basl_close(in); basl_close(out); } static int -basl_load(struct vmctx *ctx, int fd, uint64_t off) +basl_load(int fd, uint64_t off) { struct stat sb; void *gaddr; @@ -852,18 +854,20 @@ basl_load(struct vmctx *ctx, int fd, uint64_t off) if (fstat(fd, &sb) < 0) return (errno); - gaddr = paddr_guest2host(ctx, basl_acpi_base + off, sb.st_size); + gaddr = paddr_guest2host(basl_acpi_base + off, ((size_t) sb.st_size)); if (gaddr == NULL) return (EFAULT); - if (read(fd, gaddr, sb.st_size) < 0) + if (read(fd, gaddr, ((size_t) sb.st_size)) < 0) return (errno); return (0); } +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wformat-nonliteral" static int -basl_compile(struct vmctx *ctx, int (*fwrite_section)(FILE *), uint64_t offset) +basl_compile(int (*fwrite_section)(FILE *), uint64_t offset) { struct basl_fio io[2]; static char iaslbuf[3*MAXPATHLEN + 10]; @@ -897,7 +901,7 @@ basl_compile(struct vmctx *ctx, int (*fwrite_section)(FILE *), uint64_t offset) * Copy the aml output file into guest * memory at the specified location */ - err = basl_load(ctx, io[1].fd, offset); + err = basl_load(io[1].fd, offset); } } basl_end(&io[0], &io[1]); @@ -905,6 +909,7 @@ basl_compile(struct vmctx *ctx, int (*fwrite_section)(FILE *), uint64_t offset) return (err); } +#pragma clang diagnostic pop static int basl_make_templates(void) @@ -923,9 +928,9 @@ basl_make_templates(void) tmpdir = _PATH_TMP; } - len = strlen(tmpdir); + len = (int) strlen(tmpdir); - if ((len + sizeof(BHYVE_ASL_TEMPLATE) + 1) < MAXPATHLEN) { + if ((((unsigned long) len) + sizeof(BHYVE_ASL_TEMPLATE) + 1) < MAXPATHLEN) { strcpy(basl_template, tmpdir); while (len > 0 && basl_template[len - 1] == '/') len--; @@ -938,12 +943,12 @@ basl_make_templates(void) /* * len has been intialized (and maybe adjusted) above */ - if ((len + sizeof(BHYVE_ASL_TEMPLATE) + 1 + + if ((((unsigned long) len) + sizeof(BHYVE_ASL_TEMPLATE) + 1 + sizeof(BHYVE_ASL_SUFFIX)) < MAXPATHLEN) { strcpy(basl_stemplate, tmpdir); basl_stemplate[len] = '/'; strcpy(&basl_stemplate[len + 1], BHYVE_ASL_TEMPLATE); - len = strlen(basl_stemplate); + len = (int) strlen(basl_stemplate); strcpy(&basl_stemplate[len], BHYVE_ASL_SUFFIX); } else err = E2BIG; @@ -966,18 +971,18 @@ static struct { { basl_fwrite_mcfg, MCFG_OFFSET }, { basl_fwrite_facs, FACS_OFFSET }, { basl_fwrite_dsdt, DSDT_OFFSET }, - { NULL } + { NULL , 0} }; int -acpi_build(struct vmctx *ctx, int ncpu) +acpi_build(int ncpu) { int err; int i; basl_ncpu = ncpu; - err = vm_get_hpet_capabilities(ctx, &hpet_capabilities); + err = xh_vm_get_hpet_capabilities(&hpet_capabilities); if (err != 0) return (err); @@ -1003,7 +1008,7 @@ acpi_build(struct vmctx *ctx, int ncpu) * copying them into guest memory */ while (!err && basl_ftables[i].wsect != NULL) { - err = basl_compile(ctx, basl_ftables[i].wsect, + err = basl_compile(basl_ftables[i].wsect, basl_ftables[i].offset); i++; } diff --git a/bhyve/atkbdc.c b/src/atkbdc.c similarity index 75% rename from bhyve/atkbdc.c rename to src/atkbdc.c index 930b7af..e8df7f9 100644 --- a/bhyve/atkbdc.c +++ b/src/atkbdc.c @@ -1,5 +1,6 @@ /*- * Copyright (c) 2014 Tycho Nightingale + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -24,32 +25,23 @@ * SUCH DAMAGE. */ -#include -__FBSDID("$FreeBSD$"); - -#include - -#include - -#include - +#include #include #include #include +#include +#include +#include +#include -#include "inout.h" -#include "pci_lpc.h" - -#define KBD_DATA_PORT 0x60 - -#define KBD_STS_CTL_PORT 0x64 -#define KBD_SYS_FLAG 0x4 - -#define KBDC_RESET 0xfe +#define KBD_DATA_PORT 0x60 +#define KBD_STS_CTL_PORT 0x64 +#define KBD_SYS_FLAG 0x4 +#define KBDC_RESET 0xfe static int -atkbdc_data_handler(struct vmctx *ctx, int vcpu, int in, int port, int bytes, - uint32_t *eax, void *arg) +atkbdc_data_handler(UNUSED int vcpu, UNUSED int in, UNUSED int port, int bytes, + uint32_t *eax, UNUSED void *arg) { if (bytes != 1) return (-1); @@ -60,8 +52,8 @@ atkbdc_data_handler(struct vmctx *ctx, int vcpu, int in, int port, int bytes, } static int -atkbdc_sts_ctl_handler(struct vmctx *ctx, int vcpu, int in, int port, - int bytes, uint32_t *eax, void *arg) +atkbdc_sts_ctl_handler(UNUSED int vcpu, int in, UNUSED int port, int bytes, + uint32_t *eax, UNUSED void *arg) { int error, retval; @@ -74,7 +66,7 @@ atkbdc_sts_ctl_handler(struct vmctx *ctx, int vcpu, int in, int port, } else { switch (*eax) { case KBDC_RESET: /* Pulse "reset" line. */ - error = vm_suspend(ctx, VM_SUSPEND_RESET); + error = xh_vm_suspend(VM_SUSPEND_RESET); assert(error == 0 || errno == EALREADY); break; } @@ -85,6 +77,5 @@ atkbdc_sts_ctl_handler(struct vmctx *ctx, int vcpu, int in, int port, INOUT_PORT(atkdbc, KBD_DATA_PORT, IOPORT_F_INOUT, atkbdc_data_handler); SYSRES_IO(KBD_DATA_PORT, 1); -INOUT_PORT(atkbdc, KBD_STS_CTL_PORT, IOPORT_F_INOUT, - atkbdc_sts_ctl_handler); +INOUT_PORT(atkbdc, KBD_STS_CTL_PORT, IOPORT_F_INOUT, atkbdc_sts_ctl_handler); SYSRES_IO(KBD_STS_CTL_PORT, 1); diff --git a/bhyve/block_if.c b/src/block_if.c similarity index 73% rename from bhyve/block_if.c rename to src/block_if.c index ef8e11e..4d5df95 100644 --- a/bhyve/block_if.c +++ b/src/block_if.c @@ -1,5 +1,6 @@ /*- * Copyright (c) 2013 Peter Grehan + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,9 +27,6 @@ * $FreeBSD$ */ -#include -__FBSDID("$FreeBSD$"); - #include #include #include @@ -42,20 +40,25 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include -#include +#include +#include +#include +#include -#include "bhyverun.h" -#include "mevent.h" -#include "block_if.h" +#define BLOCKIF_SIG 0xb109b109 +/* xhyve: FIXME + * + * // #define BLOCKIF_NUMTHR 8 + * + * OS X does not support preadv/pwritev, we need to serialize reads and writes + * for the time being until we find a better solution. + */ +#define BLOCKIF_NUMTHR 1 -#define BLOCKIF_SIG 0xb109b109 - -#define BLOCKIF_NUMTHR 8 -#define BLOCKIF_MAXREQ (64 + BLOCKIF_NUMTHR) +#define BLOCKIF_MAXREQ (64 + BLOCKIF_NUMTHR) enum blockop { BOP_READ, @@ -72,33 +75,34 @@ enum blockstat { BST_DONE }; +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" struct blockif_elem { TAILQ_ENTRY(blockif_elem) be_link; - struct blockif_req *be_req; - enum blockop be_op; - enum blockstat be_status; - pthread_t be_tid; - off_t be_block; + struct blockif_req *be_req; + enum blockop be_op; + enum blockstat be_status; + pthread_t be_tid; + off_t be_block; }; struct blockif_ctxt { - int bc_magic; - int bc_fd; - int bc_ischr; - int bc_isgeom; - int bc_candelete; - int bc_rdonly; - off_t bc_size; - int bc_sectsz; - int bc_psectsz; - int bc_psectoff; - int bc_closing; - pthread_t bc_btid[BLOCKIF_NUMTHR]; - pthread_mutex_t bc_mtx; - pthread_cond_t bc_cond; - + int bc_magic; + int bc_fd; + int bc_ischr; + int bc_isgeom; + int bc_candelete; + int bc_rdonly; + off_t bc_size; + int bc_sectsz; + int bc_psectsz; + int bc_psectoff; + int bc_closing; + pthread_t bc_btid[BLOCKIF_NUMTHR]; + pthread_mutex_t bc_mtx; + pthread_cond_t bc_cond; /* Request elements and free/pending/busy queues */ - TAILQ_HEAD(, blockif_elem) bc_freeq; + TAILQ_HEAD(, blockif_elem) bc_freeq; TAILQ_HEAD(, blockif_elem) bc_pendq; TAILQ_HEAD(, blockif_elem) bc_busyq; struct blockif_elem bc_reqs[BLOCKIF_MAXREQ]; @@ -107,14 +111,36 @@ struct blockif_ctxt { static pthread_once_t blockif_once = PTHREAD_ONCE_INIT; struct blockif_sig_elem { - pthread_mutex_t bse_mtx; - pthread_cond_t bse_cond; - int bse_pending; - struct blockif_sig_elem *bse_next; + pthread_mutex_t bse_mtx; + pthread_cond_t bse_cond; + int bse_pending; + struct blockif_sig_elem *bse_next; }; static struct blockif_sig_elem *blockif_bse_head; +#pragma clang diagnostic pop + +static ssize_t +preadv(int fd, const struct iovec *iov, int iovcnt, off_t offset) +{ + off_t res; + + res = lseek(fd, offset, SEEK_SET); + assert(res == offset); + return readv(fd, iov, iovcnt); +} + +static ssize_t +pwritev(int fd, const struct iovec *iov, int iovcnt, off_t offset) +{ + off_t res; + + res = lseek(fd, offset, SEEK_SET); + assert(res == offset); + return writev(fd, iov, iovcnt); +} + static int blockif_enqueue(struct blockif_ctxt *bc, struct blockif_req *breq, enum blockop op) @@ -137,7 +163,7 @@ blockif_enqueue(struct blockif_ctxt *bc, struct blockif_req *breq, for (i = 0; i < breq->br_iovcnt; i++) off += breq->br_iov[i].iov_len; break; - default: + case BOP_FLUSH: off = OFF_MAX; } be->be_block = off; @@ -202,7 +228,7 @@ static void blockif_proc(struct blockif_ctxt *bc, struct blockif_elem *be, uint8_t *buf) { struct blockif_req *br; - off_t arg[2]; + // off_t arg[2]; ssize_t clen, len, off, boff, voff; int i, err; @@ -224,18 +250,18 @@ blockif_proc(struct blockif_ctxt *bc, struct blockif_elem *be, uint8_t *buf) off = voff = 0; while (br->br_resid > 0) { len = MIN(br->br_resid, MAXPHYS); - if (pread(bc->bc_fd, buf, len, br->br_offset + - off) < 0) { + if (pread(bc->bc_fd, buf, ((size_t) len), br->br_offset + off) < 0) + { err = errno; break; } boff = 0; do { - clen = MIN(len - boff, br->br_iov[i].iov_len - - voff); - memcpy(br->br_iov[i].iov_base + voff, - buf + boff, clen); - if (clen < br->br_iov[i].iov_len - voff) + clen = MIN((len - boff), + (((ssize_t) br->br_iov[i].iov_len) - voff)); + memcpy(((void *) (((uintptr_t) br->br_iov[i].iov_base) + + ((size_t) voff))), buf + boff, clen); + if (clen < (((ssize_t) br->br_iov[i].iov_len) - voff)) voff += clen; else { i++; @@ -266,11 +292,12 @@ blockif_proc(struct blockif_ctxt *bc, struct blockif_elem *be, uint8_t *buf) len = MIN(br->br_resid, MAXPHYS); boff = 0; do { - clen = MIN(len - boff, br->br_iov[i].iov_len - - voff); - memcpy(buf + boff, - br->br_iov[i].iov_base + voff, clen); - if (clen < br->br_iov[i].iov_len - voff) + clen = MIN((len - boff), + (((ssize_t) br->br_iov[i].iov_len) - voff)); + memcpy((buf + boff), + ((void *) (((uintptr_t) br->br_iov[i].iov_base) + + ((size_t) voff))), clen); + if (clen < (((ssize_t) br->br_iov[i].iov_len) - voff)) voff += clen; else { i++; @@ -278,7 +305,7 @@ blockif_proc(struct blockif_ctxt *bc, struct blockif_elem *be, uint8_t *buf) } boff += clen; } while (boff < len); - if (pwrite(bc->bc_fd, buf, len, br->br_offset + + if (pwrite(bc->bc_fd, buf, ((size_t) len), br->br_offset + off) < 0) { err = errno; break; @@ -289,28 +316,27 @@ blockif_proc(struct blockif_ctxt *bc, struct blockif_elem *be, uint8_t *buf) break; case BOP_FLUSH: if (bc->bc_ischr) { - if (ioctl(bc->bc_fd, DIOCGFLUSH)) + if (ioctl(bc->bc_fd, DKIOCSYNCHRONIZECACHE)) err = errno; } else if (fsync(bc->bc_fd)) err = errno; break; case BOP_DELETE: - if (!bc->bc_candelete) + if (!bc->bc_candelete) { err = EOPNOTSUPP; - else if (bc->bc_rdonly) - err = EROFS; - else if (bc->bc_ischr) { - arg[0] = br->br_offset; - arg[1] = br->br_resid; - if (ioctl(bc->bc_fd, DIOCGDELETE, arg)) - err = errno; - else - br->br_resid = 0; - } else + // } else if (bc->bc_rdonly) { + // err = EROFS; + // } else if (bc->bc_ischr) { + // arg[0] = br->br_offset; + // arg[1] = br->br_resid; + // if (ioctl(bc->bc_fd, DIOCGDELETE, arg)) { + // err = errno; + // } else { + // br->br_resid = 0; + // } + } else { err = EOPNOTSUPP; - break; - default: - err = EINVAL; + } break; } @@ -356,7 +382,8 @@ blockif_thr(void *arg) } static void -blockif_sigcont_handler(int signal, enum ev_type type, void *arg) +blockif_sigcont_handler(UNUSED int signal, UNUSED enum ev_type type, + UNUSED void *arg) { struct blockif_sig_elem *bse; @@ -388,14 +415,13 @@ blockif_init(void) } struct blockif_ctxt * -blockif_open(const char *optstr, const char *ident) +blockif_open(const char *optstr, UNUSED const char *ident) { - char tname[MAXCOMLEN + 1]; - char name[MAXPATHLEN]; + // char name[MAXPATHLEN]; char *nopt, *xopts, *cp; struct blockif_ctxt *bc; struct stat sbuf; - struct diocgattr_arg arg; + // struct diocgattr_arg arg; off_t size, psectsz, psectoff; int extra, fd, i, sectsz; int nocache, sync, ro, candelete, geom, ssopt, pssopt; @@ -408,6 +434,7 @@ blockif_open(const char *optstr, const char *ident) sync = 0; ro = 0; + pssopt = 0; /* * The first element in the optstring is always a pathname. * Optional elements follow @@ -434,8 +461,11 @@ blockif_open(const char *optstr, const char *ident) } extra = 0; - if (nocache) - extra |= O_DIRECT; + if (nocache) { + perror("xhyve: nocache support unimplemented"); + goto err; + // extra |= O_DIRECT; + } if (sync) extra |= O_SYNC; @@ -451,34 +481,37 @@ blockif_open(const char *optstr, const char *ident) goto err; } - if (fstat(fd, &sbuf) < 0) { - perror("Could not stat backing file"); + if (fstat(fd, &sbuf) < 0) { + perror("Could not stat backing file"); goto err; - } + } - /* + /* * Deal with raw devices */ - size = sbuf.st_size; + size = sbuf.st_size; sectsz = DEV_BSIZE; psectsz = psectoff = 0; candelete = geom = 0; if (S_ISCHR(sbuf.st_mode)) { - if (ioctl(fd, DIOCGMEDIASIZE, &size) < 0 || - ioctl(fd, DIOCGSECTORSIZE, §sz)) { - perror("Could not fetch dev blk/sector size"); - goto err; - } - assert(size != 0); - assert(sectsz != 0); - if (ioctl(fd, DIOCGSTRIPESIZE, &psectsz) == 0 && psectsz > 0) - ioctl(fd, DIOCGSTRIPEOFFSET, &psectoff); - strlcpy(arg.name, "GEOM::candelete", sizeof(arg.name)); - arg.len = sizeof(arg.value.i); - if (ioctl(fd, DIOCGATTR, &arg) == 0) - candelete = arg.value.i; - if (ioctl(fd, DIOCGPROVIDERNAME, name) == 0) - geom = 1; + perror("xhyve: raw device support unimplemented"); + goto err; + // if (ioctl(fd, DIOCGMEDIASIZE, &size) < 0 || + // ioctl(fd, DIOCGSECTORSIZE, §sz)) + // { + // perror("Could not fetch dev blk/sector size"); + // goto err; + // } + // assert(size != 0); + // assert(sectsz != 0); + // if (ioctl(fd, DIOCGSTRIPESIZE, &psectsz) == 0 && psectsz > 0) + // ioctl(fd, DIOCGSTRIPEOFFSET, &psectoff); + // strlcpy(arg.name, "GEOM::candelete", sizeof(arg.name)); + // arg.len = sizeof(arg.value.i); + // if (ioctl(fd, DIOCGATTR, &arg) == 0) + // candelete = arg.value.i; + // if (ioctl(fd, DIOCGPROVIDERNAME, name) == 0) + // geom = 1; } else psectsz = sbuf.st_blksize; @@ -490,21 +523,21 @@ blockif_open(const char *optstr, const char *ident) goto err; } - /* - * Some backend drivers (e.g. cd0, ada0) require that the I/O - * size be a multiple of the device's sector size. - * - * Validate that the emulated sector size complies with this - * requirement. - */ - if (S_ISCHR(sbuf.st_mode)) { - if (ssopt < sectsz || (ssopt % sectsz) != 0) { - fprintf(stderr, "Sector size %d incompatible " - "with underlying device sector size %d\n", - ssopt, sectsz); - goto err; - } - } + // /* + // * Some backend drivers (e.g. cd0, ada0) require that the I/O + // * size be a multiple of the device's sector size. + // * + // * Validate that the emulated sector size complies with this + // * requirement. + // */ + // if (S_ISCHR(sbuf.st_mode)) { + // if (ssopt < sectsz || (ssopt % sectsz) != 0) { + // fprintf(stderr, "Sector size %d incompatible " + // "with underlying device sector size %d\n", + // ssopt, sectsz); + // goto err; + // } + // } sectsz = ssopt; psectsz = pssopt; @@ -517,7 +550,7 @@ blockif_open(const char *optstr, const char *ident) goto err; } - bc->bc_magic = BLOCKIF_SIG; + bc->bc_magic = (int) BLOCKIF_SIG; bc->bc_fd = fd; bc->bc_ischr = S_ISCHR(sbuf.st_mode); bc->bc_isgeom = geom; @@ -525,8 +558,8 @@ blockif_open(const char *optstr, const char *ident) bc->bc_rdonly = ro; bc->bc_size = size; bc->bc_sectsz = sectsz; - bc->bc_psectsz = psectsz; - bc->bc_psectoff = psectoff; + bc->bc_psectsz = (int) psectsz; + bc->bc_psectoff = (int) psectoff; pthread_mutex_init(&bc->bc_mtx, NULL); pthread_cond_init(&bc->bc_cond, NULL); TAILQ_INIT(&bc->bc_freeq); @@ -539,8 +572,6 @@ blockif_open(const char *optstr, const char *ident) for (i = 0; i < BLOCKIF_NUMTHR; i++) { pthread_create(&bc->bc_btid[i], NULL, blockif_thr, bc); - snprintf(tname, sizeof(tname), "blk-%s-%d", ident, i); - pthread_set_name_np(bc->bc_btid[i], tname); } return (bc); @@ -583,32 +614,28 @@ blockif_request(struct blockif_ctxt *bc, struct blockif_req *breq, int blockif_read(struct blockif_ctxt *bc, struct blockif_req *breq) { - - assert(bc->bc_magic == BLOCKIF_SIG); + assert(bc->bc_magic == ((int) BLOCKIF_SIG)); return (blockif_request(bc, breq, BOP_READ)); } int blockif_write(struct blockif_ctxt *bc, struct blockif_req *breq) { - - assert(bc->bc_magic == BLOCKIF_SIG); + assert(bc->bc_magic == ((int) BLOCKIF_SIG)); return (blockif_request(bc, breq, BOP_WRITE)); } int blockif_flush(struct blockif_ctxt *bc, struct blockif_req *breq) { - - assert(bc->bc_magic == BLOCKIF_SIG); + assert(bc->bc_magic == ((int) BLOCKIF_SIG)); return (blockif_request(bc, breq, BOP_FLUSH)); } int blockif_delete(struct blockif_ctxt *bc, struct blockif_req *breq) { - - assert(bc->bc_magic == BLOCKIF_SIG); + assert(bc->bc_magic == ((int) BLOCKIF_SIG)); return (blockif_request(bc, breq, BOP_DELETE)); } @@ -617,7 +644,7 @@ blockif_cancel(struct blockif_ctxt *bc, struct blockif_req *breq) { struct blockif_elem *be; - assert(bc->bc_magic == BLOCKIF_SIG); + assert(bc->bc_magic == ((int) BLOCKIF_SIG)); pthread_mutex_lock(&bc->bc_mtx); /* @@ -696,7 +723,7 @@ blockif_close(struct blockif_ctxt *bc) err = 0; - assert(bc->bc_magic == BLOCKIF_SIG); + assert(bc->bc_magic == ((int) BLOCKIF_SIG)); /* * Stop the block i/o thread @@ -732,22 +759,22 @@ blockif_chs(struct blockif_ctxt *bc, uint16_t *c, uint8_t *h, uint8_t *s) uint16_t secpt; /* sectors per track */ uint8_t heads; - assert(bc->bc_magic == BLOCKIF_SIG); + assert(bc->bc_magic == ((int) BLOCKIF_SIG)); sectors = bc->bc_size / bc->bc_sectsz; /* Clamp the size to the largest possible with CHS */ - if (sectors > 65535UL*16*255) - sectors = 65535UL*16*255; + if (sectors > 65535LL*16*255) + sectors = 65535LL*16*255; - if (sectors >= 65536UL*16*63) { + if (sectors >= 65536LL*16*63) { secpt = 255; heads = 16; hcyl = sectors / secpt; } else { secpt = 17; hcyl = sectors / secpt; - heads = (hcyl + 1023) / 1024; + heads = (uint8_t) ((hcyl + 1023) / 1024); if (heads < 4) heads = 4; @@ -764,9 +791,9 @@ blockif_chs(struct blockif_ctxt *bc, uint16_t *c, uint8_t *h, uint8_t *s) } } - *c = hcyl / heads; + *c = (uint16_t) (hcyl / heads); *h = heads; - *s = secpt; + *s = (uint8_t) secpt; } /* @@ -775,24 +802,21 @@ blockif_chs(struct blockif_ctxt *bc, uint16_t *c, uint8_t *h, uint8_t *s) off_t blockif_size(struct blockif_ctxt *bc) { - - assert(bc->bc_magic == BLOCKIF_SIG); + assert(bc->bc_magic == ((int) BLOCKIF_SIG)); return (bc->bc_size); } int blockif_sectsz(struct blockif_ctxt *bc) { - - assert(bc->bc_magic == BLOCKIF_SIG); + assert(bc->bc_magic == ((int) BLOCKIF_SIG)); return (bc->bc_sectsz); } void blockif_psectsz(struct blockif_ctxt *bc, int *size, int *off) { - - assert(bc->bc_magic == BLOCKIF_SIG); + assert(bc->bc_magic == ((int) BLOCKIF_SIG)); *size = bc->bc_psectsz; *off = bc->bc_psectoff; } @@ -800,23 +824,20 @@ blockif_psectsz(struct blockif_ctxt *bc, int *size, int *off) int blockif_queuesz(struct blockif_ctxt *bc) { - - assert(bc->bc_magic == BLOCKIF_SIG); + assert(bc->bc_magic == ((int) BLOCKIF_SIG)); return (BLOCKIF_MAXREQ - 1); } int blockif_is_ro(struct blockif_ctxt *bc) { - - assert(bc->bc_magic == BLOCKIF_SIG); + assert(bc->bc_magic == ((int) BLOCKIF_SIG)); return (bc->bc_rdonly); } int blockif_candelete(struct blockif_ctxt *bc) { - - assert(bc->bc_magic == BLOCKIF_SIG); + assert(bc->bc_magic == ((int) BLOCKIF_SIG)); return (bc->bc_candelete); } diff --git a/bhyve/consport.c b/src/consport.c similarity index 82% rename from bhyve/consport.c rename to src/consport.c index 4074e95..f5d0b73 100644 --- a/bhyve/consport.c +++ b/src/consport.c @@ -1,5 +1,6 @@ /*- * Copyright (c) 2011 NetApp, Inc. + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,23 +27,20 @@ * $FreeBSD$ */ -#include -__FBSDID("$FreeBSD$"); - -#include -#include - +#include #include #include #include #include #include +#include +#include +#include +#include +#include -#include "inout.h" -#include "pci_lpc.h" - -#define BVM_CONSOLE_PORT 0x220 -#define BVM_CONS_SIG ('b' << 8 | 'v') +#define BVM_CONSOLE_PORT 0x220 +#define BVM_CONS_SIG ('b' << 8 | 'v') static struct termios tio_orig, tio_new; @@ -66,14 +64,15 @@ ttyopen(void) static bool tty_char_available(void) { - fd_set rfds; - struct timeval tv; + fd_set rfds; + struct timeval tv; - FD_ZERO(&rfds); - FD_SET(STDIN_FILENO, &rfds); - tv.tv_sec = 0; - tv.tv_usec = 0; - if (select(STDIN_FILENO + 1, &rfds, NULL, NULL, &tv) > 0) { + FD_ZERO(&rfds); + FD_SET(STDIN_FILENO, &rfds); + tv.tv_sec = 0; + tv.tv_usec = 0; + + if (select(STDIN_FILENO + 1, &rfds, NULL, NULL, &tv) > 0) { return (true); } else { return (false); @@ -100,8 +99,8 @@ ttywrite(unsigned char wb) } static int -console_handler(struct vmctx *ctx, int vcpu, int in, int port, int bytes, - uint32_t *eax, void *arg) +console_handler(UNUSED int vcpu, int in, UNUSED int port, int bytes, + uint32_t *eax, UNUSED void *arg) { static int opened; @@ -128,9 +127,9 @@ console_handler(struct vmctx *ctx, int vcpu, int in, int port, int bytes, } if (in) - *eax = ttyread(); + *eax = (uint32_t) ttyread(); else - ttywrite(*eax); + ttywrite((unsigned char) *eax); return (0); } @@ -142,12 +141,12 @@ static struct inout_port consport = { BVM_CONSOLE_PORT, 1, IOPORT_F_INOUT, - console_handler + console_handler, + NULL }; void init_bvmcons(void) { - register_inout(&consport); } diff --git a/bhyve/dbgport.c b/src/dbgport.c similarity index 85% rename from bhyve/dbgport.c rename to src/dbgport.c index 534ae65..54c968d 100644 --- a/bhyve/dbgport.c +++ b/src/dbgport.c @@ -1,5 +1,6 @@ /*- * Copyright (c) 2011 NetApp, Inc. + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,34 +27,32 @@ * $FreeBSD$ */ -#include -__FBSDID("$FreeBSD$"); - #include #include #include #include +#include #include #include #include #include #include +#include +#include +#include +#include -#include "inout.h" -#include "dbgport.h" -#include "pci_lpc.h" - -#define BVM_DBG_PORT 0x224 -#define BVM_DBG_SIG ('B' << 8 | 'V') +#define BVM_DBG_PORT 0x224 +#define BVM_DBG_SIG ('B' << 8 | 'V') static int listen_fd, conn_fd; static struct sockaddr_in sin; static int -dbg_handler(struct vmctx *ctx, int vcpu, int in, int port, int bytes, - uint32_t *eax, void *arg) +dbg_handler(UNUSED int vcpu, int in, UNUSED int port, int bytes, uint32_t *eax, + UNUSED void *arg) { char ch; int nwritten, nread, printonce; @@ -81,19 +80,19 @@ again: } if (in) { - nread = read(conn_fd, &ch, 1); + nread = (int) read(conn_fd, &ch, 1); if (nread == -1 && errno == EAGAIN) - *eax = -1; + *eax = (uint32_t) (-1); else if (nread == 1) - *eax = ch; + *eax = (uint32_t) ch; else { close(conn_fd); conn_fd = -1; goto again; } } else { - ch = *eax; - nwritten = write(conn_fd, &ch, 1); + ch = (char) *eax; + nwritten = (int) write(conn_fd, &ch, 1); if (nwritten != 1) { close(conn_fd); conn_fd = -1; @@ -108,7 +107,8 @@ static struct inout_port dbgport = { BVM_DBG_PORT, 1, IOPORT_F_INOUT, - dbg_handler + dbg_handler, + NULL }; SYSRES_IO(BVM_DBG_PORT, 4); diff --git a/src/firmware/kexec.c b/src/firmware/kexec.c new file mode 100644 index 0000000..6e45d09 --- /dev/null +++ b/src/firmware/kexec.c @@ -0,0 +1,262 @@ +/*- + * Copyright (c) 2015 xhyve developers + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY ???, INC ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL NETAPP, INC OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +#include +#include +#include +#include +#include + +#ifndef ALIGNUP +#define ALIGNUP(x, a) (((x - 1) & ~(a - 1)) + a) +#endif + +#define BASE_GDT 0x2000ull +#define BASE_ZEROPAGE 0x3000ull +#define BASE_CMDLINE 0x4000ull +#define BASE_KERNEL 0x100000ull +#define HDRS 0x53726448 /* SrdH */ + +static struct { + uintptr_t base; + size_t size; +} memory, kernel, ramdisk; + +static struct { + char *kernel; + char *initrd; + char *cmdline; +} config; + +static int +kexec_load_kernel(char *path, char *cmdline) { + uint64_t kernel_offset, kernel_size, kernel_init_size, kernel_start, mem_k; + size_t sz, cmdline_len; + volatile struct zero_page *zp; + FILE *f; + + if ((memory.size < (BASE_ZEROPAGE + sizeof(struct zero_page))) || + ((BASE_ZEROPAGE + sizeof(struct zero_page)) > BASE_CMDLINE)) + { + return -1; + } + + zp = ((struct zero_page *) (memory.base + ((off_t) BASE_ZEROPAGE))); + + memset(((void *) ((uintptr_t) zp)), 0, sizeof(struct zero_page)); + + if (!(f = fopen(path, "r"))) { + return -1; + } + + fseek(f, 0L, SEEK_END); + sz = (size_t) ftell(f); + + if (sz < (0x01f1 + sizeof(struct setup_header))) { + fclose(f); + return -1; + } + + fseek(f, 0x01f1, SEEK_SET); + + if (!fread(((void *) ((uintptr_t) &zp->setup_header)), 1, + sizeof(zp->setup_header), f)) + { + fclose(f); + return -1; + } + + if ((zp->setup_header.setup_sects == 0) || /* way way too old */ + (zp->setup_header.boot_flag != 0xaa55) || /* no boot magic */ + (zp->setup_header.header != HDRS) || /* way too old */ + (zp->setup_header.version < 0x020c) || /* too old */ + (!(zp->setup_header.loadflags & 1)) || /* no bzImage */ + (sz < (((zp->setup_header.setup_sects + 1) * 512) + + (zp->setup_header.syssize * 16)))) /* too small */ + { + /* we can't boot this kernel */ + fclose(f); + return -1; + } + + kernel_offset = ((zp->setup_header.setup_sects + 1) * 512); + kernel_size = (sz - kernel_offset); + kernel_init_size = ALIGNUP(zp->setup_header.init_size, 0x1000ull); + kernel_start = (zp->setup_header.relocatable_kernel) ? + ALIGNUP(BASE_KERNEL, zp->setup_header.kernel_alignment) : + zp->setup_header.pref_address; + + if ((kernel_start < BASE_KERNEL) || + (kernel_size > kernel_init_size) || /* XXX: always true? */ + ((kernel_start + kernel_init_size) > memory.size)) /* oom */ + { + fclose(f); + return -1; + } + + /* copy kernel */ + fseek(f, ((long) kernel_offset), SEEK_SET); + if (!fread(((void *) (memory.base + kernel_start)), 1, kernel_size, f)) { + fclose(f); + return -1; + } + + fclose(f); + + /* copy cmdline */ + cmdline_len = strlen(cmdline); + if (((cmdline_len + 1)> zp->setup_header.cmdline_size) || + ((BASE_CMDLINE + (cmdline_len + 1)) > kernel_start)) + { + return -1; + } + + memcpy(((void *) (memory.base + BASE_CMDLINE)), cmdline, cmdline_len); + memset(((void *) (memory.base + BASE_CMDLINE + cmdline_len)), '\0', 1); + zp->setup_header.cmd_line_ptr = ((uint32_t) BASE_CMDLINE); + zp->ext_cmd_line_ptr = ((uint32_t) (BASE_CMDLINE >> 32)); + + zp->setup_header.hardware_subarch = 0; /* PC */ + zp->setup_header.type_of_loader = 0xd; /* kexec */ + + mem_k = (memory.size - 0x100000) >> 10; /* assume memory base is at 0 */ + zp->alt_mem_k = (mem_k > 0xffffffff) ? 0xffffffff : ((uint32_t) mem_k); + + zp->e820_map[0].addr = 0x0000000000000000; + zp->e820_map[0].size = 0x000000000009fc00; + zp->e820_map[0].type = 1; + zp->e820_map[1].addr = 0x0000000000100000; + zp->e820_map[1].size = (memory.size - 0x0000000000100000); + zp->e820_map[1].type = 1; + zp->e820_entries = 2; + + kernel.base = kernel_start; + kernel.size = kernel_init_size; + + return 0; +} + +static int +kexec_load_ramdisk(char *path) { + uint64_t ramdisk_start; + volatile struct zero_page *zp; + size_t sz; + FILE *f; + + zp = ((struct zero_page *) (memory.base + BASE_ZEROPAGE)); + + if (!(f = fopen(path, "r"))) {; + return -1; + } + + fseek(f, 0L, SEEK_END); + sz = (size_t) ftell(f); + fseek(f, 0, SEEK_SET); + + ramdisk_start = ALIGNUP((kernel.base + kernel.size), 0x1000ull); + + if ((ramdisk_start + sz) > memory.size) { + /* not enough memory */ + fclose(f); + return -1; + } + + /* copy ramdisk */ + if (!fread(((void *) (memory.base + ramdisk_start)), 1, sz, f)) { + fclose(f); + return -1; + } + + fclose(f); + + zp->setup_header.ramdisk_image = ((uint32_t) ramdisk_start); + zp->ext_ramdisk_image = ((uint32_t) (ramdisk_start >> 32)); + zp->setup_header.ramdisk_size = ((uint32_t) sz); + zp->ext_ramdisk_size = ((uint32_t) (sz >> 32)); + + ramdisk.base = ramdisk_start; + ramdisk.size = sz; + + return 0; +} + +void +kexec_init(char *kernel_path, char *initrd_path, char *cmdline) { + config.kernel = kernel_path; + config.initrd = initrd_path; + config.cmdline = cmdline; +} + +uint64_t +kexec(void) +{ + uint64_t *gdt_entry; + void *gpa_map; + + gpa_map = xh_vm_map_gpa(0, xh_vm_get_lowmem_size()); + memory.base = (uintptr_t) gpa_map; + memory.size = xh_vm_get_lowmem_size(); + + if (kexec_load_kernel(config.kernel, + config.cmdline ? config.cmdline : "auto")) + { + fprintf(stderr, "kexec: failed to load kernel %s\n", config.kernel); + abort(); + } + + if (config.initrd && kexec_load_ramdisk(config.initrd)) { + fprintf(stderr, "kexec: failed to load initrd %s\n", config.initrd); + abort(); + } + + gdt_entry = ((uint64_t *) (memory.base + BASE_GDT)); + gdt_entry[0] = 0x0000000000000000; /* null */ + gdt_entry[1] = 0x0000000000000000; /* null */ + gdt_entry[2] = 0x00cf9a000000ffff; /* code */ + gdt_entry[3] = 0x00cf92000000ffff; /* data */ + + xh_vcpu_reset(0); + + xh_vm_set_desc(0, VM_REG_GUEST_GDTR, BASE_GDT, 0x1f, 0); + xh_vm_set_desc(0, VM_REG_GUEST_CS, 0, 0xffffffff, 0xc09b); + xh_vm_set_desc(0, VM_REG_GUEST_DS, 0, 0xffffffff, 0xc093); + xh_vm_set_desc(0, VM_REG_GUEST_ES, 0, 0xffffffff, 0xc093); + xh_vm_set_desc(0, VM_REG_GUEST_SS, 0, 0xffffffff, 0xc093); + xh_vm_set_register(0, VM_REG_GUEST_CS, 0x10); + xh_vm_set_register(0, VM_REG_GUEST_DS, 0x18); + xh_vm_set_register(0, VM_REG_GUEST_ES, 0x18); + xh_vm_set_register(0, VM_REG_GUEST_SS, 0x18); + xh_vm_set_register(0, VM_REG_GUEST_CR0, 0x21); /* enable protected mode */ + xh_vm_set_register(0, VM_REG_GUEST_RBP, 0); + xh_vm_set_register(0, VM_REG_GUEST_RDI, 0); + xh_vm_set_register(0, VM_REG_GUEST_RBX, 0); + xh_vm_set_register(0, VM_REG_GUEST_RFLAGS, 0x2); + xh_vm_set_register(0, VM_REG_GUEST_RSI, BASE_ZEROPAGE); + xh_vm_set_register(0, VM_REG_GUEST_RIP, kernel.base); + + return kernel.base; +} diff --git a/bhyve/inout.c b/src/inout.c similarity index 71% rename from bhyve/inout.c rename to src/inout.c index 929bb3c..1ba8e99 100644 --- a/bhyve/inout.c +++ b/src/inout.c @@ -1,5 +1,6 @@ /*- * Copyright (c) 2011 NetApp, Inc. + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,27 +27,18 @@ * $FreeBSD$ */ -#include -__FBSDID("$FreeBSD$"); - -#include -#include -#include -#include - -#include -#include - -#include -#include -#include - #include #include +#include #include - -#include "bhyverun.h" -#include "inout.h" +#include +#include +#include +#include +#include +#include +#include +#include SET_DECLARE(inout_port_set, struct inout_port); @@ -55,32 +47,35 @@ SET_DECLARE(inout_port_set, struct inout_port); #define VERIFY_IOPORT(port, size) \ assert((port) >= 0 && (size) > 0 && ((port) + (size)) <= MAX_IOPORTS) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" static struct { - const char *name; - int flags; - inout_func_t handler; - void *arg; + const char *name; + int flags; + inout_func_t handler; + void *arg; } inout_handlers[MAX_IOPORTS]; +#pragma clang diagnostic pop static int -default_inout(struct vmctx *ctx, int vcpu, int in, int port, int bytes, - uint32_t *eax, void *arg) +default_inout(UNUSED int vcpu, int in, UNUSED int port, int bytes, + uint32_t *eax, UNUSED void *arg) { - if (in) { - switch (bytes) { - case 4: - *eax = 0xffffffff; - break; - case 2: - *eax = 0xffff; - break; - case 1: - *eax = 0xff; - break; - } - } - - return (0); + if (in) { + switch (bytes) { + case 4: + *eax = 0xffffffff; + break; + case 2: + *eax = 0xffff; + break; + case 1: + *eax = 0xff; + break; + } + } + + return (0); } static void @@ -94,14 +89,42 @@ register_default_iohandler(int start, int size) iop.name = "default"; iop.port = start; iop.size = size; - iop.flags = IOPORT_F_INOUT | IOPORT_F_DEFAULT; + iop.flags = (int) (IOPORT_F_INOUT | IOPORT_F_DEFAULT); iop.handler = default_inout; register_inout(&iop); } +static int +update_register(int vcpuid, enum vm_reg_name reg, + uint64_t val, int size) +{ + int error; + uint64_t origval; + + switch (size) { + case 1: + case 2: + error = xh_vm_get_register(vcpuid, reg, &origval); + if (error) + return (error); + val &= vie_size2mask(size); + val |= origval & ~vie_size2mask(size); + break; + case 4: + val &= 0xffffffffUL; + break; + case 8: + break; + default: + return (EINVAL); + } + + return xh_vm_set_register(vcpuid, reg, val); +} + int -emulate_inout(struct vmctx *ctx, int vcpu, struct vm_exit *vmexit, int strict) +emulate_inout(int vcpu, struct vm_exit *vmexit, int strict) { int addrsize, bytes, flags, in, port, prot, rep; uint32_t eax, val; @@ -141,7 +164,7 @@ emulate_inout(struct vmctx *ctx, int vcpu, struct vm_exit *vmexit, int strict) vis = &vmexit->u.inout_str; rep = vis->inout.rep; addrsize = vis->addrsize; - prot = in ? PROT_WRITE : PROT_READ; + prot = in ? XHYVE_PROT_WRITE : XHYVE_PROT_READ; assert(addrsize == 2 || addrsize == 4 || addrsize == 8); /* Index register */ @@ -152,18 +175,18 @@ emulate_inout(struct vmctx *ctx, int vcpu, struct vm_exit *vmexit, int strict) count = vis->count & vie_size2mask(addrsize); /* Limit number of back-to-back in/out emulations to 16 */ - iterations = MIN(count, 16); + iterations = min(count, 16); while (iterations > 0) { assert(retval == 0); if (vie_calculate_gla(vis->paging.cpu_mode, vis->seg_name, &vis->seg_desc, index, bytes, addrsize, prot, &gla)) { - vm_inject_gp(ctx, vcpu); + vm_inject_gp(vcpu); break; } - error = vm_copy_setup(ctx, vcpu, &vis->paging, gla, - bytes, prot, iov, nitems(iov), &fault); + error = xh_vm_copy_setup(vcpu, &vis->paging, gla, + ((size_t) bytes), prot, iov, nitems(iov), &fault); if (error) { retval = -1; /* Unrecoverable error */ break; @@ -174,33 +197,33 @@ emulate_inout(struct vmctx *ctx, int vcpu, struct vm_exit *vmexit, int strict) if (vie_alignment_check(vis->paging.cpl, bytes, vis->cr0, vis->rflags, gla)) { - vm_inject_ac(ctx, vcpu, 0); + vm_inject_ac(vcpu, 0); break; } val = 0; if (!in) - vm_copyin(ctx, vcpu, iov, &val, bytes); + xh_vm_copyin(iov, &val, ((size_t) bytes)); - retval = handler(ctx, vcpu, in, port, bytes, &val, arg); + retval = handler(vcpu, in, port, bytes, &val, arg); if (retval != 0) break; if (in) - vm_copyout(ctx, vcpu, &val, iov, bytes); + xh_vm_copyout(&val, iov, ((size_t) bytes)); /* Update index */ if (vis->rflags & PSL_D) - index -= bytes; + index -= ((uint64_t) bytes); else - index += bytes; + index += ((uint64_t) bytes); count--; iterations--; } /* Update index register */ - error = vie_update_register(ctx, vcpu, idxreg, index, addrsize); + error = update_register(vcpu, idxreg, index, addrsize); assert(error == 0); /* @@ -208,25 +231,23 @@ emulate_inout(struct vmctx *ctx, int vcpu, struct vm_exit *vmexit, int strict) * prefix. */ if (rep) { - error = vie_update_register(ctx, vcpu, VM_REG_GUEST_RCX, - count, addrsize); + error = update_register(vcpu, VM_REG_GUEST_RCX, count, addrsize); assert(error == 0); } /* Restart the instruction if more iterations remain */ if (retval == 0 && count != 0) { - error = vm_restart_instruction(ctx, vcpu); + error = xh_vm_restart_instruction(vcpu); assert(error == 0); } } else { eax = vmexit->u.inout.eax; val = eax & vie_size2mask(bytes); - retval = handler(ctx, vcpu, in, port, bytes, &val, arg); + retval = handler(vcpu, in, port, bytes, &val, arg); if (retval == 0 && in) { eax &= ~vie_size2mask(bytes); eax |= val & vie_size2mask(bytes); - error = vm_set_register(ctx, vcpu, VM_REG_GUEST_RAX, - eax); + error = xh_vm_set_register(vcpu, VM_REG_GUEST_RAX, eax); assert(error == 0); } } @@ -267,9 +288,9 @@ register_inout(struct inout_port *iop) * Verify that the new registration is not overwriting an already * allocated i/o range. */ - if ((iop->flags & IOPORT_F_DEFAULT) == 0) { + if ((((unsigned) iop->flags) & IOPORT_F_DEFAULT) == 0) { for (i = iop->port; i < iop->port + iop->size; i++) { - if ((inout_handlers[i].flags & IOPORT_F_DEFAULT) == 0) + if ((((unsigned) inout_handlers[i].flags) & IOPORT_F_DEFAULT) == 0) return (-1); } } diff --git a/bhyve/ioapic.c b/src/ioapic.c similarity index 90% rename from bhyve/ioapic.c rename to src/ioapic.c index 0ad69d9..7c7c42d 100644 --- a/bhyve/ioapic.c +++ b/src/ioapic.c @@ -1,6 +1,7 @@ /*- * Copyright (c) 2014 Hudson River Trading LLC * Written by: John H. Baldwin + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -25,15 +26,8 @@ * SUCH DAMAGE. */ -#include -__FBSDID("$FreeBSD$"); - -#include - -#include -#include - -#include "ioapic.h" +#include +#include /* * Assign PCI INTx interrupts to I/O APIC pins in a round-robin @@ -47,10 +41,10 @@ __FBSDID("$FreeBSD$"); static int pci_pins; void -ioapic_init(struct vmctx *ctx) +ioapic_init(void) { - if (vm_ioapic_pincount(ctx, &pci_pins) < 0) { + if (xh_vm_ioapic_pincount(&pci_pins) < 0) { pci_pins = 0; return; } diff --git a/src/md5c.c b/src/md5c.c new file mode 100644 index 0000000..dbbf1d1 --- /dev/null +++ b/src/md5c.c @@ -0,0 +1,284 @@ +/*- + * MD5C.C - RSA Data Security, Inc., MD5 message-digest algorithm + * + * Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All + * rights reserved. + * + * License to copy and use this software is granted provided that it + * is identified as the "RSA Data Security, Inc. MD5 Message-Digest + * Algorithm" in all material mentioning or referencing this software + * or this function. + * + * License is also granted to make and use derivative works provided + * that such works are identified as "derived from the RSA Data + * Security, Inc. MD5 Message-Digest Algorithm" in all material + * mentioning or referencing the derived work. + * + * RSA Data Security, Inc. makes no representations concerning either + * the merchantability of this software or the suitability of this + * software for any particular purpose. It is provided "as is" + * without express or implied warranty of any kind. + * + * These notices must be retained in any copies of any part of this + * documentation and/or software. + * + * This code is the same as the code published by RSA Inc. It has been + * edited for clarity and style only. + */ + +#include +#include +#include + +static void MD5Transform(u_int32_t [4], const unsigned char [64]); + +static unsigned char PADDING[64] = { + 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +/* F, G, H and I are basic MD5 functions. */ +#define F(x, y, z) (((x) & (y)) | ((~x) & (z))) +#define G(x, y, z) (((x) & (z)) | ((y) & (~z))) +#define H(x, y, z) ((x) ^ (y) ^ (z)) +#define I(x, y, z) ((y) ^ ((x) | (~z))) + +/* ROTATE_LEFT rotates x left n bits. */ +#define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32-(n)))) + +/* + * FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4. + * Rotation is separate from addition to prevent recomputation. + */ +#define FF(a, b, c, d, x, s, ac) { \ + (a) += F ((b), (c), (d)) + (x) + (u_int32_t)(ac); \ + (a) = ROTATE_LEFT ((a), (s)); \ + (a) += (b); \ + } +#define GG(a, b, c, d, x, s, ac) { \ + (a) += G ((b), (c), (d)) + (x) + (u_int32_t)(ac); \ + (a) = ROTATE_LEFT ((a), (s)); \ + (a) += (b); \ + } +#define HH(a, b, c, d, x, s, ac) { \ + (a) += H ((b), (c), (d)) + (x) + (u_int32_t)(ac); \ + (a) = ROTATE_LEFT ((a), (s)); \ + (a) += (b); \ + } +#define II(a, b, c, d, x, s, ac) { \ + (a) += I ((b), (c), (d)) + (x) + (u_int32_t)(ac); \ + (a) = ROTATE_LEFT ((a), (s)); \ + (a) += (b); \ + } + +/* MD5 initialization. Begins an MD5 operation, writing a new context. */ + +void +MD5Init(context) + MD5_CTX *context; +{ + + context->count[0] = context->count[1] = 0; + + /* Load magic initialization constants. */ + context->state[0] = 0x67452301; + context->state[1] = 0xefcdab89; + context->state[2] = 0x98badcfe; + context->state[3] = 0x10325476; +} + +/* + * MD5 block update operation. Continues an MD5 message-digest + * operation, processing another message block, and updating the + * context. + */ + +void +MD5Update(context, in, inputLen) + MD5_CTX *context; + const void *in; + unsigned int inputLen; +{ + unsigned int i, index, partLen; + const unsigned char *input = in; + + /* Compute number of bytes mod 64 */ + index = (unsigned int)((context->count[0] >> 3) & 0x3F); + + /* Update number of bits */ + if ((context->count[0] += ((u_int32_t)inputLen << 3)) + < ((u_int32_t)inputLen << 3)) + context->count[1]++; + context->count[1] += ((u_int32_t)inputLen >> 29); + + partLen = 64 - index; + + /* Transform as many times as possible. */ + if (inputLen >= partLen) { + memcpy((void *)&context->buffer[index], (const void *)input, + partLen); + MD5Transform(context->state, context->buffer); + + for (i = partLen; i + 63 < inputLen; i += 64) + MD5Transform(context->state, &input[i]); + + index = 0; + } + else + i = 0; + + /* Buffer remaining input */ + memcpy((void *)&context->buffer[index], (const void *)&input[i], + inputLen-i); +} + +/* + * MD5 padding. Adds padding followed by original length. + */ + +static void +MD5Pad(MD5_CTX *context) +{ + unsigned char bits[8]; + unsigned int index, padLen; + + /* Save number of bits */ + memcpy(bits, context->count, 8); + + /* Pad out to 56 mod 64. */ + index = (unsigned int)((context->count[0] >> 3) & 0x3f); + padLen = (index < 56) ? (56 - index) : (120 - index); + MD5Update(context, PADDING, padLen); + + /* Append length (before padding) */ + MD5Update(context, bits, 8); +} + +/* + * MD5 finalization. Ends an MD5 message-digest operation, writing the + * the message digest and zeroizing the context. + */ + +void +MD5Final (digest, context) + unsigned char digest[16]; + MD5_CTX *context; +{ + /* Do padding. */ + MD5Pad(context); + + /* Store state in digest */ + memcpy(digest, context->state, 16); + + /* Zeroize sensitive information. */ + memset((void *)context, 0, sizeof (*context)); +} + +/* MD5 basic transformation. Transforms state based on block. */ + +static void +MD5Transform (state, block) + u_int32_t state[4]; + const unsigned char block[64]; +{ + u_int32_t a = state[0], b = state[1], c = state[2], d = state[3], x[16]; + + memcpy(x, block, 64); + + /* Round 1 */ +#define S11 7 +#define S12 12 +#define S13 17 +#define S14 22 + FF (a, b, c, d, x[ 0], S11, 0xd76aa478); /* 1 */ + FF (d, a, b, c, x[ 1], S12, 0xe8c7b756); /* 2 */ + FF (c, d, a, b, x[ 2], S13, 0x242070db); /* 3 */ + FF (b, c, d, a, x[ 3], S14, 0xc1bdceee); /* 4 */ + FF (a, b, c, d, x[ 4], S11, 0xf57c0faf); /* 5 */ + FF (d, a, b, c, x[ 5], S12, 0x4787c62a); /* 6 */ + FF (c, d, a, b, x[ 6], S13, 0xa8304613); /* 7 */ + FF (b, c, d, a, x[ 7], S14, 0xfd469501); /* 8 */ + FF (a, b, c, d, x[ 8], S11, 0x698098d8); /* 9 */ + FF (d, a, b, c, x[ 9], S12, 0x8b44f7af); /* 10 */ + FF (c, d, a, b, x[10], S13, 0xffff5bb1); /* 11 */ + FF (b, c, d, a, x[11], S14, 0x895cd7be); /* 12 */ + FF (a, b, c, d, x[12], S11, 0x6b901122); /* 13 */ + FF (d, a, b, c, x[13], S12, 0xfd987193); /* 14 */ + FF (c, d, a, b, x[14], S13, 0xa679438e); /* 15 */ + FF (b, c, d, a, x[15], S14, 0x49b40821); /* 16 */ + + /* Round 2 */ +#define S21 5 +#define S22 9 +#define S23 14 +#define S24 20 + GG (a, b, c, d, x[ 1], S21, 0xf61e2562); /* 17 */ + GG (d, a, b, c, x[ 6], S22, 0xc040b340); /* 18 */ + GG (c, d, a, b, x[11], S23, 0x265e5a51); /* 19 */ + GG (b, c, d, a, x[ 0], S24, 0xe9b6c7aa); /* 20 */ + GG (a, b, c, d, x[ 5], S21, 0xd62f105d); /* 21 */ + GG (d, a, b, c, x[10], S22, 0x2441453); /* 22 */ + GG (c, d, a, b, x[15], S23, 0xd8a1e681); /* 23 */ + GG (b, c, d, a, x[ 4], S24, 0xe7d3fbc8); /* 24 */ + GG (a, b, c, d, x[ 9], S21, 0x21e1cde6); /* 25 */ + GG (d, a, b, c, x[14], S22, 0xc33707d6); /* 26 */ + GG (c, d, a, b, x[ 3], S23, 0xf4d50d87); /* 27 */ + GG (b, c, d, a, x[ 8], S24, 0x455a14ed); /* 28 */ + GG (a, b, c, d, x[13], S21, 0xa9e3e905); /* 29 */ + GG (d, a, b, c, x[ 2], S22, 0xfcefa3f8); /* 30 */ + GG (c, d, a, b, x[ 7], S23, 0x676f02d9); /* 31 */ + GG (b, c, d, a, x[12], S24, 0x8d2a4c8a); /* 32 */ + + /* Round 3 */ +#define S31 4 +#define S32 11 +#define S33 16 +#define S34 23 + HH (a, b, c, d, x[ 5], S31, 0xfffa3942); /* 33 */ + HH (d, a, b, c, x[ 8], S32, 0x8771f681); /* 34 */ + HH (c, d, a, b, x[11], S33, 0x6d9d6122); /* 35 */ + HH (b, c, d, a, x[14], S34, 0xfde5380c); /* 36 */ + HH (a, b, c, d, x[ 1], S31, 0xa4beea44); /* 37 */ + HH (d, a, b, c, x[ 4], S32, 0x4bdecfa9); /* 38 */ + HH (c, d, a, b, x[ 7], S33, 0xf6bb4b60); /* 39 */ + HH (b, c, d, a, x[10], S34, 0xbebfbc70); /* 40 */ + HH (a, b, c, d, x[13], S31, 0x289b7ec6); /* 41 */ + HH (d, a, b, c, x[ 0], S32, 0xeaa127fa); /* 42 */ + HH (c, d, a, b, x[ 3], S33, 0xd4ef3085); /* 43 */ + HH (b, c, d, a, x[ 6], S34, 0x4881d05); /* 44 */ + HH (a, b, c, d, x[ 9], S31, 0xd9d4d039); /* 45 */ + HH (d, a, b, c, x[12], S32, 0xe6db99e5); /* 46 */ + HH (c, d, a, b, x[15], S33, 0x1fa27cf8); /* 47 */ + HH (b, c, d, a, x[ 2], S34, 0xc4ac5665); /* 48 */ + + /* Round 4 */ +#define S41 6 +#define S42 10 +#define S43 15 +#define S44 21 + II (a, b, c, d, x[ 0], S41, 0xf4292244); /* 49 */ + II (d, a, b, c, x[ 7], S42, 0x432aff97); /* 50 */ + II (c, d, a, b, x[14], S43, 0xab9423a7); /* 51 */ + II (b, c, d, a, x[ 5], S44, 0xfc93a039); /* 52 */ + II (a, b, c, d, x[12], S41, 0x655b59c3); /* 53 */ + II (d, a, b, c, x[ 3], S42, 0x8f0ccc92); /* 54 */ + II (c, d, a, b, x[10], S43, 0xffeff47d); /* 55 */ + II (b, c, d, a, x[ 1], S44, 0x85845dd1); /* 56 */ + II (a, b, c, d, x[ 8], S41, 0x6fa87e4f); /* 57 */ + II (d, a, b, c, x[15], S42, 0xfe2ce6e0); /* 58 */ + II (c, d, a, b, x[ 6], S43, 0xa3014314); /* 59 */ + II (b, c, d, a, x[13], S44, 0x4e0811a1); /* 60 */ + II (a, b, c, d, x[ 4], S41, 0xf7537e82); /* 61 */ + II (d, a, b, c, x[11], S42, 0xbd3af235); /* 62 */ + II (c, d, a, b, x[ 2], S43, 0x2ad7d2bb); /* 63 */ + II (b, c, d, a, x[ 9], S44, 0xeb86d391); /* 64 */ + + state[0] += a; + state[1] += b; + state[2] += c; + state[3] += d; + + /* Zeroize sensitive information. */ + memset((void *)x, 0, sizeof (x)); +} diff --git a/bhyve/mem.c b/src/mem.c similarity index 85% rename from bhyve/mem.c rename to src/mem.c index 2a9f430..358d6d6 100644 --- a/bhyve/mem.c +++ b/src/mem.c @@ -1,5 +1,6 @@ /*- * Copyright (c) 2012 NetApp, Inc. + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -32,33 +33,30 @@ * so it can be searched within the range. */ -#include -__FBSDID("$FreeBSD$"); - -#include -#include -#include -#include -#include - -#include +#include #include -#include #include +#include +#include +#include +#include +#include +#include -#include "mem.h" - +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" struct mmio_rb_range { - RB_ENTRY(mmio_rb_range) mr_link; /* RB tree links */ - struct mem_range mr_param; - uint64_t mr_base; - uint64_t mr_end; + RB_ENTRY(mmio_rb_range) mr_link; /* RB tree links */ + struct mem_range mr_param; + uint64_t mr_base; + uint64_t mr_end; }; +#pragma clang diagnostic pop struct mmio_rb_tree; RB_PROTOTYPE(mmio_rb_tree, mmio_rb_range, mr_link, mmio_rb_range_compare); -RB_HEAD(mmio_rb_tree, mmio_rb_range) mmio_rb_root, mmio_rb_fallback; +static RB_HEAD(mmio_rb_tree, mmio_rb_range) mmio_rb_root, mmio_rb_fallback; /* * Per-vCPU cache. Since most accesses from a vCPU will be to @@ -132,38 +130,40 @@ mmio_rb_dump(struct mmio_rb_tree *rbt) } #endif -RB_GENERATE(mmio_rb_tree, mmio_rb_range, mr_link, mmio_rb_range_compare); +RB_GENERATE(mmio_rb_tree, mmio_rb_range, mr_link, mmio_rb_range_compare) static int -mem_read(void *ctx, int vcpu, uint64_t gpa, uint64_t *rval, int size, void *arg) +mem_read(UNUSED void *unused, int vcpu, uint64_t gpa, uint64_t *rval, int size, + void *arg) { int error; struct mem_range *mr = arg; - error = (*mr->handler)(ctx, vcpu, MEM_F_READ, gpa, size, - rval, mr->arg1, mr->arg2); + error = (*mr->handler)(vcpu, MEM_F_READ, gpa, size, rval, mr->arg1, + mr->arg2); return (error); } static int -mem_write(void *ctx, int vcpu, uint64_t gpa, uint64_t wval, int size, void *arg) +mem_write(UNUSED void* unused, int vcpu, uint64_t gpa, uint64_t wval, int size, + void *arg) { int error; struct mem_range *mr = arg; - error = (*mr->handler)(ctx, vcpu, MEM_F_WRITE, gpa, size, - &wval, mr->arg1, mr->arg2); + error = (*mr->handler)(vcpu, MEM_F_WRITE, gpa, size, &wval, mr->arg1, + mr->arg2); return (error); } int -emulate_mem(struct vmctx *ctx, int vcpu, uint64_t paddr, struct vie *vie, - struct vm_guest_paging *paging) +emulate_mem(int vcpu, uint64_t paddr, struct vie *vie, + struct vm_guest_paging *paging) { struct mmio_rb_range *entry; int err, immutable; - + pthread_rwlock_rdlock(&mmio_rwlock); /* * First check the per-vCPU cache @@ -202,8 +202,8 @@ emulate_mem(struct vmctx *ctx, int vcpu, uint64_t paddr, struct vie *vie, if (immutable) pthread_rwlock_unlock(&mmio_rwlock); - err = vmm_emulate_instruction(ctx, vcpu, paddr, vie, paging, - mem_read, mem_write, &entry->mr_param); + err = xh_vm_emulate_instruction(vcpu, paddr, vie, paging, mem_read, + mem_write, &entry->mr_param); if (!immutable) pthread_rwlock_unlock(&mmio_rwlock); diff --git a/bhyve/mevent.c b/src/mevent.c similarity index 91% rename from bhyve/mevent.c rename to src/mevent.c index 07d3baf..34a7d0e 100644 --- a/bhyve/mevent.c +++ b/src/mevent.c @@ -31,24 +31,18 @@ * using kqueue, and having events be persistent by default. */ -#include -__FBSDID("$FreeBSD$"); - #include #include #include #include #include #include - +#include #include #include #include - -#include -#include - -#include "mevent.h" +#include +#include #define MEVENT_MAX 64 @@ -64,18 +58,21 @@ static int mevent_timid = 43; static int mevent_pipefd[2]; static pthread_mutex_t mevent_lmutex = PTHREAD_MUTEX_INITIALIZER; -struct mevent { - void (*me_func)(int, enum ev_type, void *); +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" +struct mevent { + void (*me_func)(int, enum ev_type, void *); #define me_msecs me_fd - int me_fd; - int me_timid; + int me_fd; + int me_timid; enum ev_type me_type; - void *me_param; - int me_cq; - int me_state; - int me_closefd; - LIST_ENTRY(mevent) me_list; + void *me_param; + int me_cq; + int me_state; + int me_closefd; + LIST_ENTRY(mevent) me_list; }; +#pragma clang diagnostic pop static LIST_HEAD(listhead, mevent) global_head, change_head; @@ -92,10 +89,10 @@ mevent_qunlock(void) } static void -mevent_pipe_read(int fd, enum ev_type type, void *param) +mevent_pipe_read(int fd, UNUSED enum ev_type type, UNUSED void *param) { char buf[MEVENT_MAX]; - int status; + ssize_t status; /* * Drain the pipe read side. The fd is non-blocking so this is @@ -169,14 +166,14 @@ mevent_kq_flags(struct mevent *mevp) } static int -mevent_kq_fflags(struct mevent *mevp) +mevent_kq_fflags(UNUSED struct mevent *mevp) { /* XXX nothing yet, perhaps EV_EOF for reads ? */ return (0); } static int -mevent_build(int mfd, struct kevent *kev) +mevent_build(UNUSED int mfd, struct kevent *kev) { struct mevent *mevp, *tmpp; int i; @@ -194,15 +191,15 @@ mevent_build(int mfd, struct kevent *kev) close(mevp->me_fd); } else { if (mevp->me_type == EVF_TIMER) { - kev[i].ident = mevp->me_timid; + kev[i].ident = (uintptr_t) mevp->me_timid; kev[i].data = mevp->me_msecs; } else { - kev[i].ident = mevp->me_fd; + kev[i].ident = (uintptr_t) mevp->me_fd; kev[i].data = 0; } - kev[i].filter = mevent_kq_filter(mevp); - kev[i].flags = mevent_kq_flags(mevp); - kev[i].fflags = mevent_kq_fflags(mevp); + kev[i].filter = (int16_t) mevent_kq_filter(mevp); + kev[i].flags = (uint16_t) mevent_kq_flags(mevp); + kev[i].fflags = (uint32_t) mevent_kq_fflags(mevp); kev[i].udata = mevp; i++; } @@ -388,11 +385,9 @@ mevent_delete_close(struct mevent *evp) static void mevent_set_name(void) { - - pthread_set_name_np(mevent_tid, "mevent"); } -void +__attribute__ ((noreturn)) void mevent_dispatch(void) { struct kevent changelist[MEVENT_MAX]; diff --git a/bhyve/mevent_test.c b/src/mevent_test.c similarity index 93% rename from bhyve/mevent_test.c rename to src/mevent_test.c index 9c68ff7..9ab3089 100644 --- a/bhyve/mevent_test.c +++ b/src/mevent_test.c @@ -33,19 +33,18 @@ * cc mevent_test.c mevent.c -lpthread */ +#include #include -#include #include #include #include -#include #include #include #include #include -#include "mevent.h" +#include #define TEST_PORT 4321 @@ -63,6 +62,15 @@ char *vmname = "test vm"; #define TEVSZ 4096 uint64_t tevbuf[TEVSZ]; +static __inline uint64_t rdtsc(void) +{ + unsigned a, d; + __asm__ __volatile__ ("cpuid"); + __asm__ __volatile__ ("rdtsc" : "=a" (a), "=d" (d)); + + return (((uint64_t) a) | (((uint64_t) d) << 32)); +} + static void timer_print(void) { @@ -87,7 +95,7 @@ timer_print(void) max = diff; } - printf("timers done: usecs, min %ld, max %ld, mean %ld\n", min, max, + printf("timers done: usecs, min %llu, max %llu, mean %llu\n", min, max, sum/(TEVSZ - 1)); } @@ -246,11 +254,14 @@ acceptor(void *param) return (NULL); } -main() +int +main(void) { pthread_t tid; pthread_create(&tid, NULL, acceptor, NULL); mevent_dispatch(); + + return (0); } diff --git a/bhyve/mptbl.c b/src/mptbl.c similarity index 88% rename from bhyve/mptbl.c rename to src/mptbl.c index 904d103..df2b10b 100644 --- a/bhyve/mptbl.c +++ b/src/mptbl.c @@ -1,5 +1,6 @@ /*- * Copyright (c) 2012 NetApp, Inc. + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,20 +27,19 @@ * $FreeBSD$ */ -#include -__FBSDID("$FreeBSD$"); - -#include -#include -#include +// #include +#include #include #include - -#include "acpi.h" -#include "bhyverun.h" -#include "mptbl.h" -#include "pci_emul.h" +#include +#include +#include +#include +#include +#include +#include +#include #define MPTABLE_BASE 0xF0000 @@ -95,16 +95,15 @@ mpt_compute_checksum(void *base, size_t len) sum += *bytes++; } - return (256 - sum); + return ((uint8_t) (256 - sum)); } static void -mpt_build_mpfp(mpfps_t mpfp, vm_paddr_t gpa) +mpt_build_mpfp(mpfps_t mpfp, uint64_t gpa) { - memset(mpfp, 0, sizeof(*mpfp)); memcpy(mpfp->signature, MPFP_SIG, 4); - mpfp->pap = gpa + sizeof(*mpfp); + mpfp->pap = (uint32_t) (gpa + sizeof(*mpfp)); mpfp->length = 1; mpfp->spec_rev = MP_SPECREV; mpfp->checksum = mpt_compute_checksum(mpfp, sizeof(*mpfp)); @@ -130,7 +129,7 @@ mpt_build_proc_entries(proc_entry_ptr mpep, int ncpu) for (i = 0; i < ncpu; i++) { memset(mpep, 0, sizeof(*mpep)); mpep->type = MPCT_ENTRY_PROCESSOR; - mpep->apic_id = i; // XXX + mpep->apic_id = (uint8_t) i; // XXX mpep->apic_version = LAPIC_VERSION; mpep->cpu_flags = PROCENTRY_FLAG_EN; if (i == 0) @@ -187,7 +186,7 @@ mpt_build_ioapic_entries(io_apic_entry_ptr mpei, int id) memset(mpei, 0, sizeof(*mpei)); mpei->type = MPCT_ENTRY_IOAPIC; - mpei->apic_id = id; + mpei->apic_id = (uint8_t) id; mpei->apic_version = IOAPIC_VERSION; mpei->apic_flags = IOAPICENTRY_FLAG_EN; mpei->apic_address = IOAPIC_PADDR; @@ -210,8 +209,8 @@ mpt_count_ioint_entries(void) } static void -mpt_generate_pci_int(int bus, int slot, int pin, int pirq_pin, int ioapic_irq, - void *arg) +mpt_generate_pci_int(int bus, int slot, int pin, UNUSED int pirq_pin, + int ioapic_irq, void *arg) { int_entry_ptr *mpiep, mpie; @@ -225,10 +224,10 @@ mpt_generate_pci_int(int bus, int slot, int pin, int pirq_pin, int ioapic_irq, */ mpie->type = MPCT_ENTRY_INT; mpie->int_type = INTENTRY_TYPE_INT; - mpie->src_bus_id = bus; - mpie->src_bus_irq = slot << 2 | (pin - 1); + mpie->src_bus_id = (uint8_t) bus; + mpie->src_bus_irq = (uint8_t) (slot << 2 | (pin - 1)); mpie->dst_apic_id = mpie[-1].dst_apic_id; - mpie->dst_apic_int = ioapic_irq; + mpie->dst_apic_int = (uint8_t) ioapic_irq; *mpiep = mpie + 1; } @@ -249,13 +248,13 @@ mpt_build_ioint_entries(int_entry_ptr mpie, int id) memset(mpie, 0, sizeof(*mpie)); mpie->type = MPCT_ENTRY_INT; mpie->src_bus_id = 1; - mpie->dst_apic_id = id; + mpie->dst_apic_id = (uint8_t) id; /* * All default configs route IRQs from bus 0 to the first 16 * pins of the first I/O APIC with an APIC ID of 2. */ - mpie->dst_apic_int = pin; + mpie->dst_apic_int = (uint8_t) pin; switch (pin) { case 0: /* Pin 0 is an ExtINT pin. */ @@ -276,7 +275,7 @@ mpt_build_ioint_entries(int_entry_ptr mpie, int id) default: /* All other pins are identity mapped. */ mpie->int_type = INTENTRY_TYPE_INT; - mpie->src_bus_irq = pin; + mpie->src_bus_irq = (uint8_t) pin; break; } mpie++; @@ -296,7 +295,7 @@ mptable_add_oemtbl(void *tbl, int tblsz) } int -mptable_build(struct vmctx *ctx, int ncpu) +mptable_build(int ncpu) { mpcth_t mpch; bus_entry_ptr mpeb; @@ -308,7 +307,7 @@ mptable_build(struct vmctx *ctx, int ncpu) char *curraddr; char *startaddr; - startaddr = paddr_guest2host(ctx, MPTABLE_BASE, MPTABLE_MAX_LENGTH); + startaddr = paddr_guest2host(MPTABLE_BASE, MPTABLE_MAX_LENGTH); if (startaddr == NULL) { fprintf(stderr, "mptable requires mapped mem\n"); return (ENOMEM); @@ -340,7 +339,7 @@ mptable_build(struct vmctx *ctx, int ncpu) mpep = (proc_entry_ptr)curraddr; mpt_build_proc_entries(mpep, ncpu); - curraddr += sizeof(*mpep) * ncpu; + curraddr += sizeof(*mpep) * ((uint64_t) ncpu); mpch->entry_count += ncpu; mpeb = (bus_entry_ptr) curraddr; @@ -356,7 +355,7 @@ mptable_build(struct vmctx *ctx, int ncpu) mpie = (int_entry_ptr) curraddr; ioints = mpt_count_ioint_entries(); mpt_build_ioint_entries(mpie, 0); - curraddr += sizeof(*mpie) * ioints; + curraddr += sizeof(*mpie) * ((uint64_t) ioints); mpch->entry_count += ioints; mpie = (int_entry_ptr)curraddr; @@ -365,12 +364,13 @@ mptable_build(struct vmctx *ctx, int ncpu) mpch->entry_count += MPEII_NUM_LOCAL_IRQ; if (oem_tbl_start) { - mpch->oem_table_pointer = curraddr - startaddr + MPTABLE_BASE; - mpch->oem_table_size = oem_tbl_size; + mpch->oem_table_pointer = + (uint32_t) (curraddr - startaddr + MPTABLE_BASE); + mpch->oem_table_size = (uint16_t) oem_tbl_size; memcpy(curraddr, oem_tbl_start, oem_tbl_size); } - mpch->base_table_length = curraddr - (char *)mpch; + mpch->base_table_length = (uint16_t) (curraddr - (char *)mpch); mpch->checksum = mpt_compute_checksum(mpch, mpch->base_table_length); return (0); diff --git a/bhyve/pci_ahci.c b/src/pci_ahci.c similarity index 84% rename from bhyve/pci_ahci.c rename to src/pci_ahci.c index 35a0859..456a218 100644 --- a/bhyve/pci_ahci.c +++ b/src/pci_ahci.c @@ -1,5 +1,6 @@ /*- * Copyright (c) 2013 Zhixiang Yu + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,36 +27,32 @@ * $FreeBSD$ */ -#include -__FBSDID("$FreeBSD$"); - +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include #include #include #include #include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "bhyverun.h" -#include "pci_emul.h" -#include "ahci.h" -#include "block_if.h" +#include +// #include +#include +#include +#include +#include +#include +#include +#include +#include #define MAX_PORTS 6 /* Intel ICH8 AHCI supports 6 ports */ @@ -83,13 +80,13 @@ enum sata_fis_type { #define PREVENT_ALLOW 0x1E #define READ_CAPACITY 0x25 #define READ_10 0x28 -#define POSITION_TO_ELEMENT 0x2B +// #define POSITION_TO_ELEMENT 0x2B #define READ_TOC 0x43 #define GET_EVENT_STATUS_NOTIFICATION 0x4A #define MODE_SENSE_10 0x5A #define REPORT_LUNS 0xA0 #define READ_12 0xA8 -#define READ_CD 0xBE +// #define READ_CD 0xBE /* * SCSI mode page codes @@ -102,18 +99,25 @@ enum sata_fis_type { */ #define ATA_SF_ENAB_SATA_SF 0x10 #define ATA_SATA_SF_AN 0x05 -#define ATA_SF_DIS_SATA_SF 0x90 +// #define ATA_SF_DIS_SATA_SF 0x90 /* * Debug printf */ #ifdef AHCI_DEBUG static FILE *dbg; -#define DPRINTF(format, arg...) do{fprintf(dbg, format, ##arg);fflush(dbg);}while(0) +#define DPRINTF(format, ...) \ + do { \ + fprintf(dbg, format, __VA_ARGS__); \ + fflush(dbg); \ + } while(0) #else -#define DPRINTF(format, arg...) +#define DPRINTF(format, ...) #endif -#define WPRINTF(format, arg...) printf(format, ##arg) +#define WPRINTF(format, ...) printf(format, __VA_ARGS__) + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" struct ahci_ioreq { struct blockif_req io_req; @@ -204,14 +208,15 @@ struct pci_ahci_softc { uint32_t lintr; struct ahci_port port[MAX_PORTS]; }; -#define ahci_ctx(sc) ((sc)->asc_pi->pi_vmctx) + +#pragma clang diagnostic pop static void ahci_handle_port(struct ahci_port *p); static inline void lba_to_msf(uint8_t *buf, int lba) { lba += 150; - buf[0] = (lba / 75) / 60; + buf[0] = (uint8_t) ((lba / 75) / 60); buf[1] = (lba / 75) % 60; buf[2] = lba % 75; } @@ -285,7 +290,11 @@ ahci_write_fis(struct ahci_port *p, enum sata_fis_type ft, uint8_t *fis) len = 20; irq = (fis[1] & (1 << 6)) ? AHCI_P_IX_PS : 0; break; - default: + case FIS_TYPE_REGH2D: + case FIS_TYPE_DMAACT: + case FIS_TYPE_DMASETUP: + case FIS_TYPE_DATA: + case FIS_TYPE_BIST: WPRINTF("unsupported fis type %d\n", ft); return; } @@ -295,7 +304,7 @@ ahci_write_fis(struct ahci_port *p, enum sata_fis_type ft, uint8_t *fis) } memcpy(p->rfis + offset, fis, len); if (irq) { - p->is |= irq; + p->is |= ((unsigned) irq); ahci_generate_intr(p->pr_sc); } } @@ -321,18 +330,18 @@ ahci_write_fis_sdb(struct ahci_port *p, int slot, uint8_t *cfis, uint32_t tfd) memset(fis, 0, sizeof(fis)); fis[0] = FIS_TYPE_SETDEVBITS; fis[1] = (1 << 6); - fis[2] = tfd; + fis[2] = (uint8_t) tfd; fis[3] = error; if (fis[2] & ATA_S_ERROR) { - p->err_cfis[0] = slot; - p->err_cfis[2] = tfd; + p->err_cfis[0] = (uint8_t) slot; + p->err_cfis[2] = (uint8_t) tfd; p->err_cfis[3] = error; memcpy(&p->err_cfis[4], cfis + 4, 16); } else { - *(uint32_t *)(fis + 4) = (1 << slot); + *(uint32_t *)((void *) (fis + 4)) = (1 << slot); p->sact &= ~(1 << slot); } - p->tfd &= ~0x77; + p->tfd &= ~((unsigned) 0x77); p->tfd |= tfd; ahci_write_fis(p, FIS_TYPE_SETDEVBITS, fis); } @@ -378,9 +387,9 @@ ahci_write_fis_d2h_ncq(struct ahci_port *p, int slot) p->tfd = ATA_S_READY | ATA_S_DSC; memset(fis, 0, sizeof(fis)); fis[0] = FIS_TYPE_REGD2H; - fis[1] = 0; /* No interrupt */ - fis[2] = p->tfd; /* Status */ - fis[3] = 0; /* No error */ + fis[1] = 0; /* No interrupt */ + fis[2] = (uint8_t) p->tfd; /* Status */ + fis[3] = 0; /* No error */ p->ci &= ~(1 << slot); ahci_write_fis(p, FIS_TYPE_REGD2H, fis); } @@ -413,7 +422,7 @@ ahci_check_stopped(struct ahci_port *p) if (!(p->cmd & AHCI_P_CMD_ST)) { if (p->pending == 0) { p->ccs = 0; - p->cmd &= ~(AHCI_P_CMD_CR | AHCI_P_CMD_CCS_MASK); + p->cmd &= ~((unsigned) (AHCI_P_CMD_CR | AHCI_P_CMD_CCS_MASK)); p->ci = 0; p->sact = 0; p->waitforclear = 0; @@ -430,7 +439,7 @@ ahci_port_stop(struct ahci_port *p) int ncq; int error; - assert(pthread_mutex_isowned_np(&p->pr_sc->mtx)); + ncq = 0; TAILQ_FOREACH(aior, &p->iobhd, io_blist) { /* @@ -445,7 +454,9 @@ ahci_port_stop(struct ahci_port *p) if (cfis[2] == ATA_WRITE_FPDMA_QUEUED || cfis[2] == ATA_READ_FPDMA_QUEUED || cfis[2] == ATA_SEND_FPDMA_QUEUED) + { ncq = 1; + } if (ncq) p->sact &= ~(1 << slot); @@ -530,7 +541,7 @@ ata_string(uint8_t *dest, const char *src, int len) for (i = 0; i < len; i++) { if (*src) - dest[i ^ 1] = *src++; + dest[i ^ 1] = (uint8_t) *src++; else dest[i ^ 1] = ' '; } @@ -543,7 +554,7 @@ atapi_string(uint8_t *dest, const char *src, int len) for (i = 0; i < len; i++) { if (*src) - dest[i] = *src++; + dest[i] = (uint8_t) *src++; else dest[i] = ' '; } @@ -561,22 +572,23 @@ ahci_build_iov(struct ahci_port *p, struct ahci_ioreq *aior, uint32_t dbcsz; /* Copy part of PRDT between 'done' and 'len' bytes into the iov. */ - skip = aior->done; - left = aior->len - aior->done; + skip = (int) aior->done; + left = (int) (aior->len - aior->done); todo = 0; for (i = 0, j = 0; i < prdtl && j < BLOCKIF_IOV_MAX && left > 0; i++, prdt++) { dbcsz = (prdt->dbc & DBCMASK) + 1; /* Skip already done part of the PRDT */ - if (dbcsz <= skip) { + if (dbcsz <= ((uint32_t) skip)) { skip -= dbcsz; continue; } - dbcsz -= skip; - if (dbcsz > left) - dbcsz = left; - breq->br_iov[j].iov_base = paddr_guest2host(ahci_ctx(p->pr_sc), - prdt->dba + skip, dbcsz); + dbcsz -= ((unsigned) skip); + if (dbcsz > ((uint32_t) left)) { + dbcsz = ((uint32_t) left); + } + breq->br_iov[j].iov_base = + paddr_guest2host((prdt->dba + ((uint64_t) skip)), dbcsz); breq->br_iov[j].iov_len = dbcsz; todo += dbcsz; left -= dbcsz; @@ -590,8 +602,8 @@ ahci_build_iov(struct ahci_port *p, struct ahci_ioreq *aior, todo -= extra; assert(todo > 0); while (extra > 0) { - if (breq->br_iov[j - 1].iov_len > extra) { - breq->br_iov[j - 1].iov_len -= extra; + if (breq->br_iov[j - 1].iov_len > ((size_t) extra)) { + breq->br_iov[j - 1].iov_len -= ((size_t) extra); break; } extra -= breq->br_iov[j - 1].iov_len; @@ -601,7 +613,7 @@ ahci_build_iov(struct ahci_port *p, struct ahci_ioreq *aior, breq->br_iovcnt = j; breq->br_resid = todo; - aior->done += todo; + aior->done += ((unsigned) todo); aior->more = (aior->done < aior->len && i < prdtl); } @@ -616,8 +628,8 @@ ahci_handle_rw(struct ahci_port *p, int slot, uint8_t *cfis, uint32_t done) uint32_t len; int err, first, ncq, readop; - prdt = (struct ahci_prdt_entry *)(cfis + 0x80); - hdr = (struct ahci_cmd_hdr *)(p->cmd_lst + slot * AHCI_CL_SIZE); + prdt = (struct ahci_prdt_entry *)((void *) (cfis + 0x80)); + hdr = (struct ahci_cmd_hdr *)((void *) (p->cmd_lst + slot * AHCI_CL_SIZE)); ncq = 0; readop = 1; first = (done == 0); @@ -636,7 +648,7 @@ ahci_handle_rw(struct ahci_port *p, int slot, uint8_t *cfis, uint32_t done) ((uint64_t)cfis[6] << 16) | ((uint64_t)cfis[5] << 8) | cfis[4]; - len = cfis[11] << 8 | cfis[3]; + len = (uint32_t) (cfis[11] << 8 | cfis[3]); if (!len) len = 65536; ncq = 1; @@ -649,18 +661,18 @@ ahci_handle_rw(struct ahci_port *p, int slot, uint8_t *cfis, uint32_t done) ((uint64_t)cfis[6] << 16) | ((uint64_t)cfis[5] << 8) | cfis[4]; - len = cfis[13] << 8 | cfis[12]; + len = (uint32_t) (cfis[13] << 8 | cfis[12]); if (!len) len = 65536; } else { - lba = ((cfis[7] & 0xf) << 24) | (cfis[6] << 16) | - (cfis[5] << 8) | cfis[4]; + lba = (uint64_t) (((cfis[7] & 0xf) << 24) | (cfis[6] << 16) | + (cfis[5] << 8) | cfis[4]); len = cfis[12]; if (!len) len = 256; } - lba *= blockif_sectsz(p->bctx); - len *= blockif_sectsz(p->bctx); + lba *= (uint64_t) blockif_sectsz(p->bctx); + len *= (uint32_t) blockif_sectsz(p->bctx); /* Pull request off free list */ aior = STAILQ_FIRST(&p->iofhd); @@ -672,7 +684,7 @@ ahci_handle_rw(struct ahci_port *p, int slot, uint8_t *cfis, uint32_t done) aior->len = len; aior->done = done; breq = &aior->io_req; - breq->br_offset = lba + done; + breq->br_offset = (off_t) (lba + done); ahci_build_iov(p, aior, prdt, hdr->prdtl); /* Mark this command in-flight. */ @@ -734,21 +746,21 @@ read_prdt(struct ahci_port *p, int slot, uint8_t *cfis, void *to; int i, len; - hdr = (struct ahci_cmd_hdr *)(p->cmd_lst + slot * AHCI_CL_SIZE); + hdr = (struct ahci_cmd_hdr *)((void *) (p->cmd_lst + slot * AHCI_CL_SIZE)); len = size; to = buf; - prdt = (struct ahci_prdt_entry *)(cfis + 0x80); + prdt = (struct ahci_prdt_entry *)((void *) (cfis + 0x80)); for (i = 0; i < hdr->prdtl && len; i++) { uint8_t *ptr; uint32_t dbcsz; int sublen; dbcsz = (prdt->dbc & DBCMASK) + 1; - ptr = paddr_guest2host(ahci_ctx(p->pr_sc), prdt->dba, dbcsz); - sublen = len < dbcsz ? len : dbcsz; + ptr = paddr_guest2host(prdt->dba, dbcsz); + sublen = ((len < ((int) dbcsz)) ? len : ((int) dbcsz)); memcpy(to, ptr, sublen); len -= sublen; - to += sublen; + to = (uint8_t *) (((uintptr_t) to) + ((uintptr_t) sublen)); prdt++; } } @@ -766,11 +778,11 @@ ahci_handle_dsm_trim(struct ahci_port *p, int slot, uint8_t *cfis, uint32_t done first = (done == 0); if (cfis[2] == ATA_DATA_SET_MANAGEMENT) { - len = (uint16_t)cfis[13] << 8 | cfis[12]; + len = (uint32_t) ((((uint16_t) cfis[13]) << 8) | cfis[12]); len *= 512; ncq = 0; } else { /* ATA_SEND_FPDMA_QUEUED */ - len = (uint16_t)cfis[11] << 8 | cfis[3]; + len = (uint32_t) ((((uint16_t) cfis[11]) << 8) | cfis[3]); len *= 512; ncq = 1; } @@ -784,7 +796,7 @@ next: ((uint64_t)entry[2] << 16) | ((uint64_t)entry[1] << 8) | entry[0]; - elen = (uint16_t)entry[7] << 8 | entry[6]; + elen = (uint32_t) ((((uint16_t) entry[7]) << 8) | entry[6]); done += 8; if (elen == 0) { if (done >= len) { @@ -811,8 +823,8 @@ next: aior->more = (len != done); breq = &aior->io_req; - breq->br_offset = elba * blockif_sectsz(p->bctx); - breq->br_resid = elen * blockif_sectsz(p->bctx); + breq->br_offset = (off_t) (elba * ((uint64_t) blockif_sectsz(p->bctx))); + breq->br_resid = elen * ((unsigned) blockif_sectsz(p->bctx)); /* * Mark this command in-flight. @@ -840,24 +852,24 @@ write_prdt(struct ahci_port *p, int slot, uint8_t *cfis, void *from; int i, len; - hdr = (struct ahci_cmd_hdr *)(p->cmd_lst + slot * AHCI_CL_SIZE); + hdr = (struct ahci_cmd_hdr *)((void *) (p->cmd_lst + slot * AHCI_CL_SIZE)); len = size; from = buf; - prdt = (struct ahci_prdt_entry *)(cfis + 0x80); + prdt = (struct ahci_prdt_entry *)((void *) (cfis + 0x80)); for (i = 0; i < hdr->prdtl && len; i++) { uint8_t *ptr; uint32_t dbcsz; int sublen; dbcsz = (prdt->dbc & DBCMASK) + 1; - ptr = paddr_guest2host(ahci_ctx(p->pr_sc), prdt->dba, dbcsz); - sublen = len < dbcsz ? len : dbcsz; + ptr = paddr_guest2host(prdt->dba, dbcsz); + sublen = (len < ((int) dbcsz)) ? len : ((int) dbcsz); memcpy(ptr, from, sublen); len -= sublen; - from += sublen; + from = (void *) (((uintptr_t) from) + ((uintptr_t) sublen)); prdt++; } - hdr->prdbc = size - len; + hdr->prdbc = (uint32_t) (size - len); } static void @@ -868,7 +880,7 @@ ahci_checksum(uint8_t *buf, int size) for (i = 0; i < size - 1; i++) sum += buf[i]; - buf[size - 1] = 0x100 - sum; + buf[size - 1] = (uint8_t) (0x100 - sum); } static void @@ -877,7 +889,7 @@ ahci_handle_read_log(struct ahci_port *p, int slot, uint8_t *cfis) struct ahci_cmd_hdr *hdr; uint8_t buf[512]; - hdr = (struct ahci_cmd_hdr *)(p->cmd_lst + slot * AHCI_CL_SIZE); + hdr = (struct ahci_cmd_hdr *)((void *) (p->cmd_lst + slot * AHCI_CL_SIZE)); if (p->atapi || hdr->prdtl == 0 || cfis[4] != 0x10 || cfis[5] != 0 || cfis[9] != 0 || cfis[12] != 1 || cfis[13] != 0) { ahci_write_fis_d2h(p, slot, cfis, @@ -900,7 +912,7 @@ handle_identify(struct ahci_port *p, int slot, uint8_t *cfis) { struct ahci_cmd_hdr *hdr; - hdr = (struct ahci_cmd_hdr *)(p->cmd_lst + slot * AHCI_CL_SIZE); + hdr = (struct ahci_cmd_hdr *)((void *) (p->cmd_lst + slot * AHCI_CL_SIZE)); if (p->atapi || hdr->prdtl == 0) { ahci_write_fis_d2h(p, slot, cfis, (ATA_E_ABORT << 8) | ATA_S_READY | ATA_S_ERROR); @@ -914,7 +926,7 @@ handle_identify(struct ahci_port *p, int slot, uint8_t *cfis) ro = blockif_is_ro(p->bctx); candelete = blockif_candelete(p->bctx); sectsz = blockif_sectsz(p->bctx); - sectors = blockif_size(p->bctx) / sectsz; + sectors = (uint64_t) (blockif_size(p->bctx) / sectsz); blockif_chs(p->bctx, &cyl, &heads, &sech); blockif_psectsz(p->bctx, &psectsz, &psectoff); memset(buf, 0, sizeof(buf)); @@ -931,10 +943,10 @@ handle_identify(struct ahci_port *p, int slot, uint8_t *cfis) buf[50] = (1 << 14); buf[53] = (1 << 1 | 1 << 2); if (p->mult_sectors) - buf[59] = (0x100 | p->mult_sectors); + buf[59] = (uint16_t) (0x100 | p->mult_sectors); if (sectors <= 0x0fffffff) { - buf[60] = sectors; - buf[61] = (sectors >> 16); + buf[60] = (uint16_t) sectors; + buf[61] = (uint16_t)(sectors >> 16); } else { buf[60] = 0xffff; buf[61] = 0x0fff; @@ -968,9 +980,9 @@ handle_identify(struct ahci_port *p, int slot, uint8_t *cfis) buf[88] = 0x7f; if (p->xfermode & ATA_UDMA0) buf[88] |= (1 << ((p->xfermode & 7) + 8)); - buf[100] = sectors; - buf[101] = (sectors >> 16); - buf[102] = (sectors >> 32); + buf[100] = (uint16_t) sectors; + buf[101] = (uint16_t) (sectors >> 16); + buf[102] = (uint16_t) (sectors >> 32); buf[103] = (sectors >> 48); if (candelete && !ro) { buf[69] |= ATA_SUPPORT_RZAT | ATA_SUPPORT_DRAT; @@ -986,8 +998,8 @@ handle_identify(struct ahci_port *p, int slot, uint8_t *cfis) } if (sectsz > 512) { buf[106] |= 0x1000; - buf[117] = sectsz / 2; - buf[118] = ((sectsz / 2) >> 16); + buf[117] = (uint16_t) (sectsz / 2); + buf[118] = (uint16_t) ((sectsz / 2) >> 16); } buf[119] = (ATA_SUPPORT_RWLOGDMAEXT | 1 << 14); buf[120] = (ATA_SUPPORT_RWLOGDMAEXT | 1 << 14); @@ -1070,7 +1082,7 @@ atapi_inquiry(struct ahci_port *p, int slot, uint8_t *cfis) } else { p->sense_key = ATA_SENSE_ILLEGAL_REQUEST; p->asc = 0x24; - tfd = (p->sense_key << 12) | ATA_S_READY | ATA_S_ERROR; + tfd = (uint32_t) ((p->sense_key << 12) | ATA_S_READY | ATA_S_ERROR); cfis[4] = (cfis[4] & ~7) | ATA_I_CMD | ATA_I_IN; ahci_write_fis_d2h(p, slot, cfis, tfd); return; @@ -1097,14 +1109,52 @@ atapi_inquiry(struct ahci_port *p, int slot, uint8_t *cfis) ahci_write_fis_d2h(p, slot, cfis, ATA_S_READY | ATA_S_DSC); } +static __inline void +be16enc(void *pp, uint16_t u) +{ + unsigned char *p = (unsigned char *)pp; + + p[0] = (u >> 8) & 0xff; + p[1] = u & 0xff; +} + +static __inline uint16_t +be16dec(const void *pp) +{ + unsigned char const *p = (unsigned char const *)pp; + + return ((uint16_t) ((((uint32_t) p[0]) << 8) | ((uint32_t) p[1]))); +} + +static __inline void +be32enc(void *pp, uint32_t u) +{ + unsigned char *p = (unsigned char *)pp; + + p[0] = (u >> 24) & 0xff; + p[1] = (u >> 16) & 0xff; + p[2] = (u >> 8) & 0xff; + p[3] = u & 0xff; +} + +static __inline uint32_t +be32dec(const void *pp) +{ + unsigned char const *p = (unsigned char const *)pp; + + return (uint32_t) ((((uint64_t) p[0]) << 24) | + (((uint64_t) p[1]) << 16) | (((uint64_t) p[2]) << 8) | + ((uint64_t) p[3])); +} + static void atapi_read_capacity(struct ahci_port *p, int slot, uint8_t *cfis) { uint8_t buf[8]; uint64_t sectors; - sectors = blockif_size(p->bctx) / 2048; - be32enc(buf, sectors - 1); + sectors = (uint64_t) (blockif_size(p->bctx) / 2048); + be32enc(buf, ((uint32_t) (sectors - 1))); be32enc(buf + 4, 2048); cfis[4] = (cfis[4] & ~7) | ATA_I_CMD | ATA_I_IN; write_prdt(p, slot, cfis, buf, sizeof(buf)); @@ -1135,7 +1185,7 @@ atapi_read_toc(struct ahci_port *p, int slot, uint8_t *cfis) uint32_t tfd; p->sense_key = ATA_SENSE_ILLEGAL_REQUEST; p->asc = 0x24; - tfd = (p->sense_key << 12) | ATA_S_READY | ATA_S_ERROR; + tfd = (uint32_t) ((p->sense_key << 12) | ATA_S_READY | ATA_S_ERROR); cfis[4] = (cfis[4] & ~7) | ATA_I_CMD | ATA_I_IN; ahci_write_fis_d2h(p, slot, cfis, tfd); return; @@ -1163,18 +1213,18 @@ atapi_read_toc(struct ahci_port *p, int slot, uint8_t *cfis) *bp++ = 0x14; *bp++ = 0xaa; *bp++ = 0; - sectors = blockif_size(p->bctx) / blockif_sectsz(p->bctx); + sectors = (uint64_t) (blockif_size(p->bctx) / blockif_sectsz(p->bctx)); sectors >>= 2; if (msf) { *bp++ = 0; - lba_to_msf(bp, sectors); + lba_to_msf(bp, ((int) sectors)); bp += 3; } else { - be32enc(bp, sectors); + be32enc(bp, ((uint32_t) sectors)); bp += 4; } - size = bp - buf; - be16enc(buf, size - 2); + size = (int) (bp - buf); + be16enc(buf, ((uint16_t) (size - 2))); if (len > size) len = size; write_prdt(p, slot, cfis, buf, len); @@ -1190,7 +1240,7 @@ atapi_read_toc(struct ahci_port *p, int slot, uint8_t *cfis) buf[1] = 0xa; buf[2] = 0x1; buf[3] = 0x1; - if (len > sizeof(buf)) + if (((size_t) len) > sizeof(buf)) len = sizeof(buf); write_prdt(p, slot, cfis, buf, len); cfis[4] = (cfis[4] & ~7) | ATA_I_CMD | ATA_I_IN; @@ -1240,14 +1290,14 @@ atapi_read_toc(struct ahci_port *p, int slot, uint8_t *cfis) *bp++ = 0; *bp++ = 0; *bp++ = 0; - sectors = blockif_size(p->bctx) / blockif_sectsz(p->bctx); + sectors = (uint64_t) (blockif_size(p->bctx) / blockif_sectsz(p->bctx)); sectors >>= 2; if (msf) { *bp++ = 0; - lba_to_msf(bp, sectors); + lba_to_msf(bp, ((int) sectors)); bp += 3; } else { - be32enc(bp, sectors); + be32enc(bp, ((uint32_t) sectors)); bp += 4; } @@ -1269,8 +1319,8 @@ atapi_read_toc(struct ahci_port *p, int slot, uint8_t *cfis) *bp++ = 0; } - size = bp - buf; - be16enc(buf, size - 2); + size = (int) (bp - buf); + be16enc(buf, ((uint16_t) (size - 2))); if (len > size) len = size; write_prdt(p, slot, cfis, buf, len); @@ -1284,7 +1334,7 @@ atapi_read_toc(struct ahci_port *p, int slot, uint8_t *cfis) p->sense_key = ATA_SENSE_ILLEGAL_REQUEST; p->asc = 0x24; - tfd = (p->sense_key << 12) | ATA_S_READY | ATA_S_ERROR; + tfd = (uint32_t) ((p->sense_key << 12) | ATA_S_READY | ATA_S_ERROR); cfis[4] = (cfis[4] & ~7) | ATA_I_CMD | ATA_I_IN; ahci_write_fis_d2h(p, slot, cfis, tfd); break; @@ -1320,8 +1370,8 @@ atapi_read(struct ahci_port *p, int slot, uint8_t *cfis, uint32_t done) sc = p->pr_sc; acmd = cfis + 0x40; - hdr = (struct ahci_cmd_hdr *)(p->cmd_lst + slot * AHCI_CL_SIZE); - prdt = (struct ahci_prdt_entry *)(cfis + 0x80); + hdr = (struct ahci_cmd_hdr *)((void *) (p->cmd_lst + slot * AHCI_CL_SIZE)); + prdt = (struct ahci_prdt_entry *)((void *) (cfis + 0x80)); lba = be32dec(acmd + 2); if (acmd[0] == READ_10) @@ -1346,7 +1396,7 @@ atapi_read(struct ahci_port *p, int slot, uint8_t *cfis, uint32_t done) aior->len = len; aior->done = done; breq = &aior->io_req; - breq->br_offset = lba + done; + breq->br_offset = (off_t) (lba + ((uint64_t) done)); ahci_build_iov(p, aior, prdt, hdr->prdtl); /* Mark this command in-flight. */ @@ -1368,7 +1418,7 @@ atapi_request_sense(struct ahci_port *p, int slot, uint8_t *cfis) acmd = cfis + 0x40; len = acmd[4]; - if (len > sizeof(buf)) + if (((size_t) len) > sizeof(buf)) len = sizeof(buf); memset(buf, 0, len); buf[0] = 0x70 | (1 << 7); @@ -1386,6 +1436,8 @@ atapi_start_stop_unit(struct ahci_port *p, int slot, uint8_t *cfis) uint8_t *acmd = cfis + 0x40; uint32_t tfd; + tfd = 0; + switch (acmd[4] & 3) { case 0: case 1: @@ -1398,7 +1450,7 @@ atapi_start_stop_unit(struct ahci_port *p, int slot, uint8_t *cfis) cfis[4] = (cfis[4] & ~7) | ATA_I_CMD | ATA_I_IN; p->sense_key = ATA_SENSE_ILLEGAL_REQUEST; p->asc = 0x53; - tfd = (p->sense_key << 12) | ATA_S_READY | ATA_S_ERROR; + tfd = (uint32_t) ((p->sense_key << 12) | ATA_S_READY | ATA_S_ERROR); break; } ahci_write_fis_d2h(p, slot, cfis, tfd); @@ -1412,6 +1464,8 @@ atapi_mode_sense(struct ahci_port *p, int slot, uint8_t *cfis) uint8_t pc, code; int len; + tfd = 0; + acmd = cfis + 0x40; len = be16dec(acmd + 7); pc = acmd[2] >> 6; @@ -1424,8 +1478,9 @@ atapi_mode_sense(struct ahci_port *p, int slot, uint8_t *cfis) { uint8_t buf[16]; - if (len > sizeof(buf)) + if (((size_t) len) > sizeof(buf)) { len = sizeof(buf); + } memset(buf, 0, sizeof(buf)); be16enc(buf, 16 - 2); @@ -1441,8 +1496,9 @@ atapi_mode_sense(struct ahci_port *p, int slot, uint8_t *cfis) { uint8_t buf[30]; - if (len > sizeof(buf)) + if (((size_t) len) > sizeof(buf)) { len = sizeof(buf); + } memset(buf, 0, sizeof(buf)); be16enc(buf, 30 - 2); @@ -1459,20 +1515,19 @@ atapi_mode_sense(struct ahci_port *p, int slot, uint8_t *cfis) } default: goto error; - break; } break; case 3: p->sense_key = ATA_SENSE_ILLEGAL_REQUEST; p->asc = 0x39; - tfd = (p->sense_key << 12) | ATA_S_READY | ATA_S_ERROR; + tfd = (uint32_t) ((p->sense_key << 12) | ATA_S_READY | ATA_S_ERROR); break; error: case 1: case 2: p->sense_key = ATA_SENSE_ILLEGAL_REQUEST; p->asc = 0x24; - tfd = (p->sense_key << 12) | ATA_S_READY | ATA_S_ERROR; + tfd = (uint32_t) ((p->sense_key << 12) | ATA_S_READY | ATA_S_ERROR); break; } cfis[4] = (cfis[4] & ~7) | ATA_I_CMD | ATA_I_IN; @@ -1492,14 +1547,15 @@ atapi_get_event_status_notification(struct ahci_port *p, int slot, if (!(acmd[1] & 1)) { p->sense_key = ATA_SENSE_ILLEGAL_REQUEST; p->asc = 0x24; - tfd = (p->sense_key << 12) | ATA_S_READY | ATA_S_ERROR; + tfd = (uint32_t) ((p->sense_key << 12) | ATA_S_READY | ATA_S_ERROR); } else { uint8_t buf[8]; int len; len = be16dec(acmd + 7); - if (len > sizeof(buf)) + if (((size_t) len) > sizeof(buf)) { len = sizeof(buf); + } memset(buf, 0, sizeof(buf)); be16enc(buf, 8 - 2); @@ -1572,8 +1628,8 @@ handle_packet_cmd(struct ahci_port *p, int slot, uint8_t *cfis) cfis[4] = (cfis[4] & ~7) | ATA_I_CMD | ATA_I_IN; p->sense_key = ATA_SENSE_ILLEGAL_REQUEST; p->asc = 0x20; - ahci_write_fis_d2h(p, slot, cfis, (p->sense_key << 12) | - ATA_S_READY | ATA_S_ERROR); + ahci_write_fis_d2h(p, slot, cfis, ((uint32_t) (p->sense_key << 12)) | + ((uint32_t) (ATA_S_READY | ATA_S_ERROR))); break; } } @@ -1722,11 +1778,11 @@ ahci_handle_slot(struct ahci_port *p, int slot) int cfl; sc = p->pr_sc; - hdr = (struct ahci_cmd_hdr *)(p->cmd_lst + slot * AHCI_CL_SIZE); + hdr = (struct ahci_cmd_hdr *)((void *) (p->cmd_lst + slot * AHCI_CL_SIZE)); cfl = (hdr->flags & 0x1f) * 4; - cfis = paddr_guest2host(ahci_ctx(sc), hdr->ctba, - 0x80 + hdr->prdtl * sizeof(struct ahci_prdt_entry)); - prdt = (struct ahci_prdt_entry *)(cfis + 0x80); + cfis = paddr_guest2host(hdr->ctba, + 0x80 + hdr->prdtl * sizeof(struct ahci_prdt_entry)); + prdt = (struct ahci_prdt_entry *)((void *) (cfis + 0x80)); #ifdef AHCI_DEBUG DPRINTF("\ncfis:"); @@ -1778,9 +1834,9 @@ ahci_handle_port(struct ahci_port *p) if (p->waitforclear) break; if ((p->ci & ~p->pending & (1 << p->ccs)) != 0) { - p->cmd &= ~AHCI_P_CMD_CCS_MASK; + p->cmd &= ~((unsigned) AHCI_P_CMD_CCS_MASK); p->cmd |= p->ccs << AHCI_P_CMD_CCS_SHIFT; - ahci_handle_slot(p, p->ccs); + ahci_handle_slot(p, ((int) p->ccs)); } } } @@ -1808,7 +1864,7 @@ ata_ioreq_cb(struct blockif_req *br, int err) cfis = aior->cfis; slot = aior->slot; sc = p->pr_sc; - hdr = (struct ahci_cmd_hdr *)(p->cmd_lst + slot * AHCI_CL_SIZE); + hdr = (struct ahci_cmd_hdr *)((void *) (p->cmd_lst + slot * AHCI_CL_SIZE)); if (cfis[2] == ATA_WRITE_FPDMA_QUEUED || cfis[2] == ATA_READ_FPDMA_QUEUED || @@ -1881,7 +1937,8 @@ atapi_ioreq_cb(struct blockif_req *br, int err) cfis = aior->cfis; slot = aior->slot; sc = p->pr_sc; - hdr = (struct ahci_cmd_hdr *)(p->cmd_lst + aior->slot * AHCI_CL_SIZE); + hdr = (struct ahci_cmd_hdr *) + ((void *) (p->cmd_lst + aior->slot * AHCI_CL_SIZE)); pthread_mutex_lock(&sc->mtx); @@ -1908,7 +1965,7 @@ atapi_ioreq_cb(struct blockif_req *br, int err) } else { p->sense_key = ATA_SENSE_ILLEGAL_REQUEST; p->asc = 0x21; - tfd = (p->sense_key << 12) | ATA_S_READY | ATA_S_ERROR; + tfd = (uint32_t) ((p->sense_key << 12) | ATA_S_READY | ATA_S_ERROR); } cfis[4] = (cfis[4] & ~7) | ATA_I_CMD | ATA_I_IN; ahci_write_fis_d2h(p, slot, cfis, tfd); @@ -1932,7 +1989,7 @@ pci_ahci_ioreq_init(struct ahci_port *pr) int i; pr->ioqsz = blockif_queuesz(pr->bctx); - pr->ioreq = calloc(pr->ioqsz, sizeof(struct ahci_ioreq)); + pr->ioreq = calloc(((size_t) pr->ioqsz), sizeof(struct ahci_ioreq)); STAILQ_INIT(&pr->iofhd); /* @@ -1955,7 +2012,7 @@ pci_ahci_ioreq_init(struct ahci_port *pr) static void pci_ahci_port_write(struct pci_ahci_softc *sc, uint64_t offset, uint64_t value) { - int port = (offset - AHCI_OFFSET) / AHCI_STEP; + int port = (int) ((offset - AHCI_OFFSET) / AHCI_STEP); offset = (offset - AHCI_OFFSET) % AHCI_STEP; struct ahci_port *p = &sc->port[port]; @@ -1964,16 +2021,16 @@ pci_ahci_port_write(struct pci_ahci_softc *sc, uint64_t offset, uint64_t value) switch (offset) { case AHCI_P_CLB: - p->clb = value; + p->clb = (uint32_t) value; break; case AHCI_P_CLBU: - p->clbu = value; + p->clbu = (uint32_t) value; break; case AHCI_P_FB: - p->fb = value; + p->fb = (uint32_t) value; break; case AHCI_P_FBU: - p->fbu = value; + p->fbu = (uint32_t) value; break; case AHCI_P_IS: p->is &= ~value; @@ -2000,8 +2057,7 @@ pci_ahci_port_write(struct pci_ahci_softc *sc, uint64_t offset, uint64_t value) p->cmd |= AHCI_P_CMD_CR; clb = (uint64_t)p->clbu << 32 | p->clb; - p->cmd_lst = paddr_guest2host(ahci_ctx(sc), clb, - AHCI_CL_SIZE * AHCI_MAX_SLOTS); + p->cmd_lst = paddr_guest2host(clb, AHCI_CL_SIZE * AHCI_MAX_SLOTS); } if (value & AHCI_P_CMD_FRE) { @@ -2010,14 +2066,14 @@ pci_ahci_port_write(struct pci_ahci_softc *sc, uint64_t offset, uint64_t value) p->cmd |= AHCI_P_CMD_FR; fb = (uint64_t)p->fbu << 32 | p->fb; /* we don't support FBSCP, so rfis size is 256Bytes */ - p->rfis = paddr_guest2host(ahci_ctx(sc), fb, 256); + p->rfis = paddr_guest2host(fb, 256); } else { - p->cmd &= ~AHCI_P_CMD_FR; + p->cmd &= ~((unsigned) AHCI_P_CMD_FR); } if (value & AHCI_P_CMD_CLO) { - p->tfd &= ~(ATA_S_BUSY | ATA_S_DRQ); - p->cmd &= ~AHCI_P_CMD_CLO; + p->tfd &= ~((unsigned) (ATA_S_BUSY | ATA_S_DRQ)); + p->cmd &= ~((unsigned) AHCI_P_CMD_CLO); } if (value & AHCI_P_CMD_ICC_MASK) { @@ -2033,7 +2089,7 @@ pci_ahci_port_write(struct pci_ahci_softc *sc, uint64_t offset, uint64_t value) WPRINTF("pci_ahci_port: read only registers 0x%"PRIx64"\n", offset); break; case AHCI_P_SCTL: - p->sctl = value; + p->sctl = (uint32_t) value; if (!(p->cmd & AHCI_P_CMD_ST)) { if (value & ATA_SC_DET_RESET) ahci_port_reset(p); @@ -2087,8 +2143,8 @@ pci_ahci_host_write(struct pci_ahci_softc *sc, uint64_t offset, uint64_t value) } static void -pci_ahci_write(struct vmctx *ctx, int vcpu, struct pci_devinst *pi, - int baridx, uint64_t offset, int size, uint64_t value) +pci_ahci_write(UNUSED int vcpu, struct pci_devinst *pi, int baridx, + uint64_t offset, int size, uint64_t value) { struct pci_ahci_softc *sc = pi->pi_arg; @@ -2099,7 +2155,7 @@ pci_ahci_write(struct vmctx *ctx, int vcpu, struct pci_devinst *pi, if (offset < AHCI_OFFSET) pci_ahci_host_write(sc, offset, value); - else if (offset < AHCI_OFFSET + sc->ports * AHCI_STEP) + else if (offset < ((uint64_t) (AHCI_OFFSET + (sc->ports * AHCI_STEP)))) pci_ahci_port_write(sc, offset, value); else WPRINTF("pci_ahci: unknown i/o write offset 0x%"PRIx64"\n", offset); @@ -2143,7 +2199,7 @@ static uint64_t pci_ahci_port_read(struct pci_ahci_softc *sc, uint64_t offset) { uint32_t value; - int port = (offset - AHCI_OFFSET) / AHCI_STEP; + int port = (int) ((offset - AHCI_OFFSET) / AHCI_STEP); offset = (offset - AHCI_OFFSET) % AHCI_STEP; switch (offset) { @@ -2181,8 +2237,8 @@ pci_ahci_port_read(struct pci_ahci_softc *sc, uint64_t offset) } static uint64_t -pci_ahci_read(struct vmctx *ctx, int vcpu, struct pci_devinst *pi, int baridx, - uint64_t regoff, int size) +pci_ahci_read(UNUSED int vcpu, struct pci_devinst *pi, int baridx, + uint64_t regoff, int size) { struct pci_ahci_softc *sc = pi->pi_arg; uint64_t offset; @@ -2190,15 +2246,16 @@ pci_ahci_read(struct vmctx *ctx, int vcpu, struct pci_devinst *pi, int baridx, assert(baridx == 5); assert(size == 1 || size == 2 || size == 4); - assert((regoff & (size - 1)) == 0); + assert((regoff & ((uint64_t) (size - 1))) == 0); pthread_mutex_lock(&sc->mtx); - offset = regoff & ~0x3; /* round down to a multiple of 4 bytes */ + /* round down to a multiple of 4 bytes */ + offset = regoff & ~((uint64_t) 0x3); if (offset < AHCI_OFFSET) - value = pci_ahci_host_read(sc, offset); - else if (offset < AHCI_OFFSET + sc->ports * AHCI_STEP) - value = pci_ahci_port_read(sc, offset); + value = (uint32_t) pci_ahci_host_read(sc, offset); + else if (offset < ((uint64_t) (AHCI_OFFSET + (sc->ports * AHCI_STEP)))) + value = (uint32_t) pci_ahci_port_read(sc, offset); else { value = 0; WPRINTF("pci_ahci: unknown i/o read offset 0x%"PRIx64"\n", @@ -2212,7 +2269,7 @@ pci_ahci_read(struct vmctx *ctx, int vcpu, struct pci_devinst *pi, int baridx, } static int -pci_ahci_init(struct vmctx *ctx, struct pci_devinst *pi, char *opts, int atapi) +pci_ahci_init(struct pci_devinst *pi, char *opts, int atapi) { char bident[sizeof("XX:X:X")]; struct blockif_ctxt *bctxt; @@ -2261,7 +2318,7 @@ pci_ahci_init(struct vmctx *ctx, struct pci_devinst *pi, char *opts, int atapi) * md5 sum of the filename */ MD5Init(&mdctx); - MD5Update(&mdctx, opts, strlen(opts)); + MD5Update(&mdctx, opts, ((unsigned int) strlen(opts))); MD5Final(digest, &mdctx); sprintf(sc->port[0].ident, "BHYVE-%02X%02X-%02X%02X-%02X%02X", digest[0], digest[1], digest[2], digest[3], digest[4], digest[5]); @@ -2283,7 +2340,8 @@ pci_ahci_init(struct vmctx *ctx, struct pci_devinst *pi, char *opts, int atapi) AHCI_CAP_SMPS | AHCI_CAP_SSS | AHCI_CAP_SALP | AHCI_CAP_SAL | AHCI_CAP_SCLO | (0x3 << AHCI_CAP_ISS_SHIFT)| AHCI_CAP_PMD | AHCI_CAP_SSC | AHCI_CAP_PSC | - (slots << AHCI_CAP_NCS_SHIFT) | AHCI_CAP_SXS | (sc->ports - 1); + (((unsigned) slots) << AHCI_CAP_NCS_SHIFT) | AHCI_CAP_SXS | + (((unsigned) sc->ports) - 1); /* Only port 0 implemented */ sc->pi = 1; @@ -2298,7 +2356,7 @@ pci_ahci_init(struct vmctx *ctx, struct pci_devinst *pi, char *opts, int atapi) pci_set_cfgdata8(pi, PCIR_PROGIF, PCIP_STORAGE_SATA_AHCI_1_0); pci_emul_add_msicap(pi, 1); pci_emul_alloc_bar(pi, 5, PCIBAR_MEM32, - AHCI_OFFSET + sc->ports * AHCI_STEP); + ((uint64_t) (AHCI_OFFSET + sc->ports * AHCI_STEP))); pci_lintr_request(pi); @@ -2313,23 +2371,21 @@ open_fail: } static int -pci_ahci_hd_init(struct vmctx *ctx, struct pci_devinst *pi, char *opts) +pci_ahci_hd_init(struct pci_devinst *pi, char *opts) { - - return (pci_ahci_init(ctx, pi, opts, 0)); + return (pci_ahci_init(pi, opts, 0)); } static int -pci_ahci_atapi_init(struct vmctx *ctx, struct pci_devinst *pi, char *opts) +pci_ahci_atapi_init(struct pci_devinst *pi, char *opts) { - - return (pci_ahci_init(ctx, pi, opts, 1)); + return (pci_ahci_init(pi, opts, 1)); } /* * Use separate emulation names to distinguish drive and atapi devices */ -struct pci_devemu pci_de_ahci_hd = { +static struct pci_devemu pci_de_ahci_hd = { .pe_emu = "ahci-hd", .pe_init = pci_ahci_hd_init, .pe_barwrite = pci_ahci_write, @@ -2337,7 +2393,7 @@ struct pci_devemu pci_de_ahci_hd = { }; PCI_EMUL_SET(pci_de_ahci_hd); -struct pci_devemu pci_de_ahci_cd = { +static struct pci_devemu pci_de_ahci_cd = { .pe_emu = "ahci-cd", .pe_init = pci_ahci_atapi_init, .pe_barwrite = pci_ahci_write, diff --git a/bhyve/pci_emul.c b/src/pci_emul.c similarity index 84% rename from bhyve/pci_emul.c rename to src/pci_emul.c index 03ff0c0..10a09f9 100644 --- a/bhyve/pci_emul.c +++ b/src/pci_emul.c @@ -1,5 +1,6 @@ /*- * Copyright (c) 2011 NetApp, Inc. + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,53 +27,47 @@ * $FreeBSD$ */ -#include -__FBSDID("$FreeBSD$"); - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include +#include #include +#include +#include +#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include -#include "acpi.h" -#include "bhyverun.h" -#include "inout.h" -#include "ioapic.h" -#include "mem.h" -#include "pci_emul.h" -#include "pci_irq.h" -#include "pci_lpc.h" +#define CONF1_ADDR_PORT 0x0cf8 +#define CONF1_DATA_PORT0 0x0cfc +#define CONF1_DATA_PORT1 0x0cfd +#define CONF1_DATA_PORT2 0x0cfe +#define CONF1_DATA_PORT3 0x0cff -#define CONF1_ADDR_PORT 0x0cf8 -#define CONF1_DATA_PORT 0x0cfc +#define CONF1_ENABLE 0x80000000ul -#define CONF1_ENABLE 0x80000000ul - -#define MAXBUSES (PCI_BUSMAX + 1) -#define MAXSLOTS (PCI_SLOTMAX + 1) -#define MAXFUNCS (PCI_FUNCMAX + 1) +#define MAXBUSES (PCI_BUSMAX + 1) +#define MAXSLOTS (PCI_SLOTMAX + 1) +#define MAXFUNCS (PCI_FUNCMAX + 1) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" struct funcinfo { - char *fi_name; - char *fi_param; + char *fi_name; + char *fi_param; struct pci_devinst *fi_devi; }; struct intxinfo { - int ii_count; - int ii_pirq_pin; - int ii_ioapic_irq; + int ii_count; + int ii_pirq_pin; + int ii_ioapic_irq; }; struct slotinfo { @@ -81,11 +76,12 @@ struct slotinfo { }; struct businfo { - uint16_t iobase, iolimit; /* I/O window */ - uint32_t membase32, memlimit32; /* mmio window below 4GB */ - uint64_t membase64, memlimit64; /* mmio window above 4GB */ + uint16_t iobase, iolimit; /* I/O window */ + uint32_t membase32, memlimit32; /* mmio window below 4GB */ + uint64_t membase64, memlimit64; /* mmio window above 4GB */ struct slotinfo slotinfo[MAXSLOTS]; }; +#pragma clang diagnostic pop static struct businfo *pci_businfo[MAXBUSES]; @@ -110,17 +106,17 @@ SYSRES_MEM(PCI_EMUL_ECFG_BASE, PCI_EMUL_ECFG_SIZE); static struct pci_devemu *pci_emul_finddev(char *name); static void pci_lintr_route(struct pci_devinst *pi); static void pci_lintr_update(struct pci_devinst *pi); -static void pci_cfgrw(struct vmctx *ctx, int vcpu, int in, int bus, int slot, - int func, int coff, int bytes, uint32_t *val); +static void pci_cfgrw(int vcpu, int in, int bus, int slot, int func, int coff, + int bytes, uint32_t *val); static __inline void CFGWRITE(struct pci_devinst *pi, int coff, uint32_t val, int bytes) { if (bytes == 1) - pci_set_cfgdata8(pi, coff, val); + pci_set_cfgdata8(pi, coff, ((uint8_t) val)); else if (bytes == 2) - pci_set_cfgdata16(pi, coff, val); + pci_set_cfgdata16(pi, coff, ((uint16_t) val)); else pci_set_cfgdata32(pi, coff, val); } @@ -159,7 +155,6 @@ CFGREAD(struct pci_devinst *pi, int coff, int bytes) static void pci_parse_slot_usage(char *aopt) { - fprintf(stderr, "Invalid PCI slot info field \"%s\"\n", aopt); } @@ -242,7 +237,7 @@ pci_valid_pba_offset(struct pci_devinst *pi, uint64_t offset) if (offset < pi->pi_msix.pba_offset) return (0); - if (offset >= pi->pi_msix.pba_offset + pi->pi_msix.pba_size) { + if (offset >= pi->pi_msix.pba_offset + ((unsigned) pi->pi_msix.pba_size)) { return (0); } @@ -264,7 +259,7 @@ pci_emul_msix_twrite(struct pci_devinst *pi, uint64_t offset, int size, /* * Return if table index is beyond what device supports */ - tab_index = offset / MSIX_TABLE_ENTRY_SIZE; + tab_index = (int) (offset / MSIX_TABLE_ENTRY_SIZE); if (tab_index >= pi->pi_msix.table_count) return (-1); @@ -278,9 +273,9 @@ pci_emul_msix_twrite(struct pci_devinst *pi, uint64_t offset, int size, dest += msix_entry_offset; if (size == 4) - *((uint32_t *)dest) = value; + *((uint32_t *)((void *) dest)) = (uint32_t) value; else - *((uint64_t *)dest) = value; + *((uint64_t *)((void *) dest)) = value; return (0); } @@ -291,7 +286,7 @@ pci_emul_msix_tread(struct pci_devinst *pi, uint64_t offset, int size) char *dest; int msix_entry_offset; int tab_index; - uint64_t retval = ~0; + uint64_t retval = ~((uint64_t) 0); /* * The PCI standard only allows 4 and 8 byte accesses to the MSI-X @@ -308,7 +303,7 @@ pci_emul_msix_tread(struct pci_devinst *pi, uint64_t offset, int size) return (retval); } - tab_index = offset / MSIX_TABLE_ENTRY_SIZE; + tab_index = (int) (offset / MSIX_TABLE_ENTRY_SIZE); if (tab_index < pi->pi_msix.table_count) { /* valid MSI-X Table access */ @@ -316,11 +311,11 @@ pci_emul_msix_tread(struct pci_devinst *pi, uint64_t offset, int size) dest += msix_entry_offset; if (size == 1) - retval = *((uint8_t *)dest); + retval = *((uint8_t *)((void *) dest)); else if (size == 4) - retval = *((uint32_t *)dest); + retval = *((uint32_t *)((void *) dest)); else - retval = *((uint64_t *)dest); + retval = *((uint64_t *)((void *) dest)); } else if (pci_valid_pba_offset(pi, offset)) { /* return 0 for PBA access */ retval = 0; @@ -350,8 +345,8 @@ pci_msix_pba_bar(struct pci_devinst *pi) } static int -pci_emul_io_handler(struct vmctx *ctx, int vcpu, int in, int port, int bytes, - uint32_t *eax, void *arg) +pci_emul_io_handler(int vcpu, int in, int port, int bytes, uint32_t *eax, + void *arg) { struct pci_devinst *pdi = arg; struct pci_devemu *pe = pdi->pi_d; @@ -359,16 +354,17 @@ pci_emul_io_handler(struct vmctx *ctx, int vcpu, int in, int port, int bytes, int i; for (i = 0; i <= PCI_BARMAX; i++) { - if (pdi->pi_bar[i].type == PCIBAR_IO && - port >= pdi->pi_bar[i].addr && - port + bytes <= pdi->pi_bar[i].addr + pdi->pi_bar[i].size) { - offset = port - pdi->pi_bar[i].addr; + if ((pdi->pi_bar[i].type == PCIBAR_IO) && + (((uint64_t) port) >= pdi->pi_bar[i].addr) && + (((uint64_t) (port + bytes)) <= + (pdi->pi_bar[i].addr + pdi->pi_bar[i].size))) + { + offset = ((uint64_t) port) - pdi->pi_bar[i].addr; if (in) - *eax = (*pe->pe_barread)(ctx, vcpu, pdi, i, - offset, bytes); + *eax = (uint32_t) (*pe->pe_barread)(vcpu, pdi, i, offset, + bytes); else - (*pe->pe_barwrite)(ctx, vcpu, pdi, i, offset, - bytes, *eax); + (*pe->pe_barwrite)(vcpu, pdi, i, offset, bytes, *eax); return (0); } } @@ -376,7 +372,7 @@ pci_emul_io_handler(struct vmctx *ctx, int vcpu, int in, int port, int bytes, } static int -pci_emul_mem_handler(struct vmctx *ctx, int vcpu, int dir, uint64_t addr, +pci_emul_mem_handler(int vcpu, int dir, uint64_t addr, int size, uint64_t *val, void *arg1, long arg2) { struct pci_devinst *pdi = arg1; @@ -385,32 +381,27 @@ pci_emul_mem_handler(struct vmctx *ctx, int vcpu, int dir, uint64_t addr, int bidx = (int) arg2; assert(bidx <= PCI_BARMAX); - assert(pdi->pi_bar[bidx].type == PCIBAR_MEM32 || - pdi->pi_bar[bidx].type == PCIBAR_MEM64); - assert(addr >= pdi->pi_bar[bidx].addr && - addr + size <= pdi->pi_bar[bidx].addr + pdi->pi_bar[bidx].size); + assert((pdi->pi_bar[bidx].type == PCIBAR_MEM32) || + (pdi->pi_bar[bidx].type == PCIBAR_MEM64)); + assert((addr >= pdi->pi_bar[bidx].addr) && + ((addr + ((uint64_t) size)) <= + (pdi->pi_bar[bidx].addr + pdi->pi_bar[bidx].size))); offset = addr - pdi->pi_bar[bidx].addr; if (dir == MEM_F_WRITE) { if (size == 8) { - (*pe->pe_barwrite)(ctx, vcpu, pdi, bidx, offset, - 4, *val & 0xffffffff); - (*pe->pe_barwrite)(ctx, vcpu, pdi, bidx, offset + 4, - 4, *val >> 32); + (*pe->pe_barwrite)(vcpu, pdi, bidx, offset, 4, *val & 0xffffffff); + (*pe->pe_barwrite)(vcpu, pdi, bidx, offset + 4, 4, *val >> 32); } else { - (*pe->pe_barwrite)(ctx, vcpu, pdi, bidx, offset, - size, *val); + (*pe->pe_barwrite)(vcpu, pdi, bidx, offset, size, *val); } } else { if (size == 8) { - *val = (*pe->pe_barread)(ctx, vcpu, pdi, bidx, - offset, 4); - *val |= (*pe->pe_barread)(ctx, vcpu, pdi, bidx, - offset + 4, 4) << 32; + *val = (*pe->pe_barread)(vcpu, pdi, bidx, offset, 4); + *val |= (*pe->pe_barread)(vcpu, pdi, bidx, offset + 4, 4) << 32; } else { - *val = (*pe->pe_barread)(ctx, vcpu, pdi, bidx, - offset, size); + *val = (*pe->pe_barread)(vcpu, pdi, bidx, offset, size); } } @@ -459,8 +450,8 @@ modify_bar_registration(struct pci_devinst *pi, int idx, int registration) case PCIBAR_IO: bzero(&iop, sizeof(struct inout_port)); iop.name = pi->pi_name; - iop.port = pi->pi_bar[idx].addr; - iop.size = pi->pi_bar[idx].size; + iop.port = (int) pi->pi_bar[idx].addr; + iop.size = (int)pi->pi_bar[idx].size; if (registration) { iop.flags = IOPORT_F_INOUT; iop.handler = pci_emul_io_handler; @@ -484,7 +475,8 @@ modify_bar_registration(struct pci_devinst *pi, int idx, int registration) } else error = unregister_mem(&mr); break; - default: + case PCIBAR_NONE: + case PCIBAR_MEMHI64: error = EINVAL; break; } @@ -576,8 +568,11 @@ pci_emul_alloc_pbar(struct pci_devinst *pdi, int idx, uint64_t hostbase, assert(idx >= 0 && idx <= PCI_BARMAX); + addr = 0; + limit = 0; + if ((size & (size - 1)) != 0) - size = 1UL << flsl(size); /* round up to a power of 2 */ + size = 1UL << flsl((long) size); /* round up to a power of 2 */ /* Enforce minimum BAR sizes required by the PCI standard */ if (type == PCIBAR_IO) { @@ -633,7 +628,7 @@ pci_emul_alloc_pbar(struct pci_devinst *pdi, int idx, uint64_t hostbase, mask = PCIM_BAR_MEM_BASE; lobits = PCIM_BAR_MEM_SPACE | PCIM_BAR_MEM_32; break; - default: + case PCIBAR_MEMHI64: printf("pci_emul_alloc_base: invalid bar type %d\n", type); assert(0); } @@ -650,7 +645,7 @@ pci_emul_alloc_pbar(struct pci_devinst *pdi, int idx, uint64_t hostbase, /* Initialize the BAR register in config space */ bar = (addr & mask) | lobits; - pci_set_cfgdata32(pdi, PCIR_BAR(idx), bar); + pci_set_cfgdata32(pdi, PCIR_BAR(idx), ((uint32_t) bar)); if (type == PCIBAR_MEM64) { assert(idx + 1 <= PCI_BARMAX); @@ -686,10 +681,10 @@ pci_emul_add_capability(struct pci_devinst *pi, u_char *capdata, int caplen) /* Set the previous capability pointer */ if ((sts & PCIM_STATUS_CAPPRESENT) == 0) { - pci_set_cfgdata8(pi, PCIR_CAP_PTR, capoff); + pci_set_cfgdata8(pi, PCIR_CAP_PTR, ((uint8_t) capoff)); pci_set_cfgdata16(pi, PCIR_STATUS, sts|PCIM_STATUS_CAPPRESENT); } else - pci_set_cfgdata8(pi, pi->pi_prevcap + 1, capoff); + pci_set_cfgdata8(pi, pi->pi_prevcap + 1, ((uint8_t) capoff)); /* Copy the capability */ for (i = 0; i < caplen; i++) @@ -719,7 +714,7 @@ pci_emul_finddev(char *name) } static int -pci_emul_init(struct vmctx *ctx, struct pci_devemu *pde, int bus, int slot, +pci_emul_init(struct pci_devemu *pde, int bus, int slot, int func, struct funcinfo *fi) { struct pci_devinst *pdi; @@ -727,10 +722,9 @@ pci_emul_init(struct vmctx *ctx, struct pci_devemu *pde, int bus, int slot, pdi = calloc(1, sizeof(struct pci_devinst)); - pdi->pi_vmctx = ctx; - pdi->pi_bus = bus; - pdi->pi_slot = slot; - pdi->pi_func = func; + pdi->pi_bus = (uint8_t) bus; + pdi->pi_slot = (uint8_t) slot; + pdi->pi_func = (uint8_t) func; pthread_mutex_init(&pdi->pi_lintr.lock, NULL); pdi->pi_lintr.pin = 0; pdi->pi_lintr.state = IDLE; @@ -746,7 +740,7 @@ pci_emul_init(struct vmctx *ctx, struct pci_devemu *pde, int bus, int slot, pci_set_cfgdata8(pdi, PCIR_COMMAND, PCIM_CMD_PORTEN | PCIM_CMD_MEMEN | PCIM_CMD_BUSMASTEREN); - err = (*pde->pe_init)(ctx, pdi, fi->fi_param); + err = (*pde->pe_init)(pdi, fi->fi_param); if (err == 0) fi->fi_devi = pdi; else @@ -768,8 +762,8 @@ pci_populate_msicap(struct msicap *msicap, int msgnum, int nextptr) bzero(msicap, sizeof(struct msicap)); msicap->capid = PCIY_MSI; - msicap->nextptr = nextptr; - msicap->msgctrl = PCIM_MSICTRL_64BIT | (mmc << 1); + msicap->nextptr = (uint8_t) nextptr; + msicap->msgctrl = (uint16_t) (PCIM_MSICTRL_64BIT | (mmc << 1)); } int @@ -798,7 +792,7 @@ pci_populate_msixcap(struct msixcap *msixcap, int msgnum, int barnum, * zero except for the Table Size. * Note: Table size N is encoded as N-1 */ - msixcap->msgctrl = msgnum - 1; + msixcap->msgctrl = (uint16_t) (msgnum - 1); /* * MSI-X BAR setup: @@ -818,7 +812,7 @@ pci_msix_table_init(struct pci_devinst *pi, int table_entries) assert(table_entries <= MAX_MSIX_TABLE_ENTRIES); table_size = table_entries * MSIX_TABLE_ENTRY_SIZE; - pi->pi_msix.table = calloc(1, table_size); + pi->pi_msix.table = calloc(1, ((size_t) table_size)); /* set mask bit of vector control register */ for (i = 0; i < table_entries; i++) @@ -834,10 +828,10 @@ pci_emul_add_msixcap(struct pci_devinst *pi, int msgnum, int barnum) assert(msgnum >= 1 && msgnum <= MAX_MSIX_TABLE_ENTRIES); assert(barnum >= 0 && barnum <= PCIR_MAX_BAR_0); - tab_size = msgnum * MSIX_TABLE_ENTRY_SIZE; + tab_size = (uint32_t) (msgnum * MSIX_TABLE_ENTRY_SIZE); /* Align table size to nearest 4K */ - tab_size = roundup2(tab_size, 4096); + tab_size = roundup2(tab_size, 4096u); pi->pi_msix.table_bar = barnum; pi->pi_msix.pba_bar = barnum; @@ -852,7 +846,7 @@ pci_emul_add_msixcap(struct pci_devinst *pi, int msgnum, int barnum) /* allocate memory for MSI-X Table and PBA */ pci_emul_alloc_bar(pi, barnum, PCIBAR_MEM32, - tab_size + pi->pi_msix.pba_size); + (tab_size + ((uint32_t) pi->pi_msix.pba_size))); return (pci_emul_add_capability(pi, (u_char *)&msixcap, sizeof(msixcap))); @@ -922,8 +916,8 @@ msicap_cfgwrite(struct pci_devinst *pi, int capoff, int offset, CFGWRITE(pi, offset, val, bytes); } -void -pciecap_cfgwrite(struct pci_devinst *pi, int capoff, int offset, +static void +pciecap_cfgwrite(struct pci_devinst *pi, UNUSED int capoff, int offset, int bytes, uint32_t val) { @@ -1026,8 +1020,8 @@ pci_emul_iscap(struct pci_devinst *pi, int offset) } static int -pci_emul_fallback_handler(struct vmctx *ctx, int vcpu, int dir, uint64_t addr, - int size, uint64_t *val, void *arg1, long arg2) +pci_emul_fallback_handler(UNUSED int vcpu, int dir, UNUSED uint64_t addr, + UNUSED int size, uint64_t *val, UNUSED void *arg1, UNUSED long arg2) { /* * Ignore writes; return 0xff's for reads. The mem read code @@ -1041,8 +1035,8 @@ pci_emul_fallback_handler(struct vmctx *ctx, int vcpu, int dir, uint64_t addr, } static int -pci_emul_ecfg_handler(struct vmctx *ctx, int vcpu, int dir, uint64_t addr, - int bytes, uint64_t *val, void *arg1, long arg2) +pci_emul_ecfg_handler(int vcpu, int dir, uint64_t addr, int bytes, + uint64_t *val, UNUSED void *arg1, UNUSED long arg2) { int bus, slot, func, coff, in; @@ -1053,7 +1047,7 @@ pci_emul_ecfg_handler(struct vmctx *ctx, int vcpu, int dir, uint64_t addr, in = (dir == MEM_F_READ); if (in) *val = ~0UL; - pci_cfgrw(ctx, vcpu, in, bus, slot, func, coff, bytes, (uint32_t *)val); + pci_cfgrw(vcpu, in, bus, slot, func, coff, bytes, (uint32_t *)val); return (0); } @@ -1068,7 +1062,7 @@ pci_ecfg_base(void) #define BUSMEM_ROUNDUP (1024 * 1024) int -init_pci(struct vmctx *ctx) +init_pci(void) { struct mem_range mr; struct pci_devemu *pde; @@ -1080,7 +1074,7 @@ init_pci(struct vmctx *ctx) int error; pci_emul_iobase = PCI_EMUL_IOBASE; - pci_emul_membase32 = vm_get_lowmem_limit(ctx); + pci_emul_membase32 = xh_vm_get_lowmem_limit(); pci_emul_membase64 = PCI_EMUL_MEMBASE64; for (bus = 0; bus < MAXBUSES; bus++) { @@ -1090,9 +1084,9 @@ init_pci(struct vmctx *ctx) * Keep track of the i/o and memory resources allocated to * this bus. */ - bi->iobase = pci_emul_iobase; - bi->membase32 = pci_emul_membase32; - bi->membase64 = pci_emul_membase64; + bi->iobase = (uint16_t) pci_emul_iobase; + bi->membase32 = (uint32_t) pci_emul_membase32; + bi->membase64 = (uint32_t) pci_emul_membase64; for (slot = 0; slot < MAXSLOTS; slot++) { si = &bi->slotinfo[slot]; @@ -1102,8 +1096,7 @@ init_pci(struct vmctx *ctx) continue; pde = pci_emul_finddev(fi->fi_name); assert(pde != NULL); - error = pci_emul_init(ctx, pde, bus, slot, - func, fi); + error = pci_emul_init(pde, bus, slot, func, fi); if (error) return (error); } @@ -1115,17 +1108,17 @@ init_pci(struct vmctx *ctx) * reprogram the BARs. */ pci_emul_iobase += BUSIO_ROUNDUP; - pci_emul_iobase = roundup2(pci_emul_iobase, BUSIO_ROUNDUP); - bi->iolimit = pci_emul_iobase; + pci_emul_iobase = roundup2(pci_emul_iobase, ((uint32_t) BUSIO_ROUNDUP)); + bi->iolimit = (uint16_t) pci_emul_iobase; pci_emul_membase32 += BUSMEM_ROUNDUP; pci_emul_membase32 = roundup2(pci_emul_membase32, - BUSMEM_ROUNDUP); - bi->memlimit32 = pci_emul_membase32; + ((uint64_t) BUSMEM_ROUNDUP)); + bi->memlimit32 = (uint32_t) pci_emul_membase32; pci_emul_membase64 += BUSMEM_ROUNDUP; pci_emul_membase64 = roundup2(pci_emul_membase64, - BUSMEM_ROUNDUP); + ((uint64_t) BUSMEM_ROUNDUP)); bi->memlimit64 = pci_emul_membase64; } @@ -1164,7 +1157,7 @@ init_pci(struct vmctx *ctx) * Accesses to memory addresses that are not allocated to system * memory or PCI devices return 0xff's. */ - lowmem = vm_get_lowmem_size(ctx); + lowmem = xh_vm_get_lowmem_size(); bzero(&mr, sizeof(struct mem_range)); mr.name = "PCI hole"; mr.flags = MEM_F_RW | MEM_F_IMMUTABLE; @@ -1188,8 +1181,8 @@ init_pci(struct vmctx *ctx) } static void -pci_apic_prt_entry(int bus, int slot, int pin, int pirq_pin, int ioapic_irq, - void *arg) +pci_apic_prt_entry(UNUSED int bus, int slot, int pin, UNUSED int pirq_pin, + int ioapic_irq, UNUSED void *arg) { dsdt_line(" Package ()"); @@ -1202,8 +1195,8 @@ pci_apic_prt_entry(int bus, int slot, int pin, int pirq_pin, int ioapic_irq, } static void -pci_pirq_prt_entry(int bus, int slot, int pin, int pirq_pin, int ioapic_irq, - void *arg) +pci_pirq_prt_entry(UNUSED int bus, int slot, int pin, int pirq_pin, + UNUSED int ioapic_irq, UNUSED void *arg) { char *name; @@ -1406,7 +1399,7 @@ pci_msi_enabled(struct pci_devinst *pi) return (pi->pi_msi.enabled); } -int +static int pci_msi_maxmsgnum(struct pci_devinst *pi) { if (pi->pi_msi.enabled) @@ -1439,7 +1432,7 @@ pci_generate_msix(struct pci_devinst *pi, int index) mte = &pi->pi_msix.table[index]; if ((mte->vector_control & PCIM_MSIX_VCTRL_MASK) == 0) { /* XXX Set PBA bit if interrupt is disabled */ - vm_lapic_msi(pi->pi_vmctx, mte->addr, mte->msg_data); + xh_vm_lapic_msi(mte->addr, mte->msg_data); } } @@ -1448,8 +1441,8 @@ pci_generate_msi(struct pci_devinst *pi, int index) { if (pci_msi_enabled(pi) && index < pci_msi_maxmsgnum(pi)) { - vm_lapic_msi(pi->pi_vmctx, pi->pi_msi.addr, - pi->pi_msi.msg_data + index); + xh_vm_lapic_msi(pi->pi_msi.addr, pi->pi_msi.msg_data + + ((uint64_t) index)); } } @@ -1488,8 +1481,8 @@ pci_lintr_request(struct pci_devinst *pi) } si->si_intpins[bestpin].ii_count++; - pi->pi_lintr.pin = bestpin + 1; - pci_set_cfgdata8(pi, PCIR_INTPIN, bestpin + 1); + pi->pi_lintr.pin = (int8_t) (bestpin + 1); + pci_set_cfgdata8(pi, PCIR_INTPIN, ((uint8_t) (bestpin + 1))); } static void @@ -1518,12 +1511,12 @@ pci_lintr_route(struct pci_devinst *pi) * not yet assigned. */ if (ii->ii_pirq_pin == 0) - ii->ii_pirq_pin = pirq_alloc_pin(pi->pi_vmctx); + ii->ii_pirq_pin = pirq_alloc_pin(); assert(ii->ii_pirq_pin > 0); pi->pi_lintr.ioapic_irq = ii->ii_ioapic_irq; pi->pi_lintr.pirq_pin = ii->ii_pirq_pin; - pci_set_cfgdata8(pi, PCIR_INTLINE, pirq_irq(ii->ii_pirq_pin)); + pci_set_cfgdata8(pi, PCIR_INTLINE, ((uint8_t) pirq_irq(ii->ii_pirq_pin))); } void @@ -1651,13 +1644,13 @@ pci_emul_hdrtype_fixup(int bus, int slot, int off, int bytes, uint32_t *rv) switch (bytes) { case 1: case 2: - *rv &= ~PCIM_MFDEV; + *rv &= ~((uint32_t) PCIM_MFDEV); if (mfdev) { *rv |= PCIM_MFDEV; } break; case 4: - *rv &= ~(PCIM_MFDEV << 16); + *rv &= ~((uint32_t) (PCIM_MFDEV << 16)); if (mfdev) { *rv |= (PCIM_MFDEV << 16); } @@ -1719,9 +1712,7 @@ pci_emul_cmdsts_write(struct pci_devinst *pi, int coff, uint32_t new, int bytes) else unregister_bar(pi, i); } - break; - default: - assert(0); + break; } } @@ -1733,8 +1724,8 @@ pci_emul_cmdsts_write(struct pci_devinst *pi, int coff, uint32_t new, int bytes) } static void -pci_cfgrw(struct vmctx *ctx, int vcpu, int in, int bus, int slot, int func, - int coff, int bytes, uint32_t *eax) +pci_cfgrw(int vcpu, int in, int bus, int slot, int func, int coff, int bytes, + uint32_t *eax) { struct businfo *bi; struct slotinfo *si; @@ -1787,7 +1778,7 @@ pci_cfgrw(struct vmctx *ctx, int vcpu, int in, int bus, int slot, int func, if (in) { /* Let the device emulation override the default handler */ if (pe->pe_cfgread != NULL) { - needcfg = pe->pe_cfgread(ctx, vcpu, pi, coff, bytes, + needcfg = pe->pe_cfgread(vcpu, pi, coff, bytes, eax); } else { needcfg = 1; @@ -1800,7 +1791,7 @@ pci_cfgrw(struct vmctx *ctx, int vcpu, int in, int bus, int slot, int func, } else { /* Let the device emulation override the default handler */ if (pe->pe_cfgwrite != NULL && - (*pe->pe_cfgwrite)(ctx, vcpu, pi, coff, bytes, *eax) == 0) + (*pe->pe_cfgwrite)(vcpu, pi, coff, bytes, *eax) == 0) return; /* @@ -1857,10 +1848,8 @@ pci_cfgrw(struct vmctx *ctx, int vcpu, int in, int bus, int slot, int func, PCIBAR_MEMHI64); } break; - default: - assert(0); } - pci_set_cfgdata32(pi, coff, bar); + pci_set_cfgdata32(pi, coff, ((uint32_t) bar)); } else if (pci_emul_iscap(pi, coff)) { pci_emul_capwrite(pi, coff, bytes, *eax); @@ -1875,8 +1864,8 @@ pci_cfgrw(struct vmctx *ctx, int vcpu, int in, int bus, int slot, int func, static int cfgenable, cfgbus, cfgslot, cfgfunc, cfgoff; static int -pci_emul_cfgaddr(struct vmctx *ctx, int vcpu, int in, int port, int bytes, - uint32_t *eax, void *arg) +pci_emul_cfgaddr(UNUSED int vcpu, int in, UNUSED int port, int bytes, + uint32_t *eax, UNUSED void *arg) { uint32_t x; @@ -1887,7 +1876,9 @@ pci_emul_cfgaddr(struct vmctx *ctx, int vcpu, int in, int port, int bytes, } if (in) { - x = (cfgbus << 16) | (cfgslot << 11) | (cfgfunc << 8) | cfgoff; + x = (uint32_t) ((cfgbus << 16) | (cfgslot << 11) | (cfgfunc << 8) | + cfgoff); + if (cfgenable) x |= CONF1_ENABLE; *eax = x; @@ -1905,16 +1896,16 @@ pci_emul_cfgaddr(struct vmctx *ctx, int vcpu, int in, int port, int bytes, INOUT_PORT(pci_cfgaddr, CONF1_ADDR_PORT, IOPORT_F_INOUT, pci_emul_cfgaddr); static int -pci_emul_cfgdata(struct vmctx *ctx, int vcpu, int in, int port, int bytes, - uint32_t *eax, void *arg) +pci_emul_cfgdata(int vcpu, int in, int port, int bytes, uint32_t *eax, + UNUSED void *arg) { int coff; assert(bytes == 1 || bytes == 2 || bytes == 4); - coff = cfgoff + (port - CONF1_DATA_PORT); + coff = cfgoff + (port - CONF1_DATA_PORT0); if (cfgenable) { - pci_cfgrw(ctx, vcpu, in, cfgbus, cfgslot, cfgfunc, coff, bytes, + pci_cfgrw(vcpu, in, cfgbus, cfgslot, cfgfunc, coff, bytes, eax); } else { /* Ignore accesses to cfgdata if not enabled by cfgaddr */ @@ -1924,28 +1915,27 @@ pci_emul_cfgdata(struct vmctx *ctx, int vcpu, int in, int port, int bytes, return (0); } -INOUT_PORT(pci_cfgdata, CONF1_DATA_PORT+0, IOPORT_F_INOUT, pci_emul_cfgdata); -INOUT_PORT(pci_cfgdata, CONF1_DATA_PORT+1, IOPORT_F_INOUT, pci_emul_cfgdata); -INOUT_PORT(pci_cfgdata, CONF1_DATA_PORT+2, IOPORT_F_INOUT, pci_emul_cfgdata); -INOUT_PORT(pci_cfgdata, CONF1_DATA_PORT+3, IOPORT_F_INOUT, pci_emul_cfgdata); +INOUT_PORT(pci_cfgdata, CONF1_DATA_PORT0, IOPORT_F_INOUT, pci_emul_cfgdata); +INOUT_PORT(pci_cfgdata, CONF1_DATA_PORT1, IOPORT_F_INOUT, pci_emul_cfgdata); +INOUT_PORT(pci_cfgdata, CONF1_DATA_PORT2, IOPORT_F_INOUT, pci_emul_cfgdata); +INOUT_PORT(pci_cfgdata, CONF1_DATA_PORT3, IOPORT_F_INOUT, pci_emul_cfgdata); #define PCI_EMUL_TEST #ifdef PCI_EMUL_TEST /* * Define a dummy test device */ -#define DIOSZ 8 -#define DMEMSZ 4096 +#define DIOSZ 8 +#define DMEMSZ 4096 struct pci_emul_dsoftc { uint8_t ioregs[DIOSZ]; uint8_t memregs[2][DMEMSZ]; }; -#define PCI_EMUL_MSI_MSGS 4 -#define PCI_EMUL_MSIX_MSGS 16 +#define PCI_EMUL_MSI_MSGS 4 static int -pci_emul_dinit(struct vmctx *ctx, struct pci_devinst *pi, char *opts) +pci_emul_dinit(struct pci_devinst *pi, UNUSED char *opts) { int error; struct pci_emul_dsoftc *sc; @@ -1974,15 +1964,15 @@ pci_emul_dinit(struct vmctx *ctx, struct pci_devinst *pi, char *opts) } static void -pci_emul_diow(struct vmctx *ctx, int vcpu, struct pci_devinst *pi, int baridx, - uint64_t offset, int size, uint64_t value) +pci_emul_diow(UNUSED int vcpu, struct pci_devinst *pi, int baridx, + uint64_t offset, int size, uint64_t value) { int i; struct pci_emul_dsoftc *sc = pi->pi_arg; if (baridx == 0) { - if (offset + size > DIOSZ) { - printf("diow: iow too large, offset %ld size %d\n", + if (offset + ((uint64_t) size) > DIOSZ) { + printf("diow: iow too large, offset %llu size %d\n", offset, size); return; } @@ -1990,9 +1980,9 @@ pci_emul_diow(struct vmctx *ctx, int vcpu, struct pci_devinst *pi, int baridx, if (size == 1) { sc->ioregs[offset] = value & 0xff; } else if (size == 2) { - *(uint16_t *)&sc->ioregs[offset] = value & 0xffff; + *(uint16_t *)((void *) &sc->ioregs[offset]) = value & 0xffff; } else if (size == 4) { - *(uint32_t *)&sc->ioregs[offset] = value; + *(uint32_t *)((void *) &sc->ioregs[offset]) = (uint32_t) value; } else { printf("diow: iow unknown size %d\n", size); } @@ -2001,7 +1991,8 @@ pci_emul_diow(struct vmctx *ctx, int vcpu, struct pci_devinst *pi, int baridx, * Special magic value to generate an interrupt */ if (offset == 4 && size == 4 && pci_msi_enabled(pi)) - pci_generate_msi(pi, value % pci_msi_maxmsgnum(pi)); + pci_generate_msi(pi, ((int) (value % + ((uint64_t) pci_msi_maxmsgnum(pi))))); if (value == 0xabcdef) { for (i = 0; i < pci_msi_maxmsgnum(pi); i++) @@ -2010,8 +2001,8 @@ pci_emul_diow(struct vmctx *ctx, int vcpu, struct pci_devinst *pi, int baridx, } if (baridx == 1 || baridx == 2) { - if (offset + size > DMEMSZ) { - printf("diow: memw too large, offset %ld size %d\n", + if (offset + ((uint16_t) size) > DMEMSZ) { + printf("diow: memw too large, offset %llu size %d\n", offset, size); return; } @@ -2019,13 +2010,14 @@ pci_emul_diow(struct vmctx *ctx, int vcpu, struct pci_devinst *pi, int baridx, i = baridx - 1; /* 'memregs' index */ if (size == 1) { - sc->memregs[i][offset] = value; + sc->memregs[i][offset] = (uint8_t) value; + } else if (size == 2) { - *(uint16_t *)&sc->memregs[i][offset] = value; + *(uint16_t *)((void *) &sc->memregs[i][offset]) = (uint16_t) value; } else if (size == 4) { - *(uint32_t *)&sc->memregs[i][offset] = value; + *(uint32_t *)((void *) &sc->memregs[i][offset]) = (uint32_t) value; } else if (size == 8) { - *(uint64_t *)&sc->memregs[i][offset] = value; + *(uint64_t *)((void *) &sc->memregs[i][offset]) = value; } else { printf("diow: memw unknown size %d\n", size); } @@ -2041,16 +2033,18 @@ pci_emul_diow(struct vmctx *ctx, int vcpu, struct pci_devinst *pi, int baridx, } static uint64_t -pci_emul_dior(struct vmctx *ctx, int vcpu, struct pci_devinst *pi, int baridx, - uint64_t offset, int size) +pci_emul_dior(UNUSED int vcpu, struct pci_devinst *pi, int baridx, + uint64_t offset, int size) { struct pci_emul_dsoftc *sc = pi->pi_arg; uint32_t value; int i; + value = 0; + if (baridx == 0) { - if (offset + size > DIOSZ) { - printf("dior: ior too large, offset %ld size %d\n", + if (offset + ((uint64_t) size) > DIOSZ) { + printf("dior: ior too large, offset %llu size %d\n", offset, size); return (0); } @@ -2058,17 +2052,17 @@ pci_emul_dior(struct vmctx *ctx, int vcpu, struct pci_devinst *pi, int baridx, if (size == 1) { value = sc->ioregs[offset]; } else if (size == 2) { - value = *(uint16_t *) &sc->ioregs[offset]; + value = *(uint16_t *)((void *) &sc->ioregs[offset]); } else if (size == 4) { - value = *(uint32_t *) &sc->ioregs[offset]; + value = *(uint32_t *)((void *) &sc->ioregs[offset]); } else { printf("dior: ior unknown size %d\n", size); } } if (baridx == 1 || baridx == 2) { - if (offset + size > DMEMSZ) { - printf("dior: memr too large, offset %ld size %d\n", + if (offset + ((uint64_t) size) > DMEMSZ) { + printf("dior: memr too large, offset %llu size %d\n", offset, size); return (0); } @@ -2078,11 +2072,11 @@ pci_emul_dior(struct vmctx *ctx, int vcpu, struct pci_devinst *pi, int baridx, if (size == 1) { value = sc->memregs[i][offset]; } else if (size == 2) { - value = *(uint16_t *) &sc->memregs[i][offset]; + value = *(uint16_t *) ((void *) &sc->memregs[i][offset]); } else if (size == 4) { - value = *(uint32_t *) &sc->memregs[i][offset]; + value = *(uint32_t *) ((void *) &sc->memregs[i][offset]); } else if (size == 8) { - value = *(uint64_t *) &sc->memregs[i][offset]; + value = (uint32_t) *(uint64_t *) ((void *) &sc->memregs[i][offset]); } else { printf("dior: ior unknown size %d\n", size); } @@ -2097,7 +2091,7 @@ pci_emul_dior(struct vmctx *ctx, int vcpu, struct pci_devinst *pi, int baridx, return (value); } -struct pci_devemu pci_dummy = { +static struct pci_devemu pci_dummy = { .pe_emu = "dummy", .pe_init = pci_emul_dinit, .pe_barwrite = pci_emul_diow, diff --git a/bhyve/pci_hostbridge.c b/src/pci_hostbridge.c similarity index 85% rename from bhyve/pci_hostbridge.c rename to src/pci_hostbridge.c index 54a25ae..85f27f3 100644 --- a/bhyve/pci_hostbridge.c +++ b/src/pci_hostbridge.c @@ -1,5 +1,6 @@ /*- * Copyright (c) 2011 NetApp, Inc. + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,15 +27,12 @@ * $FreeBSD$ */ -#include -__FBSDID("$FreeBSD$"); - -#include "pci_emul.h" +#include +#include static int -pci_hostbridge_init(struct vmctx *ctx, struct pci_devinst *pi, char *opts) +pci_hostbridge_init(struct pci_devinst *pi, UNUSED char *opts) { - /* config space */ pci_set_cfgdata16(pi, PCIR_VENDOR, 0x1275); /* NetApp */ pci_set_cfgdata16(pi, PCIR_DEVICE, 0x1275); /* NetApp */ @@ -48,22 +46,22 @@ pci_hostbridge_init(struct vmctx *ctx, struct pci_devinst *pi, char *opts) } static int -pci_amd_hostbridge_init(struct vmctx *ctx, struct pci_devinst *pi, char *opts) +pci_amd_hostbridge_init(struct pci_devinst *pi, char *opts) { - (void) pci_hostbridge_init(ctx, pi, opts); + (void) pci_hostbridge_init(pi, opts); pci_set_cfgdata16(pi, PCIR_VENDOR, 0x1022); /* AMD */ pci_set_cfgdata16(pi, PCIR_DEVICE, 0x7432); /* made up */ return (0); } -struct pci_devemu pci_de_amd_hostbridge = { +static struct pci_devemu pci_de_amd_hostbridge = { .pe_emu = "amd_hostbridge", .pe_init = pci_amd_hostbridge_init, }; PCI_EMUL_SET(pci_de_amd_hostbridge); -struct pci_devemu pci_de_hostbridge = { +static struct pci_devemu pci_de_hostbridge = { .pe_emu = "hostbridge", .pe_init = pci_hostbridge_init, }; diff --git a/bhyve/pci_irq.c b/src/pci_irq.c similarity index 82% rename from bhyve/pci_irq.c rename to src/pci_irq.c index f22b15c..4ce0cd5 100644 --- a/bhyve/pci_irq.c +++ b/src/pci_irq.c @@ -1,6 +1,7 @@ /*- * Copyright (c) 2014 Hudson River Trading LLC * Written by: John H. Baldwin + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -25,25 +26,19 @@ * SUCH DAMAGE. */ - -#include -__FBSDID("$FreeBSD$"); - -#include -#include - -#include -#include +#include #include -#include #include -#include - -#include "acpi.h" -#include "inout.h" -#include "pci_emul.h" -#include "pci_irq.h" -#include "pci_lpc.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include /* * Implement an 8 pin PCI interrupt router compatible with the router @@ -61,12 +56,15 @@ __FBSDID("$FreeBSD$"); /* IRQ count to disable an IRQ. */ #define IRQ_DISABLED 0xff +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" static struct pirq { - uint8_t reg; - int use_count; - int active_count; + uint8_t reg; + int use_count; + int active_count; pthread_mutex_t lock; } pirqs[8]; +#pragma clang diagnostic pop static u_char irq_counts[16]; static int pirq_cold = 1; @@ -79,7 +77,6 @@ static int pirq_cold = 1; static bool pirq_valid_irq(int reg) { - if (reg & PIRQ_DIS) return (false); return (IRQ_PERMITTED(reg & PIRQ_IRQ)); @@ -88,25 +85,24 @@ pirq_valid_irq(int reg) uint8_t pirq_read(int pin) { - - assert(pin > 0 && pin <= nitems(pirqs)); + assert((pin > 0) && (((unsigned) pin) <= nitems(pirqs))); return (pirqs[pin - 1].reg); } void -pirq_write(struct vmctx *ctx, int pin, uint8_t val) +pirq_write(int pin, uint8_t val) { struct pirq *pirq; - assert(pin > 0 && pin <= nitems(pirqs)); + assert((pin > 0) && (((unsigned) pin) <= nitems(pirqs))); pirq = &pirqs[pin - 1]; pthread_mutex_lock(&pirq->lock); if (pirq->reg != (val & (PIRQ_DIS | PIRQ_IRQ))) { if (pirq->active_count != 0 && pirq_valid_irq(pirq->reg)) - vm_isa_deassert_irq(ctx, pirq->reg & PIRQ_IRQ, -1); + xh_vm_isa_deassert_irq(pirq->reg & PIRQ_IRQ, -1); pirq->reg = val & (PIRQ_DIS | PIRQ_IRQ); if (pirq->active_count != 0 && pirq_valid_irq(pirq->reg)) - vm_isa_assert_irq(ctx, pirq->reg & PIRQ_IRQ, -1); + xh_vm_isa_assert_irq(pirq->reg & PIRQ_IRQ, -1); } pthread_mutex_unlock(&pirq->lock); } @@ -114,8 +110,7 @@ pirq_write(struct vmctx *ctx, int pin, uint8_t val) void pci_irq_reserve(int irq) { - - assert(irq >= 0 && irq < nitems(irq_counts)); + assert((irq >= 0) && (((unsigned) irq) < nitems(irq_counts))); assert(pirq_cold); assert(irq_counts[irq] == 0 || irq_counts[irq] == IRQ_DISABLED); irq_counts[irq] = IRQ_DISABLED; @@ -124,17 +119,16 @@ pci_irq_reserve(int irq) void pci_irq_use(int irq) { - - assert(irq >= 0 && irq < nitems(irq_counts)); + assert((irq >= 0) && (((unsigned) irq) < nitems(irq_counts))); assert(pirq_cold); assert(irq_counts[irq] != IRQ_DISABLED); irq_counts[irq]++; } void -pci_irq_init(struct vmctx *ctx) +pci_irq_init(void) { - int i; + unsigned i; for (i = 0; i < nitems(pirqs); i++) { pirqs[i].reg = PIRQ_DIS; @@ -156,19 +150,18 @@ pci_irq_assert(struct pci_devinst *pi) struct pirq *pirq; if (pi->pi_lintr.pirq_pin > 0) { - assert(pi->pi_lintr.pirq_pin <= nitems(pirqs)); + assert(((unsigned) pi->pi_lintr.pirq_pin) <= nitems(pirqs)); pirq = &pirqs[pi->pi_lintr.pirq_pin - 1]; pthread_mutex_lock(&pirq->lock); pirq->active_count++; if (pirq->active_count == 1 && pirq_valid_irq(pirq->reg)) { - vm_isa_assert_irq(pi->pi_vmctx, pirq->reg & PIRQ_IRQ, - pi->pi_lintr.ioapic_irq); + xh_vm_isa_assert_irq(pirq->reg & PIRQ_IRQ, pi->pi_lintr.ioapic_irq); pthread_mutex_unlock(&pirq->lock); return; } pthread_mutex_unlock(&pirq->lock); } - vm_ioapic_assert_irq(pi->pi_vmctx, pi->pi_lintr.ioapic_irq); + xh_vm_ioapic_assert_irq(pi->pi_lintr.ioapic_irq); } void @@ -177,23 +170,23 @@ pci_irq_deassert(struct pci_devinst *pi) struct pirq *pirq; if (pi->pi_lintr.pirq_pin > 0) { - assert(pi->pi_lintr.pirq_pin <= nitems(pirqs)); + assert(((unsigned) pi->pi_lintr.pirq_pin) <= nitems(pirqs)); pirq = &pirqs[pi->pi_lintr.pirq_pin - 1]; pthread_mutex_lock(&pirq->lock); pirq->active_count--; if (pirq->active_count == 0 && pirq_valid_irq(pirq->reg)) { - vm_isa_deassert_irq(pi->pi_vmctx, pirq->reg & PIRQ_IRQ, - pi->pi_lintr.ioapic_irq); + xh_vm_isa_deassert_irq(pirq->reg & PIRQ_IRQ, + pi->pi_lintr.ioapic_irq); pthread_mutex_unlock(&pirq->lock); return; } pthread_mutex_unlock(&pirq->lock); } - vm_ioapic_deassert_irq(pi->pi_vmctx, pi->pi_lintr.ioapic_irq); + xh_vm_ioapic_deassert_irq(pi->pi_lintr.ioapic_irq); } int -pirq_alloc_pin(struct vmctx *ctx) +pirq_alloc_pin(void) { int best_count, best_irq, best_pin, irq, pin; @@ -202,7 +195,7 @@ pirq_alloc_pin(struct vmctx *ctx) /* First, find the least-used PIRQ pin. */ best_pin = 0; best_count = pirqs[0].use_count; - for (pin = 1; pin < nitems(pirqs); pin++) { + for (pin = 1; ((unsigned) pin) < nitems(pirqs); pin++) { if (pirqs[pin].use_count < best_count) { best_pin = pin; best_count = pirqs[pin].use_count; @@ -214,7 +207,7 @@ pirq_alloc_pin(struct vmctx *ctx) if (pirqs[best_pin].reg == PIRQ_DIS) { best_irq = -1; best_count = 0; - for (irq = 0; irq < nitems(irq_counts); irq++) { + for (irq = 0; ((unsigned) irq) < nitems(irq_counts); irq++) { if (irq_counts[irq] == IRQ_DISABLED) continue; if (best_irq == -1 || irq_counts[irq] < best_count) { @@ -224,8 +217,8 @@ pirq_alloc_pin(struct vmctx *ctx) } assert(best_irq >= 0); irq_counts[best_irq]++; - pirqs[best_pin].reg = best_irq; - vm_isa_set_irq_trigger(ctx, best_irq, LEVEL_TRIGGER); + pirqs[best_pin].reg = (uint8_t) best_irq; + xh_vm_isa_set_irq_trigger(best_irq, LEVEL_TRIGGER); } return (best_pin + 1); @@ -234,7 +227,7 @@ pirq_alloc_pin(struct vmctx *ctx) int pirq_irq(int pin) { - assert(pin > 0 && pin <= nitems(pirqs)); + assert((pin > 0) && (((unsigned) pin) <= nitems(pirqs))); return (pirqs[pin - 1].reg & PIRQ_IRQ); } @@ -247,7 +240,7 @@ pirq_dsdt(void) int irq, pin; irq_prs = NULL; - for (irq = 0; irq < nitems(irq_counts); irq++) { + for (irq = 0; ((unsigned) irq) < nitems(irq_counts); irq++) { if (!IRQ_PERMITTED(irq)) continue; if (irq_prs == NULL) @@ -286,7 +279,7 @@ pirq_dsdt(void) dsdt_line(" Return (0x01)"); dsdt_line("}"); - for (pin = 0; pin < nitems(pirqs); pin++) { + for (pin = 0; ((unsigned) pin) < nitems(pirqs); pin++) { dsdt_line(""); dsdt_line("Device (LNK%c)", 'A' + pin); dsdt_line("{"); diff --git a/bhyve/pci_lpc.c b/src/pci_lpc.c similarity index 84% rename from bhyve/pci_lpc.c rename to src/pci_lpc.c index e98b141..9d9da1c 100644 --- a/bhyve/pci_lpc.c +++ b/src/pci_lpc.c @@ -1,6 +1,7 @@ /*- * Copyright (c) 2013 Neel Natu * Copyright (c) 2013 Tycho Nightingale + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -27,24 +28,17 @@ * $FreeBSD$ */ -#include -__FBSDID("$FreeBSD$"); - -#include -#include - #include #include #include - -#include - -#include "acpi.h" -#include "inout.h" -#include "pci_emul.h" -#include "pci_irq.h" -#include "pci_lpc.h" -#include "uart_emul.h" +#include +#include +#include +#include +#include +#include +#include +#include #define IO_ICU1 0x20 #define IO_ICU2 0xA0 @@ -63,6 +57,9 @@ SYSRES_IO(NMISC_PORT, 1); static struct pci_devinst *lpc_bridge; #define LPC_UART_NUM 2 + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" static struct lpc_uart_softc { struct uart_softc *uart_softc; const char *opts; @@ -70,6 +67,7 @@ static struct lpc_uart_softc { int irq; int enabled; } lpc_uart_softc[LPC_UART_NUM]; +#pragma clang diagnostic pop static const char *lpc_uart_names[LPC_UART_NUM] = { "COM1", "COM2" }; @@ -111,11 +109,11 @@ lpc_uart_intr_assert(void *arg) assert(sc->irq >= 0); - vm_isa_pulse_irq(lpc_bridge->pi_vmctx, sc->irq, sc->irq); + xh_vm_isa_pulse_irq(sc->irq, sc->irq); } static void -lpc_uart_intr_deassert(void *arg) +lpc_uart_intr_deassert(UNUSED void *arg) { /* * The COM devices on the LPC bus generate edge triggered interrupts, @@ -124,8 +122,8 @@ lpc_uart_intr_deassert(void *arg) } static int -lpc_uart_io_handler(struct vmctx *ctx, int vcpu, int in, int port, int bytes, - uint32_t *eax, void *arg) +lpc_uart_io_handler(UNUSED int vcpu, int in, int port, int bytes, uint32_t *eax, + void *arg) { int offset; struct lpc_uart_softc *sc = arg; @@ -137,15 +135,15 @@ lpc_uart_io_handler(struct vmctx *ctx, int vcpu, int in, int port, int bytes, if (in) *eax = uart_read(sc->uart_softc, offset); else - uart_write(sc->uart_softc, offset, *eax); + uart_write(sc->uart_softc, offset, ((uint8_t) *eax)); break; case 2: if (in) { - *eax = uart_read(sc->uart_softc, offset); - *eax |= uart_read(sc->uart_softc, offset + 1) << 8; + *eax = (uint32_t) uart_read(sc->uart_softc, offset); + *eax |= (uint32_t) (uart_read(sc->uart_softc, offset + 1) << 8); } else { - uart_write(sc->uart_softc, offset, *eax); - uart_write(sc->uart_softc, offset + 1, *eax >> 8); + uart_write(sc->uart_softc, offset, ((uint8_t) *eax)); + uart_write(sc->uart_softc, offset + 1, ((uint8_t) (*eax >> 8))); } break; default: @@ -279,7 +277,7 @@ pci_lpc_sysres_dsdt(void) lsp = *lspp; switch (lsp->type) { case LPC_SYSRES_IO: - dsdt_fixed_ioport(lsp->base, lsp->length); + dsdt_fixed_ioport(((uint16_t) lsp->base), ((uint16_t) lsp->length)); break; case LPC_SYSRES_MEM: dsdt_fixed_mem32(lsp->base, lsp->length); @@ -311,8 +309,8 @@ pci_lpc_uart_dsdt(void) dsdt_line(" Name (_CRS, ResourceTemplate ()"); dsdt_line(" {"); dsdt_indent(2); - dsdt_fixed_ioport(sc->iobase, UART_IO_BAR_SIZE); - dsdt_fixed_irq(sc->irq); + dsdt_fixed_ioport(((uint16_t) sc->iobase), UART_IO_BAR_SIZE); + dsdt_fixed_irq(((uint8_t) sc->irq)); dsdt_unindent(2); dsdt_line(" })"); dsdt_line("}"); @@ -321,8 +319,8 @@ pci_lpc_uart_dsdt(void) LPC_DSDT(pci_lpc_uart_dsdt); static int -pci_lpc_cfgwrite(struct vmctx *ctx, int vcpu, struct pci_devinst *pi, - int coff, int bytes, uint32_t val) +pci_lpc_cfgwrite(UNUSED int vcpu, struct pci_devinst *pi, int coff, int bytes, + uint32_t val) { int pirq_pin; @@ -333,7 +331,7 @@ pci_lpc_cfgwrite(struct vmctx *ctx, int vcpu, struct pci_devinst *pi, if (coff >= 0x68 && coff <= 0x6b) pirq_pin = coff - 0x68 + 5; if (pirq_pin != 0) { - pirq_write(ctx, pirq_pin, val); + pirq_write(pirq_pin, ((uint8_t) val)); pci_set_cfgdata8(pi, coff, pirq_read(pirq_pin)); return (0); } @@ -342,14 +340,14 @@ pci_lpc_cfgwrite(struct vmctx *ctx, int vcpu, struct pci_devinst *pi, } static void -pci_lpc_write(struct vmctx *ctx, int vcpu, struct pci_devinst *pi, - int baridx, uint64_t offset, int size, uint64_t value) +pci_lpc_write(UNUSED int vcpu, UNUSED struct pci_devinst *pi, UNUSED int baridx, + UNUSED uint64_t offset, UNUSED int size, UNUSED uint64_t value) { } static uint64_t -pci_lpc_read(struct vmctx *ctx, int vcpu, struct pci_devinst *pi, - int baridx, uint64_t offset, int size) +pci_lpc_read(UNUSED int vcpu, UNUSED struct pci_devinst *pi, UNUSED int baridx, + UNUSED uint64_t offset, UNUSED int size) { return (0); } @@ -358,7 +356,7 @@ pci_lpc_read(struct vmctx *ctx, int vcpu, struct pci_devinst *pi, #define LPC_VENDOR 0x8086 static int -pci_lpc_init(struct vmctx *ctx, struct pci_devinst *pi, char *opts) +pci_lpc_init(struct pci_devinst *pi, UNUSED char *opts) { /* @@ -418,7 +416,7 @@ lpc_pirq_routed(void) pci_set_cfgdata8(lpc_bridge, 0x68 + pin, pirq_read(pin + 5)); } -struct pci_devemu pci_de_lpc = { +static struct pci_devemu pci_de_lpc = { .pe_emu = "lpc", .pe_init = pci_lpc_init, .pe_write_dsdt = pci_lpc_write_dsdt, diff --git a/bhyve/pci_uart.c b/src/pci_uart.c similarity index 81% rename from bhyve/pci_uart.c rename to src/pci_uart.c index 21b93bf..01edcb4 100644 --- a/bhyve/pci_uart.c +++ b/src/pci_uart.c @@ -1,5 +1,6 @@ /*- * Copyright (c) 2012 NetApp, Inc. + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,16 +27,12 @@ * $FreeBSD$ */ -#include -__FBSDID("$FreeBSD$"); - -#include - +#include #include - -#include "bhyverun.h" -#include "pci_emul.h" -#include "uart_emul.h" +#include +#include +#include +#include /* * Pick a PCI vid/did of a chip with a single uart at @@ -62,31 +59,31 @@ pci_uart_intr_deassert(void *arg) } static void -pci_uart_write(struct vmctx *ctx, int vcpu, struct pci_devinst *pi, - int baridx, uint64_t offset, int size, uint64_t value) +pci_uart_write(UNUSED int vcpu, struct pci_devinst *pi, int baridx, uint64_t offset, + int size, uint64_t value) { assert(baridx == 0); assert(size == 1); - uart_write(pi->pi_arg, offset, value); + uart_write(pi->pi_arg, ((int) offset), ((uint8_t) value)); } -uint64_t -pci_uart_read(struct vmctx *ctx, int vcpu, struct pci_devinst *pi, - int baridx, uint64_t offset, int size) +static uint64_t +pci_uart_read(UNUSED int vcpu, struct pci_devinst *pi, int baridx, + uint64_t offset, int size) { uint8_t val; assert(baridx == 0); assert(size == 1); - val = uart_read(pi->pi_arg, offset); + val = uart_read(pi->pi_arg, ((int) offset)); return (val); } static int -pci_uart_init(struct vmctx *ctx, struct pci_devinst *pi, char *opts) +pci_uart_init(struct pci_devinst *pi, char *opts) { struct uart_softc *sc; @@ -110,7 +107,7 @@ pci_uart_init(struct vmctx *ctx, struct pci_devinst *pi, char *opts) return (0); } -struct pci_devemu pci_de_com = { +static struct pci_devemu pci_de_com = { .pe_emu = "uart", .pe_init = pci_uart_init, .pe_barwrite = pci_uart_write, diff --git a/bhyve/pci_virtio_block.c b/src/pci_virtio_block.c similarity index 75% rename from bhyve/pci_virtio_block.c rename to src/pci_virtio_block.c index 8500be6..b073454 100644 --- a/bhyve/pci_virtio_block.c +++ b/src/pci_virtio_block.c @@ -1,5 +1,6 @@ /*- * Copyright (c) 2011 NetApp, Inc. + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,77 +27,75 @@ * $FreeBSD$ */ -#include -__FBSDID("$FreeBSD$"); - +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include #include #include #include #include +#include +#include +#include +#include +#include +#include +#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#define VTBLK_RINGSZ 64 -#include "bhyverun.h" -#include "pci_emul.h" -#include "virtio.h" -#include "block_if.h" +#define VTBLK_S_OK 0 +#define VTBLK_S_IOERR 1 +#define VTBLK_S_UNSUPP 2 -#define VTBLK_RINGSZ 64 - -#define VTBLK_S_OK 0 -#define VTBLK_S_IOERR 1 -#define VTBLK_S_UNSUPP 2 - -#define VTBLK_BLK_ID_BYTES 20 +#define VTBLK_BLK_ID_BYTES 20 /* Capability bits */ -#define VTBLK_F_SEG_MAX (1 << 2) /* Maximum request segments */ -#define VTBLK_F_BLK_SIZE (1 << 6) /* cfg block size valid */ -#define VTBLK_F_FLUSH (1 << 9) /* Cache flush support */ -#define VTBLK_F_TOPOLOGY (1 << 10) /* Optimal I/O alignment */ +#define VTBLK_F_SEG_MAX (1 << 2) /* Maximum request segments */ +#define VTBLK_F_BLK_SIZE (1 << 6) /* cfg block size valid */ +#define VTBLK_F_FLUSH (1 << 9) /* Cache flush support */ +#define VTBLK_F_TOPOLOGY (1 << 10) /* Optimal I/O alignment */ /* * Host capabilities */ -#define VTBLK_S_HOSTCAPS \ - ( VTBLK_F_SEG_MAX | \ - VTBLK_F_BLK_SIZE | \ - VTBLK_F_FLUSH | \ - VTBLK_F_TOPOLOGY | \ - VIRTIO_RING_F_INDIRECT_DESC ) /* indirect descriptors */ +#define VTBLK_S_HOSTCAPS \ + (VTBLK_F_SEG_MAX | \ + VTBLK_F_BLK_SIZE | \ + VTBLK_F_FLUSH | \ + VTBLK_F_TOPOLOGY | \ + VIRTIO_RING_F_INDIRECT_DESC) /* indirect descriptors */ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpacked" /* * Config space "registers" */ struct vtblk_config { - uint64_t vbc_capacity; - uint32_t vbc_size_max; - uint32_t vbc_seg_max; + uint64_t vbc_capacity; + uint32_t vbc_size_max; + uint32_t vbc_seg_max; struct { uint16_t cylinders; uint8_t heads; uint8_t sectors; } vbc_geometry; - uint32_t vbc_blk_size; + uint32_t vbc_blk_size; struct { uint8_t physical_block_exp; uint8_t alignment_offset; uint16_t min_io_size; uint32_t opt_io_size; } vbc_topology; - uint8_t vbc_writeback; + uint8_t vbc_writeback; } __packed; /* @@ -109,23 +108,26 @@ struct virtio_blk_hdr { #define VBH_OP_FLUSH_OUT 5 #define VBH_OP_IDENT 8 #define VBH_FLAG_BARRIER 0x80000000 /* OR'ed into vbh_type */ - uint32_t vbh_type; - uint32_t vbh_ioprio; - uint64_t vbh_sector; + uint32_t vbh_type; + uint32_t vbh_ioprio; + uint64_t vbh_sector; } __packed; +#pragma clang diagnostic pop + /* * Debug printf */ static int pci_vtblk_debug; #define DPRINTF(params) if (pci_vtblk_debug) printf params -#define WPRINTF(params) printf params +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" struct pci_vtblk_ioreq { - struct blockif_req io_req; - struct pci_vtblk_softc *io_sc; - uint8_t *io_status; - uint16_t io_idx; + struct blockif_req io_req; + struct pci_vtblk_softc *io_sc; + uint8_t *io_status; + uint16_t io_idx; }; /* @@ -141,21 +143,23 @@ struct pci_vtblk_softc { struct pci_vtblk_ioreq vbsc_ios[VTBLK_RINGSZ]; }; +#pragma clang diagnostic pop + static void pci_vtblk_reset(void *); static void pci_vtblk_notify(void *, struct vqueue_info *); static int pci_vtblk_cfgread(void *, int, int, uint32_t *); static int pci_vtblk_cfgwrite(void *, int, int, uint32_t); static struct virtio_consts vtblk_vi_consts = { - "vtblk", /* our name */ - 1, /* we support 1 virtqueue */ + "vtblk", /* our name */ + 1, /* we support 1 virtqueue */ sizeof(struct vtblk_config), /* config reg size */ - pci_vtblk_reset, /* reset */ - pci_vtblk_notify, /* device-wide qnotify */ - pci_vtblk_cfgread, /* read PCI config */ - pci_vtblk_cfgwrite, /* write PCI config */ - NULL, /* apply negotiated features */ - VTBLK_S_HOSTCAPS, /* our capabilities */ + pci_vtblk_reset, /* reset */ + pci_vtblk_notify, /* device-wide qnotify */ + pci_vtblk_cfgread, /* read PCI config */ + pci_vtblk_cfgwrite, /* write PCI config */ + NULL, /* apply negotiated features */ + VTBLK_S_HOSTCAPS, /* our capabilities */ }; static void @@ -167,8 +171,12 @@ pci_vtblk_reset(void *vsc) vi_reset_dev(&sc->vbsc_vs); } +/* xhyve: FIXME + * + * pci_vtblk_done seems to deadlock when called from pci_vtblk_proc? + */ static void -pci_vtblk_done(struct blockif_req *br, int err) +pci_vtblk_done_locked(struct blockif_req *br, int err) { struct pci_vtblk_ioreq *io = br->br_param; struct pci_vtblk_softc *sc = io->io_sc; @@ -185,9 +193,19 @@ pci_vtblk_done(struct blockif_req *br, int err) * Return the descriptor back to the host. * We wrote 1 byte (our status) to host. */ - pthread_mutex_lock(&sc->vsc_mtx); + //pthread_mutex_lock(&sc->vsc_mtx); vq_relchain(&sc->vbsc_vq, io->io_idx, 1); vq_endchains(&sc->vbsc_vq, 0); + //pthread_mutex_unlock(&sc->vsc_mtx); +} + +static void +pci_vtblk_done(struct blockif_req *br, int err) { + struct pci_vtblk_ioreq *io = br->br_param; + struct pci_vtblk_softc *sc = io->io_sc; + + pthread_mutex_lock(&sc->vsc_mtx); + pci_vtblk_done_locked(br, err); pthread_mutex_unlock(&sc->vsc_mtx); } @@ -200,7 +218,6 @@ pci_vtblk_proc(struct pci_vtblk_softc *sc, struct vqueue_info *vq) int err; ssize_t iolen; int writeop, type; - off_t offset; struct iovec iov[BLOCKIF_IOV_MAX + 2]; uint16_t idx, flags[BLOCKIF_IOV_MAX + 2]; @@ -220,9 +237,10 @@ pci_vtblk_proc(struct pci_vtblk_softc *sc, struct vqueue_info *vq) assert((flags[0] & VRING_DESC_F_WRITE) == 0); assert(iov[0].iov_len == sizeof(struct virtio_blk_hdr)); vbh = iov[0].iov_base; - memcpy(&io->io_req.br_iov, &iov[1], sizeof(struct iovec) * (n - 2)); + memcpy(&io->io_req.br_iov, &iov[1], + sizeof(struct iovec) * (((size_t) n) - 2)); io->io_req.br_iovcnt = n - 2; - io->io_req.br_offset = vbh->vbh_sector * DEV_BSIZE; + io->io_req.br_offset = (off_t) (vbh->vbh_sector * DEV_BSIZE); io->io_status = iov[--n].iov_base; assert(iov[n].iov_len == 1); assert(flags[n] & VRING_DESC_F_WRITE); @@ -248,8 +266,8 @@ pci_vtblk_proc(struct pci_vtblk_softc *sc, struct vqueue_info *vq) } io->io_req.br_resid = iolen; - DPRINTF(("virtio-block: %s op, %zd bytes, %d segs, offset %ld\n\r", - writeop ? "write" : "read/ident", iolen, i - 1, offset)); + DPRINTF(("virtio-block: %s op, %zd bytes, %d segs\n\r", + writeop ? "write" : "read/ident", iolen, i - 1)); switch (type) { case VBH_OP_READ: @@ -268,10 +286,12 @@ pci_vtblk_proc(struct pci_vtblk_softc *sc, struct vqueue_info *vq) memset(iov[1].iov_base, 0, iov[1].iov_len); strncpy(iov[1].iov_base, sc->vbsc_ident, MIN(iov[1].iov_len, sizeof(sc->vbsc_ident))); - pci_vtblk_done(&io->io_req, 0); + /* xhyve: FIXME */ + pci_vtblk_done_locked(&io->io_req, 0); return; default: - pci_vtblk_done(&io->io_req, EOPNOTSUPP); + /* xhyve: FIXME */ + pci_vtblk_done_locked(&io->io_req, EOPNOTSUPP); return; } assert(err == 0); @@ -287,7 +307,7 @@ pci_vtblk_notify(void *vsc, struct vqueue_info *vq) } static int -pci_vtblk_init(struct vmctx *ctx, struct pci_devinst *pi, char *opts) +pci_vtblk_init(struct pci_devinst *pi, char *opts) { char bident[sizeof("XX:X:X")]; struct blockif_ctxt *bctxt; @@ -323,7 +343,7 @@ pci_vtblk_init(struct vmctx *ctx, struct pci_devinst *pi, char *opts) io->io_req.br_callback = pci_vtblk_done; io->io_req.br_param = io; io->io_sc = sc; - io->io_idx = i; + io->io_idx = (uint16_t) i; } pthread_mutex_init(&sc->vsc_mtx, NULL); @@ -340,23 +360,24 @@ pci_vtblk_init(struct vmctx *ctx, struct pci_devinst *pi, char *opts) * md5 sum of the filename */ MD5Init(&mdctx); - MD5Update(&mdctx, opts, strlen(opts)); + MD5Update(&mdctx, opts, ((unsigned) strlen(opts))); MD5Final(digest, &mdctx); sprintf(sc->vbsc_ident, "BHYVE-%02X%02X-%02X%02X-%02X%02X", digest[0], digest[1], digest[2], digest[3], digest[4], digest[5]); /* setup virtio block config space */ - sc->vbsc_cfg.vbc_capacity = size / DEV_BSIZE; /* 512-byte units */ + sc->vbsc_cfg.vbc_capacity = + (uint64_t) (size / DEV_BSIZE); /* 512-byte units */ sc->vbsc_cfg.vbc_size_max = 0; /* not negotiated */ sc->vbsc_cfg.vbc_seg_max = BLOCKIF_IOV_MAX; sc->vbsc_cfg.vbc_geometry.cylinders = 0; /* no geometry */ sc->vbsc_cfg.vbc_geometry.heads = 0; sc->vbsc_cfg.vbc_geometry.sectors = 0; - sc->vbsc_cfg.vbc_blk_size = sectsz; + sc->vbsc_cfg.vbc_blk_size = (uint32_t) sectsz; sc->vbsc_cfg.vbc_topology.physical_block_exp = - (sts > sectsz) ? (ffsll(sts / sectsz) - 1) : 0; + (uint8_t) ((sts > sectsz) ? (ffsll(sts / sectsz) - 1) : 0); sc->vbsc_cfg.vbc_topology.alignment_offset = - (sto != 0) ? ((sts - sto) / sectsz) : 0; + (uint8_t) ((sto != 0) ? ((sts - sto) / sectsz) : 0); sc->vbsc_cfg.vbc_topology.min_io_size = 0; sc->vbsc_cfg.vbc_topology.opt_io_size = 0; sc->vbsc_cfg.vbc_writeback = 0; @@ -382,9 +403,9 @@ pci_vtblk_init(struct vmctx *ctx, struct pci_devinst *pi, char *opts) } static int -pci_vtblk_cfgwrite(void *vsc, int offset, int size, uint32_t value) +pci_vtblk_cfgwrite(UNUSED void *vsc, int offset, UNUSED int size, + UNUSED uint32_t value) { - DPRINTF(("vtblk: write to readonly reg %d\n\r", offset)); return (1); } @@ -401,7 +422,7 @@ pci_vtblk_cfgread(void *vsc, int offset, int size, uint32_t *retval) return (0); } -struct pci_devemu pci_de_vblk = { +static struct pci_devemu pci_de_vblk = { .pe_emu = "virtio-blk", .pe_init = pci_vtblk_init, .pe_barwrite = vi_pci_write, diff --git a/bhyve/pci_virtio_net.c b/src/pci_virtio_net.c similarity index 82% rename from bhyve/pci_virtio_net.c rename to src/pci_virtio_net.c index 3781ea9..97475f7 100644 --- a/bhyve/pci_virtio_net.c +++ b/src/pci_virtio_net.c @@ -1,5 +1,6 @@ /*- * Copyright (c) 2011 NetApp, Inc. + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,96 +27,95 @@ * $FreeBSD$ */ -#include -__FBSDID("$FreeBSD$"); - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include #include +#include +#include #include #include -#include -#include -#include #include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include -#include "bhyverun.h" -#include "pci_emul.h" -#include "mevent.h" -#include "virtio.h" - -#define VTNET_RINGSZ 1024 - -#define VTNET_MAXSEGS 32 +#define VTNET_RINGSZ 1024 +#define VTNET_MAXSEGS 32 /* * Host capabilities. Note that we only offer a few of these. */ -#define VIRTIO_NET_F_CSUM (1 << 0) /* host handles partial cksum */ -#define VIRTIO_NET_F_GUEST_CSUM (1 << 1) /* guest handles partial cksum */ -#define VIRTIO_NET_F_MAC (1 << 5) /* host supplies MAC */ -#define VIRTIO_NET_F_GSO_DEPREC (1 << 6) /* deprecated: host handles GSO */ -#define VIRTIO_NET_F_GUEST_TSO4 (1 << 7) /* guest can rcv TSOv4 */ -#define VIRTIO_NET_F_GUEST_TSO6 (1 << 8) /* guest can rcv TSOv6 */ -#define VIRTIO_NET_F_GUEST_ECN (1 << 9) /* guest can rcv TSO with ECN */ -#define VIRTIO_NET_F_GUEST_UFO (1 << 10) /* guest can rcv UFO */ -#define VIRTIO_NET_F_HOST_TSO4 (1 << 11) /* host can rcv TSOv4 */ -#define VIRTIO_NET_F_HOST_TSO6 (1 << 12) /* host can rcv TSOv6 */ -#define VIRTIO_NET_F_HOST_ECN (1 << 13) /* host can rcv TSO with ECN */ -#define VIRTIO_NET_F_HOST_UFO (1 << 14) /* host can rcv UFO */ -#define VIRTIO_NET_F_MRG_RXBUF (1 << 15) /* host can merge RX buffers */ -#define VIRTIO_NET_F_STATUS (1 << 16) /* config status field available */ -#define VIRTIO_NET_F_CTRL_VQ (1 << 17) /* control channel available */ -#define VIRTIO_NET_F_CTRL_RX (1 << 18) /* control channel RX mode support */ -#define VIRTIO_NET_F_CTRL_VLAN (1 << 19) /* control channel VLAN filtering */ -#define VIRTIO_NET_F_GUEST_ANNOUNCE \ - (1 << 21) /* guest can send gratuitous pkts */ +// #define VIRTIO_NET_F_CSUM (1 << 0) /* host handles partial cksum */ +// #define VIRTIO_NET_F_GUEST_CSUM (1 << 1) /* guest handles partial cksum */ +#define VIRTIO_NET_F_MAC (1 << 5) /* host supplies MAC */ +// #define VIRTIO_NET_F_GSO_DEPREC (1 << 6) /* deprecated: host handles GSO */ +// #define VIRTIO_NET_F_GUEST_TSO4 (1 << 7) /* guest can rcv TSOv4 */ +// #define VIRTIO_NET_F_GUEST_TSO6 (1 << 8) /* guest can rcv TSOv6 */ +// #define VIRTIO_NET_F_GUEST_ECN (1 << 9) /* guest can rcv TSO with ECN */ +// #define VIRTIO_NET_F_GUEST_UFO (1 << 10) /* guest can rcv UFO */ +// #define VIRTIO_NET_F_HOST_TSO4 (1 << 11) /* host can rcv TSOv4 */ +// #define VIRTIO_NET_F_HOST_TSO6 (1 << 12) /* host can rcv TSOv6 */ +// #define VIRTIO_NET_F_HOST_ECN (1 << 13) /* host can rcv TSO with ECN */ +// #define VIRTIO_NET_F_HOST_UFO (1 << 14) /* host can rcv UFO */ +#define VIRTIO_NET_F_MRG_RXBUF (1 << 15) /* host can merge RX buffers */ +#define VIRTIO_NET_F_STATUS (1 << 16) /* config status field available */ +// #define VIRTIO_NET_F_CTRL_VQ (1 << 17) /* control channel available */ +// #define VIRTIO_NET_F_CTRL_RX (1 << 18) /* control channel RX mode support */ +// #define VIRTIO_NET_F_CTRL_VLAN (1 << 19) /* control channel VLAN filtering */ +// #define VIRTIO_NET_F_GUEST_ANNOUNCE (1 << 21) /* guest can send gratuit. pkts */ -#define VTNET_S_HOSTCAPS \ - ( VIRTIO_NET_F_MAC | VIRTIO_NET_F_MRG_RXBUF | VIRTIO_NET_F_STATUS | \ - VIRTIO_F_NOTIFY_ON_EMPTY) +#define VTNET_S_HOSTCAPS \ + (VIRTIO_NET_F_MAC | VIRTIO_NET_F_MRG_RXBUF | VIRTIO_NET_F_STATUS | \ + VIRTIO_F_NOTIFY_ON_EMPTY) + +#define ETHER_IS_MULTICAST(addr) (*(addr) & 0x01) /* is address mcast/bcast? */ + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpacked" /* * PCI config-space "registers" */ struct virtio_net_config { - uint8_t mac[6]; + uint8_t mac[6]; uint16_t status; } __packed; /* * Queue definitions. */ -#define VTNET_RXQ 0 -#define VTNET_TXQ 1 -#define VTNET_CTLQ 2 /* NB: not yet supported */ - -#define VTNET_MAXQ 3 +#define VTNET_RXQ 0 +#define VTNET_TXQ 1 +// #define VTNET_CTLQ 2 /* NB: not yet supported */ +#define VTNET_MAXQ 3 /* * Fixed network header size */ struct virtio_net_rxhdr { - uint8_t vrh_flags; - uint8_t vrh_gso_type; - uint16_t vrh_hdr_len; - uint16_t vrh_gso_size; - uint16_t vrh_csum_start; - uint16_t vrh_csum_offset; - uint16_t vrh_bufs; + uint8_t vrh_flags; + uint8_t vrh_gso_type; + uint16_t vrh_hdr_len; + uint16_t vrh_gso_size; + uint16_t vrh_csum_start; + uint16_t vrh_csum_offset; + uint16_t vrh_bufs; } __packed; +#pragma clang diagnostic pop + /* * Debug printf */ @@ -123,6 +123,8 @@ static int pci_vtnet_debug; #define DPRINTF(params) if (pci_vtnet_debug) printf params #define WPRINTF(params) printf params +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" /* * Per-device softc */ @@ -130,26 +132,22 @@ struct pci_vtnet_softc { struct virtio_softc vsc_vs; struct vqueue_info vsc_queues[VTNET_MAXQ - 1]; pthread_mutex_t vsc_mtx; - struct mevent *vsc_mevp; - - int vsc_tapfd; - int vsc_rx_ready; - volatile int resetting; /* set and checked outside lock */ - - uint64_t vsc_features; /* negotiated features */ - + struct mevent *vsc_mevp; + int vsc_tapfd; + int vsc_rx_ready; + volatile int resetting;/* set and checked outside lock */ + uint64_t vsc_features; /* negotiated features */ struct virtio_net_config vsc_config; - - pthread_mutex_t rx_mtx; - int rx_in_progress; - int rx_vhdrlen; - int rx_merge; /* merged rx bufs in use */ - - pthread_t tx_tid; - pthread_mutex_t tx_mtx; - pthread_cond_t tx_cond; - int tx_in_progress; + pthread_mutex_t rx_mtx; + int rx_in_progress; + int rx_vhdrlen; + int rx_merge; /* merged rx bufs in use */ + pthread_t tx_tid; + pthread_mutex_t tx_mtx; + pthread_cond_t tx_cond; + int tx_in_progress; }; +#pragma clang diagnostic pop static void pci_vtnet_reset(void *); /* static void pci_vtnet_notify(void *, struct vqueue_info *); */ @@ -246,7 +244,7 @@ pci_vtnet_tap_tx(struct pci_vtnet_softc *sc, struct iovec *iov, int iovcnt, */ if (len < 60) { iov[iovcnt].iov_base = pad; - iov[iovcnt].iov_len = 60 - len; + iov[iovcnt].iov_len = (size_t) (60 - len); iovcnt++; } (void) writev(sc->vsc_tapfd, iov, iovcnt); @@ -267,15 +265,16 @@ rx_iov_trim(struct iovec *iov, int *niov, int tlen) struct iovec *riov; /* XXX short-cut: assume first segment is >= tlen */ - assert(iov[0].iov_len >= tlen); + assert(iov[0].iov_len >= ((size_t) tlen)); - iov[0].iov_len -= tlen; + iov[0].iov_len -= ((size_t) tlen); if (iov[0].iov_len == 0) { assert(*niov > 1); *niov -= 1; riov = &iov[1]; } else { - iov[0].iov_base = (void *)((uintptr_t)iov[0].iov_base + tlen); + iov[0].iov_base = (void *)((uintptr_t)iov[0].iov_base + + ((size_t) tlen)); riov = &iov[0]; } @@ -336,7 +335,7 @@ pci_vtnet_tap_rx(struct pci_vtnet_softc *sc) vrx = iov[0].iov_base; riov = rx_iov_trim(iov, &n, sc->rx_vhdrlen); - len = readv(sc->vsc_tapfd, riov, n); + len = (int) readv(sc->vsc_tapfd, riov, n); if (len < 0 && errno == EWOULDBLOCK) { /* @@ -364,7 +363,7 @@ pci_vtnet_tap_rx(struct pci_vtnet_softc *sc) /* * Release this chain and handle more chains. */ - vq_relchain(vq, idx, len + sc->rx_vhdrlen); + vq_relchain(vq, idx, ((uint32_t) (len + sc->rx_vhdrlen))); } while (vq_has_descs(vq)); /* Interrupt if needed, including for NOTIFY_ON_EMPTY. */ @@ -372,7 +371,7 @@ pci_vtnet_tap_rx(struct pci_vtnet_softc *sc) } static void -pci_vtnet_tap_callback(int fd, enum ev_type type, void *param) +pci_vtnet_tap_callback(UNUSED int fd, UNUSED enum ev_type type, void *param) { struct pci_vtnet_softc *sc = param; @@ -414,7 +413,7 @@ pci_vtnet_proctx(struct pci_vtnet_softc *sc, struct vqueue_info *vq) n = vq_getchain(vq, &idx, iov, VTNET_MAXSEGS, NULL); assert(n >= 1 && n <= VTNET_MAXSEGS); plen = 0; - tlen = iov[0].iov_len; + tlen = (int) iov[0].iov_len; for (i = 1; i < n; i++) { plen += iov[i].iov_len; tlen += iov[i].iov_len; @@ -424,7 +423,7 @@ pci_vtnet_proctx(struct pci_vtnet_softc *sc, struct vqueue_info *vq) pci_vtnet_tap_tx(sc, &iov[1], n - 1, plen); /* chain is processed, release it and set tlen */ - vq_relchain(vq, idx, tlen); + vq_relchain(vq, idx, ((uint32_t) tlen)); } static void @@ -534,12 +533,11 @@ pci_vtnet_parsemac(char *mac_str, uint8_t *mac_addr) static int -pci_vtnet_init(struct vmctx *ctx, struct pci_devinst *pi, char *opts) +pci_vtnet_init(struct pci_devinst *pi, char *opts) { MD5_CTX mdctx; unsigned char digest[16]; char nstr[80]; - char tname[MAXCOMLEN + 1]; struct pci_vtnet_softc *sc; char *devname; char *vtopts; @@ -624,7 +622,7 @@ pci_vtnet_init(struct vmctx *ctx, struct pci_devinst *pi, char *opts) pi->pi_func, vmname); MD5Init(&mdctx); - MD5Update(&mdctx, nstr, strlen(nstr)); + MD5Update(&mdctx, nstr, ((unsigned int) strlen(nstr))); MD5Final(digest, &mdctx); sc->vsc_config.mac[0] = 0x00; @@ -668,10 +666,6 @@ pci_vtnet_init(struct vmctx *ctx, struct pci_devinst *pi, char *opts) pthread_mutex_init(&sc->tx_mtx, NULL); pthread_cond_init(&sc->tx_cond, NULL); pthread_create(&sc->tx_tid, NULL, pci_vtnet_tx_thread, (void *)sc); - snprintf(tname, sizeof(tname), "vtnet-%d:%d tx", pi->pi_slot, - pi->pi_func); - pthread_set_name_np(sc->tx_tid, tname); - return (0); } @@ -721,7 +715,7 @@ pci_vtnet_neg_features(void *vsc, uint64_t negotiated_features) } } -struct pci_devemu pci_de_vnet = { +static struct pci_devemu pci_de_vnet = { .pe_emu = "virtio-net", .pe_init = pci_vtnet_init, .pe_barwrite = vi_pci_write, diff --git a/bhyve/pci_virtio_rnd.c b/src/pci_virtio_rnd.c similarity index 80% rename from bhyve/pci_virtio_rnd.c rename to src/pci_virtio_rnd.c index 78448f5..b392c46 100644 --- a/bhyve/pci_virtio_rnd.c +++ b/src/pci_virtio_rnd.c @@ -1,5 +1,6 @@ /*- * Copyright (c) 2014 Nahanni Systems Inc. + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -31,57 +32,57 @@ * once it has been seeded at bootup. */ -#include -__FBSDID("$FreeBSD$"); - -#include -#include -#include - -#include -#include -#include +#include #include +#include #include -#include -#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include -#include "bhyverun.h" -#include "pci_emul.h" -#include "virtio.h" - -#define VTRND_RINGSZ 64 +#define VTRND_RINGSZ 64 static int pci_vtrnd_debug; #define DPRINTF(params) if (pci_vtrnd_debug) printf params #define WPRINTF(params) printf params +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" /* * Per-device softc */ struct pci_vtrnd_softc { struct virtio_softc vrsc_vs; - struct vqueue_info vrsc_vq; - pthread_mutex_t vrsc_mtx; - uint64_t vrsc_cfg; - int vrsc_fd; + struct vqueue_info vrsc_vq; + pthread_mutex_t vrsc_mtx; + uint64_t vrsc_cfg; + int vrsc_fd; }; +#pragma clang diagnostic pop static void pci_vtrnd_reset(void *); static void pci_vtrnd_notify(void *, struct vqueue_info *); static struct virtio_consts vtrnd_vi_consts = { - "vtrnd", /* our name */ - 1, /* we support 1 virtqueue */ - 0, /* config reg size */ - pci_vtrnd_reset, /* reset */ - pci_vtrnd_notify, /* device-wide qnotify */ - NULL, /* read virtio config */ - NULL, /* write virtio config */ - NULL, /* apply negotiated features */ - 0, /* our capabilities */ + "vtrnd", /* our name */ + 1, /* we support 1 virtqueue */ + 0, /* config reg size */ + pci_vtrnd_reset, /* reset */ + pci_vtrnd_notify, /* device-wide qnotify */ + NULL, /* read virtio config */ + NULL, /* write virtio config */ + NULL, /* apply negotiated features */ + 0, /* our capabilities */ }; @@ -115,7 +116,7 @@ pci_vtrnd_notify(void *vsc, struct vqueue_info *vq) while (vq_has_descs(vq)) { vq_getchain(vq, &idx, &iov, 1, NULL); - len = read(sc->vrsc_fd, iov.iov_base, iov.iov_len); + len = (int) read(sc->vrsc_fd, iov.iov_base, iov.iov_len); DPRINTF(("vtrnd: vtrnd_notify(): %d\r\n", len)); @@ -125,14 +126,14 @@ pci_vtrnd_notify(void *vsc, struct vqueue_info *vq) /* * Release this chain and handle more */ - vq_relchain(vq, idx, len); + vq_relchain(vq, idx, ((uint32_t) len)); } vq_endchains(vq, 1); /* Generate interrupt if appropriate. */ } static int -pci_vtrnd_init(struct vmctx *ctx, struct pci_devinst *pi, char *opts) +pci_vtrnd_init(struct pci_devinst *pi, UNUSED char *opts) { struct pci_vtrnd_softc *sc; int fd; @@ -149,7 +150,7 @@ pci_vtrnd_init(struct vmctx *ctx, struct pci_devinst *pi, char *opts) /* * Check that device is seeded and non-blocking. */ - len = read(fd, &v, sizeof(v)); + len = (int) read(fd, &v, sizeof(v)); if (len <= 0) { WPRINTF(("vtrnd: /dev/random not ready, read(): %d", len)); return (1); @@ -180,7 +181,7 @@ pci_vtrnd_init(struct vmctx *ctx, struct pci_devinst *pi, char *opts) } -struct pci_devemu pci_de_vrnd = { +static struct pci_devemu pci_de_vrnd = { .pe_emu = "virtio-rnd", .pe_init = pci_vtrnd_init, .pe_barwrite = vi_pci_write, diff --git a/src/pci_virtio_vmnet.c b/src/pci_virtio_vmnet.c new file mode 100644 index 0000000..2c02d96 --- /dev/null +++ b/src/pci_virtio_vmnet.c @@ -0,0 +1,811 @@ +/*- + * Copyright (c) 2011 NetApp, Inc. + * Copyright (c) 2015 xhyve developers + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY NETAPP, INC ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL NETAPP, INC OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +/* + * + * The vmnet support is ported from the Mirage OS project: + * + * https://github.com/mirage/ocaml-vmnet + * + * Copyright (C) 2014 Anil Madhavapeddy + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define VTNET_RINGSZ 1024 +#define VTNET_MAXSEGS 32 + +/* + * Host capabilities. Note that we only offer a few of these. + */ +// #define VIRTIO_NET_F_CSUM (1 << 0) /* host handles partial cksum */ +// #define VIRTIO_NET_F_GUEST_CSUM (1 << 1) /* guest handles partial cksum */ +#define VIRTIO_NET_F_MAC (1 << 5) /* host supplies MAC */ +// #define VIRTIO_NET_F_GSO_DEPREC (1 << 6) /* deprecated: host handles GSO */ +// #define VIRTIO_NET_F_GUEST_TSO4 (1 << 7) /* guest can rcv TSOv4 */ +// #define VIRTIO_NET_F_GUEST_TSO6 (1 << 8) /* guest can rcv TSOv6 */ +// #define VIRTIO_NET_F_GUEST_ECN (1 << 9) /* guest can rcv TSO with ECN */ +// #define VIRTIO_NET_F_GUEST_UFO (1 << 10) /* guest can rcv UFO */ +// #define VIRTIO_NET_F_HOST_TSO4 (1 << 11) /* host can rcv TSOv4 */ +// #define VIRTIO_NET_F_HOST_TSO6 (1 << 12) /* host can rcv TSOv6 */ +// #define VIRTIO_NET_F_HOST_ECN (1 << 13) /* host can rcv TSO with ECN */ +// #define VIRTIO_NET_F_HOST_UFO (1 << 14) /* host can rcv UFO */ +#define VIRTIO_NET_F_MRG_RXBUF (1 << 15) /* host can merge RX buffers */ +#define VIRTIO_NET_F_STATUS (1 << 16) /* config status field available */ +// #define VIRTIO_NET_F_CTRL_VQ (1 << 17) /* control channel available */ +// #define VIRTIO_NET_F_CTRL_RX (1 << 18) /* control channel RX mode support */ +// #define VIRTIO_NET_F_CTRL_VLAN (1 << 19) /* control channel VLAN filtering */ +// #define VIRTIO_NET_F_GUEST_ANNOUNCE (1 << 21) /* guest can send gratuit. pkts */ + +#define VTNET_S_HOSTCAPS \ + (VIRTIO_NET_F_MAC | VIRTIO_NET_F_MRG_RXBUF | VIRTIO_NET_F_STATUS | \ + VIRTIO_F_NOTIFY_ON_EMPTY) + +// #define ETHER_IS_MULTICAST(addr) (*(addr) & 0x01) /* is address mcast/bcast? */ + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpacked" + +/* + * PCI config-space "registers" + */ +struct virtio_net_config { + uint8_t mac[6]; + uint16_t status; +} __packed; + +/* + * Queue definitions. + */ +#define VTNET_RXQ 0 +#define VTNET_TXQ 1 +// #define VTNET_CTLQ 2 /* NB: not yet supported */ +#define VTNET_MAXQ 3 + +/* + * Fixed network header size + */ +struct virtio_net_rxhdr { + uint8_t vrh_flags; + uint8_t vrh_gso_type; + uint16_t vrh_hdr_len; + uint16_t vrh_gso_size; + uint16_t vrh_csum_start; + uint16_t vrh_csum_offset; + uint16_t vrh_bufs; +} __packed; + +#pragma clang diagnostic pop + +/* + * Debug printf + */ +static int pci_vtnet_debug; +#define DPRINTF(params) if (pci_vtnet_debug) printf params + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" +/* + * Per-device softc + */ +struct pci_vtnet_softc { + struct virtio_softc vsc_vs; + struct vqueue_info vsc_queues[VTNET_MAXQ - 1]; + pthread_mutex_t vsc_mtx; + struct vmnet_state *vms; + int vsc_rx_ready; + volatile int resetting;/* set and checked outside lock */ + uint64_t vsc_features; /* negotiated features */ + struct virtio_net_config vsc_config; + pthread_mutex_t rx_mtx; + int rx_in_progress; + int rx_vhdrlen; + int rx_merge; /* merged rx bufs in use */ + pthread_t tx_tid; + pthread_mutex_t tx_mtx; + pthread_cond_t tx_cond; + int tx_in_progress; +}; + +static void pci_vtnet_reset(void *); +/* static void pci_vtnet_notify(void *, struct vqueue_info *); */ +static int pci_vtnet_cfgread(void *, int, int, uint32_t *); +static int pci_vtnet_cfgwrite(void *, int, int, uint32_t); +static void pci_vtnet_neg_features(void *, uint64_t); + +static struct virtio_consts vtnet_vi_consts = { + "vtnet", /* our name */ + VTNET_MAXQ - 1, /* we currently support 2 virtqueues */ + sizeof(struct virtio_net_config), /* config reg size */ + pci_vtnet_reset, /* reset */ + NULL, /* device-wide qnotify -- not used */ + pci_vtnet_cfgread, /* read PCI config */ + pci_vtnet_cfgwrite, /* write PCI config */ + pci_vtnet_neg_features, /* apply negotiated features */ + VTNET_S_HOSTCAPS, /* our capabilities */ +}; + +struct vmnet_state { + interface_ref iface; + uint8_t mac[6]; + unsigned int mtu; + unsigned int max_packet_size; +}; + +#pragma clang diagnostic pop + +static void pci_vtnet_tap_callback(struct pci_vtnet_softc *sc); + +static struct vmnet_state * +vmn_create(struct pci_vtnet_softc *sc) +{ + xpc_object_t interface_desc; + uuid_t uuid; + __block interface_ref iface; + __block vmnet_return_t iface_status; + dispatch_semaphore_t iface_created; + dispatch_queue_t if_create_q; + dispatch_queue_t if_q; + struct vmnet_state *vms; + + interface_desc = xpc_dictionary_create(NULL, NULL, 0); + xpc_dictionary_set_uint64(interface_desc, vmnet_operation_mode_key, + VMNET_SHARED_MODE); + uuid_generate_random(uuid); + xpc_dictionary_set_uuid(interface_desc, vmnet_interface_id_key, uuid); + iface = NULL; + iface_status = 0; + + vms = malloc(sizeof(struct vmnet_state)); + + if (!vms) { + return (NULL); + } + + if_create_q = dispatch_queue_create("org.xhyve.vmnet.create", + DISPATCH_QUEUE_SERIAL); + + iface_created = dispatch_semaphore_create(0); + + iface = vmnet_start_interface(interface_desc, if_create_q, + ^(vmnet_return_t status, xpc_object_t interface_param) + { + iface_status = status; + if (status != VMNET_SUCCESS || !interface_param) { + dispatch_semaphore_signal(iface_created); + return; + } + + if (sscanf(xpc_dictionary_get_string(interface_param, + vmnet_mac_address_key), + "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", + &vms->mac[0], &vms->mac[1], &vms->mac[2], &vms->mac[3], + &vms->mac[4], &vms->mac[5]) != 6) + { + assert(0); + } + + vms->mtu = (unsigned) + xpc_dictionary_get_uint64(interface_param, vmnet_mtu_key); + vms->max_packet_size = (unsigned) + xpc_dictionary_get_uint64(interface_param, + vmnet_max_packet_size_key); + dispatch_semaphore_signal(iface_created); + }); + + dispatch_semaphore_wait(iface_created, DISPATCH_TIME_FOREVER); + dispatch_release(if_create_q); + + if (iface == NULL || iface_status != VMNET_SUCCESS) { + printf("virtio_net: Could not create vmnet interface, " + "permission denied or no entitlement?\n"); + free(vms); + return (NULL); + } + + vms->iface = iface; + + if_q = dispatch_queue_create("org.xhyve.vmnet.iface_q", 0); + + vmnet_interface_set_event_callback(iface, VMNET_INTERFACE_PACKETS_AVAILABLE, + if_q, ^(UNUSED interface_event_t event_id, UNUSED xpc_object_t event) + { + pci_vtnet_tap_callback(sc); + }); + + return (vms); +} + +static ssize_t +vmn_read(struct vmnet_state *vms, struct iovec *iov, int n) { + vmnet_return_t r; + struct vmpktdesc v; + int pktcnt; + int i; + + v.vm_pkt_size = 0; + + for (i = 0; i < n; i++) { + v.vm_pkt_size += iov[i].iov_len; + } + + assert(v.vm_pkt_size >= vms->max_packet_size); + + v.vm_pkt_iov = iov; + v.vm_pkt_iovcnt = (uint32_t) n; + v.vm_flags = 0; /* TODO no clue what this is */ + + pktcnt = 1; + + r = vmnet_read(vms->iface, &v, &pktcnt); + + assert(r == VMNET_SUCCESS); + + if (pktcnt < 1) { + return (-1); + } + + return ((ssize_t) v.vm_pkt_size); +} + +static void +vmn_write(struct vmnet_state *vms, struct iovec *iov, int n) { + vmnet_return_t r; + struct vmpktdesc v; + int pktcnt; + int i; + + v.vm_pkt_size = 0; + + for (i = 0; i < n; i++) { + v.vm_pkt_size += iov[i].iov_len; + } + + assert(v.vm_pkt_size <= vms->max_packet_size); + + v.vm_pkt_iov = iov; + v.vm_pkt_iovcnt = (uint32_t) n; + v.vm_flags = 0; /* TODO no clue what this is */ + + pktcnt = 1; + + r = vmnet_write(vms->iface, &v, &pktcnt); + + assert(r == VMNET_SUCCESS); +} + +/* + * If the transmit thread is active then stall until it is done. + */ +static void +pci_vtnet_txwait(struct pci_vtnet_softc *sc) +{ + + pthread_mutex_lock(&sc->tx_mtx); + while (sc->tx_in_progress) { + pthread_mutex_unlock(&sc->tx_mtx); + usleep(10000); + pthread_mutex_lock(&sc->tx_mtx); + } + pthread_mutex_unlock(&sc->tx_mtx); +} + +/* + * If the receive thread is active then stall until it is done. + */ +static void +pci_vtnet_rxwait(struct pci_vtnet_softc *sc) +{ + + pthread_mutex_lock(&sc->rx_mtx); + while (sc->rx_in_progress) { + pthread_mutex_unlock(&sc->rx_mtx); + usleep(10000); + pthread_mutex_lock(&sc->rx_mtx); + } + pthread_mutex_unlock(&sc->rx_mtx); +} + +static void +pci_vtnet_reset(void *vsc) +{ + struct pci_vtnet_softc *sc = vsc; + + DPRINTF(("vtnet: device reset requested !\n")); + + sc->resetting = 1; + + /* + * Wait for the transmit and receive threads to finish their + * processing. + */ + pci_vtnet_txwait(sc); + pci_vtnet_rxwait(sc); + + sc->vsc_rx_ready = 0; + sc->rx_merge = 1; + sc->rx_vhdrlen = sizeof(struct virtio_net_rxhdr); + + /* now reset rings, MSI-X vectors, and negotiated capabilities */ + vi_reset_dev(&sc->vsc_vs); + + sc->resetting = 0; +} + +/* + * Called to send a buffer chain out to the tap device + */ +static void +pci_vtnet_tap_tx(struct pci_vtnet_softc *sc, struct iovec *iov, int iovcnt, + int len) +{ + static char pad[60]; /* all zero bytes */ + + if (!sc->vms) + return; + + /* + * If the length is < 60, pad out to that and add the + * extra zero'd segment to the iov. It is guaranteed that + * there is always an extra iov available by the caller. + */ + if (len < 60) { + iov[iovcnt].iov_base = pad; + iov[iovcnt].iov_len = (size_t) (60 - len); + iovcnt++; + } + vmn_write(sc->vms, iov, iovcnt); +} + +/* + * Called when there is read activity on the tap file descriptor. + * Each buffer posted by the guest is assumed to be able to contain + * an entire ethernet frame + rx header. + * MP note: the dummybuf is only used for discarding frames, so there + * is no need for it to be per-vtnet or locked. + */ +static uint8_t dummybuf[2048]; + +static __inline struct iovec * +rx_iov_trim(struct iovec *iov, int *niov, int tlen) +{ + struct iovec *riov; + + /* XXX short-cut: assume first segment is >= tlen */ + assert(iov[0].iov_len >= ((size_t) tlen)); + + iov[0].iov_len -= ((size_t) tlen); + if (iov[0].iov_len == 0) { + assert(*niov > 1); + *niov -= 1; + riov = &iov[1]; + } else { + iov[0].iov_base = (void *)((uintptr_t)iov[0].iov_base + + ((size_t) tlen)); + riov = &iov[0]; + } + + return (riov); +} + +static void +pci_vtnet_tap_rx(struct pci_vtnet_softc *sc) +{ + struct iovec iov[VTNET_MAXSEGS], *riov; + struct vqueue_info *vq; + void *vrx; + int len, n; + uint16_t idx; + + /* + * Should never be called without a valid tap fd + */ + assert(sc->vms); + + /* + * But, will be called when the rx ring hasn't yet + * been set up or the guest is resetting the device. + */ + if (!sc->vsc_rx_ready || sc->resetting) { + /* + * Drop the packet and try later. + */ + iov[0].iov_base = dummybuf; + iov[0].iov_len = sizeof(dummybuf); + (void) vmn_read(sc->vms, iov, 1); + return; + } + + /* + * Check for available rx buffers + */ + vq = &sc->vsc_queues[VTNET_RXQ]; + if (!vq_has_descs(vq)) { + /* + * Drop the packet and try later. Interrupt on + * empty, if that's negotiated. + */ + iov[0].iov_base = dummybuf; + iov[0].iov_len = sizeof(dummybuf); + (void) vmn_read(sc->vms, iov, 1); + vq_endchains(vq, 1); + return; + } + + do { + /* + * Get descriptor chain. + */ + n = vq_getchain(vq, &idx, iov, VTNET_MAXSEGS, NULL); + assert(n >= 1 && n <= VTNET_MAXSEGS); + + /* + * Get a pointer to the rx header, and use the + * data immediately following it for the packet buffer. + */ + vrx = iov[0].iov_base; + riov = rx_iov_trim(iov, &n, sc->rx_vhdrlen); + + len = (int) vmn_read(sc->vms, riov, n); + + if (len < 0 && errno == EWOULDBLOCK) { + /* + * No more packets, but still some avail ring + * entries. Interrupt if needed/appropriate. + */ + vq_retchain(vq); + vq_endchains(vq, 0); + return; + } + + /* + * The only valid field in the rx packet header is the + * number of buffers if merged rx bufs were negotiated. + */ + memset(vrx, 0, sc->rx_vhdrlen); + + if (sc->rx_merge) { + struct virtio_net_rxhdr *vrxh; + + vrxh = vrx; + vrxh->vrh_bufs = 1; + } + + /* + * Release this chain and handle more chains. + */ + vq_relchain(vq, idx, ((uint32_t) (len + sc->rx_vhdrlen))); + } while (vq_has_descs(vq)); + + /* Interrupt if needed, including for NOTIFY_ON_EMPTY. */ + vq_endchains(vq, 1); +} + +static void +pci_vtnet_tap_callback(struct pci_vtnet_softc *sc) +{ + pthread_mutex_lock(&sc->rx_mtx); + sc->rx_in_progress = 1; + pci_vtnet_tap_rx(sc); + sc->rx_in_progress = 0; + pthread_mutex_unlock(&sc->rx_mtx); + +} + +static void +pci_vtnet_ping_rxq(void *vsc, struct vqueue_info *vq) +{ + struct pci_vtnet_softc *sc = vsc; + + /* + * A qnotify means that the rx process can now begin + */ + if (sc->vsc_rx_ready == 0) { + sc->vsc_rx_ready = 1; + vq->vq_used->vu_flags |= VRING_USED_F_NO_NOTIFY; + } +} + +static void +pci_vtnet_proctx(struct pci_vtnet_softc *sc, struct vqueue_info *vq) +{ + struct iovec iov[VTNET_MAXSEGS + 1]; + int i, n; + int plen, tlen; + uint16_t idx; + + /* + * Obtain chain of descriptors. The first one is + * really the header descriptor, so we need to sum + * up two lengths: packet length and transfer length. + */ + n = vq_getchain(vq, &idx, iov, VTNET_MAXSEGS, NULL); + assert(n >= 1 && n <= VTNET_MAXSEGS); + plen = 0; + tlen = (int) iov[0].iov_len; + for (i = 1; i < n; i++) { + plen += iov[i].iov_len; + tlen += iov[i].iov_len; + } + + DPRINTF(("virtio: packet send, %d bytes, %d segs\n\r", plen, n)); + pci_vtnet_tap_tx(sc, &iov[1], n - 1, plen); + + /* chain is processed, release it and set tlen */ + vq_relchain(vq, idx, ((uint32_t) tlen)); +} + +static void +pci_vtnet_ping_txq(void *vsc, struct vqueue_info *vq) +{ + struct pci_vtnet_softc *sc = vsc; + + /* + * Any ring entries to process? + */ + if (!vq_has_descs(vq)) + return; + + /* Signal the tx thread for processing */ + pthread_mutex_lock(&sc->tx_mtx); + vq->vq_used->vu_flags |= VRING_USED_F_NO_NOTIFY; + if (sc->tx_in_progress == 0) + pthread_cond_signal(&sc->tx_cond); + pthread_mutex_unlock(&sc->tx_mtx); +} + +/* + * Thread which will handle processing of TX desc + */ +static void * +pci_vtnet_tx_thread(void *param) +{ + struct pci_vtnet_softc *sc = param; + struct vqueue_info *vq; + int error; + + vq = &sc->vsc_queues[VTNET_TXQ]; + + /* + * Let us wait till the tx queue pointers get initialised & + * first tx signaled + */ + pthread_mutex_lock(&sc->tx_mtx); + error = pthread_cond_wait(&sc->tx_cond, &sc->tx_mtx); + assert(error == 0); + + for (;;) { + /* note - tx mutex is locked here */ + while (sc->resetting || !vq_has_descs(vq)) { + vq->vq_used->vu_flags &= ~VRING_USED_F_NO_NOTIFY; + mb(); + if (!sc->resetting && vq_has_descs(vq)) + break; + + sc->tx_in_progress = 0; + error = pthread_cond_wait(&sc->tx_cond, &sc->tx_mtx); + assert(error == 0); + } + vq->vq_used->vu_flags |= VRING_USED_F_NO_NOTIFY; + sc->tx_in_progress = 1; + pthread_mutex_unlock(&sc->tx_mtx); + + do { + /* + * Run through entries, placing them into + * iovecs and sending when an end-of-packet + * is found + */ + pci_vtnet_proctx(sc, vq); + } while (vq_has_descs(vq)); + + /* + * Generate an interrupt if needed. + */ + vq_endchains(vq, 1); + + pthread_mutex_lock(&sc->tx_mtx); + } +} + +#ifdef notyet +static void +pci_vtnet_ping_ctlq(void *vsc, struct vqueue_info *vq) +{ + DPRINTF(("vtnet: control qnotify!\n\r")); +} +#endif + +static int +pci_vtnet_init(struct pci_devinst *pi, UNUSED char *opts) +{ + struct pci_vtnet_softc *sc; + int mac_provided; + + sc = calloc(1, sizeof(struct pci_vtnet_softc)); + + pthread_mutex_init(&sc->vsc_mtx, NULL); + + vi_softc_linkup(&sc->vsc_vs, &vtnet_vi_consts, sc, pi, sc->vsc_queues); + sc->vsc_vs.vs_mtx = &sc->vsc_mtx; + + sc->vsc_queues[VTNET_RXQ].vq_qsize = VTNET_RINGSZ; + sc->vsc_queues[VTNET_RXQ].vq_notify = pci_vtnet_ping_rxq; + sc->vsc_queues[VTNET_TXQ].vq_qsize = VTNET_RINGSZ; + sc->vsc_queues[VTNET_TXQ].vq_notify = pci_vtnet_ping_txq; +#ifdef notyet + sc->vsc_queues[VTNET_CTLQ].vq_qsize = VTNET_RINGSZ; + sc->vsc_queues[VTNET_CTLQ].vq_notify = pci_vtnet_ping_ctlq; +#endif + + /* + * Attempt to open the tap device and read the MAC address + * if specified + */ + mac_provided = 0; + sc->vms = NULL; + + sc->vms = vmn_create(sc); + + if (!sc->vms) { + return (-1); + } + + sc->vsc_config.mac[0] = sc->vms->mac[0]; + sc->vsc_config.mac[1] = sc->vms->mac[1]; + sc->vsc_config.mac[2] = sc->vms->mac[2]; + sc->vsc_config.mac[3] = sc->vms->mac[3]; + sc->vsc_config.mac[4] = sc->vms->mac[4]; + sc->vsc_config.mac[5] = sc->vms->mac[5]; + + /* initialize config space */ + pci_set_cfgdata16(pi, PCIR_DEVICE, VIRTIO_DEV_NET); + pci_set_cfgdata16(pi, PCIR_VENDOR, VIRTIO_VENDOR); + pci_set_cfgdata8(pi, PCIR_CLASS, PCIC_NETWORK); + pci_set_cfgdata16(pi, PCIR_SUBDEV_0, VIRTIO_TYPE_NET); + pci_set_cfgdata16(pi, PCIR_SUBVEND_0, VIRTIO_VENDOR); + + /* Link is up if we managed to open tap device. */ + sc->vsc_config.status = 1; + + /* use BAR 1 to map MSI-X table and PBA, if we're using MSI-X */ + if (vi_intr_init(&sc->vsc_vs, 1, fbsdrun_virtio_msix())) + return (1); + + /* use BAR 0 to map config regs in IO space */ + vi_set_io_bar(&sc->vsc_vs, 0); + + sc->resetting = 0; + + sc->rx_merge = 1; + sc->rx_vhdrlen = sizeof(struct virtio_net_rxhdr); + sc->rx_in_progress = 0; + pthread_mutex_init(&sc->rx_mtx, NULL); + + /* + * Initialize tx semaphore & spawn TX processing thread. + * As of now, only one thread for TX desc processing is + * spawned. + */ + sc->tx_in_progress = 0; + pthread_mutex_init(&sc->tx_mtx, NULL); + pthread_cond_init(&sc->tx_cond, NULL); + pthread_create(&sc->tx_tid, NULL, pci_vtnet_tx_thread, (void *)sc); + return (0); +} + +static int +pci_vtnet_cfgwrite(void *vsc, int offset, int size, uint32_t value) +{ + struct pci_vtnet_softc *sc = vsc; + void *ptr; + + if (offset < 6) { + assert(offset + size <= 6); + /* + * The driver is allowed to change the MAC address + */ + ptr = &sc->vsc_config.mac[offset]; + memcpy(ptr, &value, size); + } else { + /* silently ignore other writes */ + DPRINTF(("vtnet: write to readonly reg %d\n\r", offset)); + } + + return (0); +} + +static int +pci_vtnet_cfgread(void *vsc, int offset, int size, uint32_t *retval) +{ + struct pci_vtnet_softc *sc = vsc; + void *ptr; + + ptr = (uint8_t *)&sc->vsc_config + offset; + memcpy(retval, ptr, size); + return (0); +} + +static void +pci_vtnet_neg_features(void *vsc, uint64_t negotiated_features) +{ + struct pci_vtnet_softc *sc = vsc; + + sc->vsc_features = negotiated_features; + + if (!(sc->vsc_features & VIRTIO_NET_F_MRG_RXBUF)) { + sc->rx_merge = 0; + /* non-merge rx header is 2 bytes shorter */ + sc->rx_vhdrlen -= 2; + } +} + +static struct pci_devemu pci_de_vnet = { + .pe_emu = "virtio-net", + .pe_init = pci_vtnet_init, + .pe_barwrite = vi_pci_write, + .pe_barread = vi_pci_read +}; +PCI_EMUL_SET(pci_de_vnet); diff --git a/bhyve/pm.c b/src/pm.c similarity index 80% rename from bhyve/pm.c rename to src/pm.c index f7c1c23..56139b0 100644 --- a/bhyve/pm.c +++ b/src/pm.c @@ -1,6 +1,7 @@ /*- * Copyright (c) 2013 Hudson River Trading LLC * Written by: John H. Baldwin + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -25,23 +26,18 @@ * SUCH DAMAGE. */ -#include -__FBSDID("$FreeBSD$"); - -#include -#include - +#include #include #include #include #include -#include - -#include "acpi.h" -#include "inout.h" -#include "mevent.h" -#include "pci_irq.h" -#include "pci_lpc.h" +#include +#include +#include +#include +#include +#include +#include static pthread_mutex_t pm_lock = PTHREAD_MUTEX_INITIALIZER; static struct mevent *power_button; @@ -54,8 +50,8 @@ static sig_t old_power_handler; * reset. */ static int -reset_handler(struct vmctx *ctx, int vcpu, int in, int port, int bytes, - uint32_t *eax, void *arg) +reset_handler(UNUSED int vcpu, int in, UNUSED int port, int bytes, + uint32_t *eax, UNUSED void *arg) { int error; @@ -66,11 +62,11 @@ reset_handler(struct vmctx *ctx, int vcpu, int in, int port, int bytes, if (in) *eax = reset_control; else { - reset_control = *eax; + reset_control = (uint8_t) *eax; /* Treat hard and soft resets the same. */ if (reset_control & 0x4) { - error = vm_suspend(ctx, VM_SUSPEND_RESET); + error = xh_vm_suspend(VM_SUSPEND_RESET); assert(error == 0 || errno == EALREADY); } } @@ -84,22 +80,20 @@ INOUT_PORT(reset_reg, 0xCF9, IOPORT_F_INOUT, reset_handler); static int sci_active; static void -sci_assert(struct vmctx *ctx) +sci_assert(void) { - if (sci_active) return; - vm_isa_assert_irq(ctx, SCI_INT, SCI_INT); + xh_vm_isa_assert_irq(SCI_INT, SCI_INT); sci_active = 1; } static void -sci_deassert(struct vmctx *ctx) +sci_deassert(void) { - if (!sci_active) return; - vm_isa_deassert_irq(ctx, SCI_INT, SCI_INT); + xh_vm_isa_deassert_irq(SCI_INT, SCI_INT); sci_active = 0; } @@ -126,7 +120,7 @@ static uint16_t pm1_enable, pm1_status; #define PM1_RTC_EN 0x0400 static void -sci_update(struct vmctx *ctx) +sci_update(void) { int need_sci; @@ -143,14 +137,14 @@ sci_update(struct vmctx *ctx) if ((pm1_enable & PM1_RTC_EN) && (pm1_status & PM1_RTC_STS)) need_sci = 1; if (need_sci) - sci_assert(ctx); + sci_assert(); else - sci_deassert(ctx); + sci_deassert(); } static int -pm1_status_handler(struct vmctx *ctx, int vcpu, int in, int port, int bytes, - uint32_t *eax, void *arg) +pm1_status_handler(UNUSED int vcpu, int in, UNUSED int port, int bytes, + uint32_t *eax, UNUSED void *arg) { if (bytes != 2) @@ -166,15 +160,15 @@ pm1_status_handler(struct vmctx *ctx, int vcpu, int in, int port, int bytes, */ pm1_status &= ~(*eax & (PM1_WAK_STS | PM1_RTC_STS | PM1_SLPBTN_STS | PM1_PWRBTN_STS | PM1_BM_STS)); - sci_update(ctx); + sci_update(); } pthread_mutex_unlock(&pm_lock); return (0); } static int -pm1_enable_handler(struct vmctx *ctx, int vcpu, int in, int port, int bytes, - uint32_t *eax, void *arg) +pm1_enable_handler(UNUSED int vcpu, int in, UNUSED int port, int bytes, + uint32_t *eax, UNUSED void *arg) { if (bytes != 2) @@ -190,24 +184,22 @@ pm1_enable_handler(struct vmctx *ctx, int vcpu, int in, int port, int bytes, * can't set GBL_EN. */ pm1_enable = *eax & (PM1_PWRBTN_EN | PM1_GBL_EN); - sci_update(ctx); + sci_update(); } pthread_mutex_unlock(&pm_lock); return (0); } INOUT_PORT(pm1_status, PM1A_EVT_ADDR, IOPORT_F_INOUT, pm1_status_handler); -INOUT_PORT(pm1_enable, PM1A_EVT_ADDR + 2, IOPORT_F_INOUT, pm1_enable_handler); +INOUT_PORT(pm1_enable, PM1A_EVT_ADDR2, IOPORT_F_INOUT, pm1_enable_handler); static void -power_button_handler(int signal, enum ev_type type, void *arg) +power_button_handler(UNUSED int signal, UNUSED enum ev_type type, + UNUSED void *arg) { - struct vmctx *ctx; - - ctx = arg; pthread_mutex_lock(&pm_lock); if (!(pm1_status & PM1_PWRBTN_STS)) { pm1_status |= PM1_PWRBTN_STS; - sci_update(ctx); + sci_update(); } pthread_mutex_unlock(&pm_lock); } @@ -226,8 +218,8 @@ static uint16_t pm1_control; #define PM1_ALWAYS_ZERO 0xc003 static int -pm1_control_handler(struct vmctx *ctx, int vcpu, int in, int port, int bytes, - uint32_t *eax, void *arg) +pm1_control_handler(UNUSED int vcpu, int in, UNUSED int port, int bytes, + uint32_t *eax, UNUSED void *arg) { int error; @@ -241,8 +233,8 @@ pm1_control_handler(struct vmctx *ctx, int vcpu, int in, int port, int bytes, * to zero in pm1_control. Always preserve SCI_EN as OSPM * can never change it. */ - pm1_control = (pm1_control & PM1_SCI_EN) | - (*eax & ~(PM1_SLP_EN | PM1_ALWAYS_ZERO)); + pm1_control = (uint16_t) ((pm1_control & PM1_SCI_EN) | + (*eax & ~((unsigned) (PM1_SLP_EN | PM1_ALWAYS_ZERO)))); /* * If SLP_EN is set, check for S5. Bhyve's _S5_ method @@ -250,7 +242,7 @@ pm1_control_handler(struct vmctx *ctx, int vcpu, int in, int port, int bytes, */ if (*eax & PM1_SLP_EN) { if ((pm1_control & PM1_SLP_TYP) >> 10 == 5) { - error = vm_suspend(ctx, VM_SUSPEND_POWEROFF); + error = xh_vm_suspend(VM_SUSPEND_POWEROFF); assert(error == 0 || errno == EALREADY); } } @@ -266,10 +258,9 @@ SYSRES_IO(PM1A_EVT_ADDR, 8); * This write-only register is used to enable and disable ACPI. */ static int -smi_cmd_handler(struct vmctx *ctx, int vcpu, int in, int port, int bytes, - uint32_t *eax, void *arg) +smi_cmd_handler(UNUSED int vcpu, int in, UNUSED int port, int bytes, + uint32_t *eax, UNUSED void *arg) { - assert(!in); if (bytes != 1) return (-1); @@ -280,7 +271,7 @@ smi_cmd_handler(struct vmctx *ctx, int vcpu, int in, int port, int bytes, pm1_control |= PM1_SCI_EN; if (power_button == NULL) { power_button = mevent_add(SIGTERM, EVF_SIGNAL, - power_button_handler, ctx); + power_button_handler, NULL); old_power_handler = signal(SIGTERM, SIG_IGN); } break; @@ -300,13 +291,12 @@ INOUT_PORT(smi_cmd, SMI_CMD, IOPORT_F_OUT, smi_cmd_handler); SYSRES_IO(SMI_CMD, 1); void -sci_init(struct vmctx *ctx) +sci_init(void) { - /* * Mark ACPI's SCI as level trigger and bump its use count * in the PIRQ router. */ pci_irq_use(SCI_INT); - vm_isa_set_irq_trigger(ctx, SCI_INT, LEVEL_TRIGGER); + xh_vm_isa_set_irq_trigger(SCI_INT, LEVEL_TRIGGER); } diff --git a/bhyve/post.c b/src/post.c similarity index 86% rename from bhyve/post.c rename to src/post.c index 5215a0c..75bbc54 100644 --- a/bhyve/post.c +++ b/src/post.c @@ -1,5 +1,6 @@ /*- * Copyright (c) 2011 NetApp, Inc. + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,19 +27,15 @@ * $FreeBSD$ */ -#include -__FBSDID("$FreeBSD$"); - -#include - +#include #include - -#include "inout.h" -#include "pci_lpc.h" +#include +#include +#include static int -post_data_handler(struct vmctx *ctx, int vcpu, int in, int port, int bytes, - uint32_t *eax, void *arg) +post_data_handler(UNUSED int vcpu, int in, UNUSED int port, int bytes, + uint32_t *eax, UNUSED void *arg) { assert(in == 1); diff --git a/bhyve/rtc.c b/src/rtc.c similarity index 73% rename from bhyve/rtc.c rename to src/rtc.c index 5c70154..a71fdef 100644 --- a/bhyve/rtc.c +++ b/src/rtc.c @@ -1,5 +1,6 @@ /*- * Copyright (c) 2011 NetApp, Inc. + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,38 +27,29 @@ * $FreeBSD$ */ -#include -__FBSDID("$FreeBSD$"); - -#include - #include #include +#include +#include +#include +#include -#include -#include +#define IO_RTC 0x70 -#include "acpi.h" -#include "pci_lpc.h" -#include "rtc.h" +#define RTC_LMEM_LSB 0x34 +#define RTC_LMEM_MSB 0x35 +#define RTC_HMEM_LSB 0x5b +#define RTC_HMEM_SB 0x5c +#define RTC_HMEM_MSB 0x5d -#define IO_RTC 0x70 - -#define RTC_LMEM_LSB 0x34 -#define RTC_LMEM_MSB 0x35 -#define RTC_HMEM_LSB 0x5b -#define RTC_HMEM_SB 0x5c -#define RTC_HMEM_MSB 0x5d - -#define m_64KB (64*1024) -#define m_16MB (16*1024*1024) -#define m_4GB (4ULL*1024*1024*1024) +#define m_64KB (64*1024) +#define m_16MB (16*1024*1024) /* * Returns the current RTC time as number of seconds since 00:00:00 Jan 1, 1970 */ static time_t -rtc_time(struct vmctx *ctx, int use_localtime) +rtc_time(int use_localtime) { struct tm tm; time_t t; @@ -71,7 +63,7 @@ rtc_time(struct vmctx *ctx, int use_localtime) } void -rtc_init(struct vmctx *ctx, int use_localtime) +rtc_init(int use_localtime) { size_t himem; size_t lomem; @@ -85,28 +77,27 @@ rtc_init(struct vmctx *ctx, int use_localtime) * 0x34/0x35 - 64KB chunks above 16MB, below 4GB * 0x5b/0x5c/0x5d - 64KB chunks above 4GB */ - lomem = (vm_get_lowmem_size(ctx) - m_16MB) / m_64KB; - err = vm_rtc_write(ctx, RTC_LMEM_LSB, lomem); + lomem = (xh_vm_get_lowmem_size() - m_16MB) / m_64KB; + err = xh_vm_rtc_write(RTC_LMEM_LSB, ((uint8_t) lomem)); assert(err == 0); - err = vm_rtc_write(ctx, RTC_LMEM_MSB, lomem >> 8); + err = xh_vm_rtc_write(RTC_LMEM_MSB, ((uint8_t) (lomem >> 8))); assert(err == 0); - himem = vm_get_highmem_size(ctx) / m_64KB; - err = vm_rtc_write(ctx, RTC_HMEM_LSB, himem); + himem = xh_vm_get_highmem_size() / m_64KB; + err = xh_vm_rtc_write(RTC_HMEM_LSB, ((uint8_t) himem)); assert(err == 0); - err = vm_rtc_write(ctx, RTC_HMEM_SB, himem >> 8); + err = xh_vm_rtc_write(RTC_HMEM_SB, ((uint8_t) (himem >> 8))); assert(err == 0); - err = vm_rtc_write(ctx, RTC_HMEM_MSB, himem >> 16); + err = xh_vm_rtc_write(RTC_HMEM_MSB, ((uint8_t) (himem >> 16))); assert(err == 0); - err = vm_rtc_settime(ctx, rtc_time(ctx, use_localtime)); + err = xh_vm_rtc_settime(rtc_time(use_localtime)); assert(err == 0); } static void rtc_dsdt(void) { - dsdt_line(""); dsdt_line("Device (RTC)"); dsdt_line("{"); diff --git a/bhyve/smbiostbl.c b/src/smbiostbl.c similarity index 82% rename from bhyve/smbiostbl.c rename to src/smbiostbl.c index 59a1358..19c1caa 100644 --- a/bhyve/smbiostbl.c +++ b/src/smbiostbl.c @@ -1,5 +1,6 @@ /*- * Copyright (c) 2014 Tycho Nightingale + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -24,42 +25,39 @@ * SUCH DAMAGE. */ -#include -__FBSDID("$FreeBSD$"); - -#include - +#include #include #include -#include #include #include #include -#include +#include +#include +#include +#include +#include +#include +#include -#include -#include +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpacked" -#include "bhyverun.h" -#include "smbiostbl.h" +#define GB (1024ULL*1024*1024) -#define MB (1024*1024) -#define GB (1024ULL*1024*1024) - -#define SMBIOS_BASE 0xF1000 +#define SMBIOS_BASE 0xF1000 /* BHYVE_ACPI_BASE - SMBIOS_BASE) */ -#define SMBIOS_MAX_LENGTH (0xF2400 - 0xF1000) +#define SMBIOS_MAX_LENGTH (0xF2400 - 0xF1000) -#define SMBIOS_TYPE_BIOS 0 -#define SMBIOS_TYPE_SYSTEM 1 -#define SMBIOS_TYPE_CHASSIS 3 -#define SMBIOS_TYPE_PROCESSOR 4 -#define SMBIOS_TYPE_MEMARRAY 16 -#define SMBIOS_TYPE_MEMDEVICE 17 -#define SMBIOS_TYPE_MEMARRAYMAP 19 -#define SMBIOS_TYPE_BOOT 32 -#define SMBIOS_TYPE_EOT 127 +#define SMBIOS_TYPE_BIOS 0 +#define SMBIOS_TYPE_SYSTEM 1 +#define SMBIOS_TYPE_CHASSIS 3 +#define SMBIOS_TYPE_PROCESSOR 4 +#define SMBIOS_TYPE_MEMARRAY 16 +#define SMBIOS_TYPE_MEMDEVICE 17 +#define SMBIOS_TYPE_MEMARRAYMAP 19 +#define SMBIOS_TYPE_BOOT 32 +#define SMBIOS_TYPE_EOT 127 struct smbios_structure { uint8_t type; @@ -109,7 +107,7 @@ struct smbios_entry_point { #define SMBIOS_FL_PCI 0x00000080 /* PCI is supported */ #define SMBIOS_FL_SHADOW 0x00001000 /* BIOS shadowing is allowed */ #define SMBIOS_FL_CDBOOT 0x00008000 /* Boot from CD is supported */ -#define SMBIOS_FL_SELBOOT 0x00010000 /* Selectable Boot supported */ +// #define SMBIOS_FL_SELBOOT 0x00010000 /* Selectable Boot supported */ #define SMBIOS_FL_EDD 0x00080000 /* EDD Spec is supported */ #define SMBIOS_XB1_FL_ACPI 0x00000001 /* ACPI is supported */ @@ -303,7 +301,9 @@ struct smbios_table_type127 { struct smbios_structure header; } __packed; -struct smbios_table_type0 smbios_type0_template = { +#pragma clang diagnostic pop + +static struct smbios_table_type0 smbios_type0_template = { { SMBIOS_TYPE_BIOS, sizeof (struct smbios_table_type0), 0 }, 1, /* bios vendor string */ 2, /* bios version string */ @@ -319,14 +319,14 @@ struct smbios_table_type0 smbios_type0_template = { 0xff /* embedded controller firmware minor release */ }; -const char *smbios_type0_strings[] = { +static const char *smbios_type0_strings[] = { "BHYVE", /* vendor string */ "1.00", /* bios version string */ "03/14/2014", /* bios release date string */ NULL }; -struct smbios_table_type1 smbios_type1_template = { +static struct smbios_table_type1 smbios_type1_template = { { SMBIOS_TYPE_SYSTEM, sizeof (struct smbios_table_type1), 0 }, 1, /* manufacturer string */ 2, /* product string */ @@ -342,7 +342,7 @@ static int smbios_type1_initializer(struct smbios_structure *template_entry, const char **template_strings, char *curaddr, char **endaddr, uint16_t *n, uint16_t *size); -const char *smbios_type1_strings[] = { +static const char *smbios_type1_strings[] = { " ", /* manufacturer string */ "BHYVE", /* product name string */ "1.0", /* version string */ @@ -352,7 +352,7 @@ const char *smbios_type1_strings[] = { NULL }; -struct smbios_table_type3 smbios_type3_template = { +static struct smbios_table_type3 smbios_type3_template = { { SMBIOS_TYPE_CHASSIS, sizeof (struct smbios_table_type3), 0 }, 1, /* manufacturer string */ SMBIOS_CHT_UNKNOWN, @@ -370,7 +370,7 @@ struct smbios_table_type3 smbios_type3_template = { 5 /* sku number string */ }; -const char *smbios_type3_strings[] = { +static const char *smbios_type3_strings[] = { " ", /* manufacturer string */ "1.0", /* version string */ "None", /* serial number string */ @@ -379,34 +379,34 @@ const char *smbios_type3_strings[] = { NULL }; -struct smbios_table_type4 smbios_type4_template = { +static struct smbios_table_type4 smbios_type4_template = { { SMBIOS_TYPE_PROCESSOR, sizeof (struct smbios_table_type4), 0 }, 1, /* socket designation string */ SMBIOS_PRT_CENTRAL, SMBIOS_PRF_OTHER, - 2, /* manufacturer string */ - 0, /* cpuid */ - 3, /* version string */ - 0, /* voltage */ - 0, /* external clock frequency in mhz (0=unknown) */ - 0, /* maximum frequency in mhz (0=unknown) */ - 0, /* current frequency in mhz (0=unknown) */ + 2, /* manufacturer string */ + 0, /* cpuid */ + 3, /* version string */ + 0, /* voltage */ + 0, /* external clock frequency in mhz (0=unknown) */ + 0, /* maximum frequency in mhz (0=unknown) */ + 0, /* current frequency in mhz (0=unknown) */ SMBIOS_PRS_PRESENT | SMBIOS_PRS_ENABLED, SMBIOS_PRU_NONE, - -1, /* l1 cache handle */ - -1, /* l2 cache handle */ - -1, /* l3 cache handle */ - 4, /* serial number string */ - 5, /* asset tag string */ - 6, /* part number string */ - 0, /* cores per socket (0=unknown) */ - 0, /* enabled cores per socket (0=unknown) */ - 0, /* threads per socket (0=unknown) */ + (uint16_t) (-1), /* l1 cache handle */ + (uint16_t) (-1), /* l2 cache handle */ + (uint16_t) (-1), /* l3 cache handle */ + 4, /* serial number string */ + 5, /* asset tag string */ + 6, /* part number string */ + 0, /* cores per socket (0=unknown) */ + 0, /* enabled cores per socket (0=unknown) */ + 0, /* threads per socket (0=unknown) */ SMBIOS_PFL_64B, SMBIOS_PRF_OTHER }; -const char *smbios_type4_strings[] = { +static const char *smbios_type4_strings[] = { " ", /* socket designation string */ " ", /* manufacturer string */ " ", /* version string */ @@ -420,48 +420,48 @@ static int smbios_type4_initializer(struct smbios_structure *template_entry, const char **template_strings, char *curaddr, char **endaddr, uint16_t *n, uint16_t *size); -struct smbios_table_type16 smbios_type16_template = { +static struct smbios_table_type16 smbios_type16_template = { { SMBIOS_TYPE_MEMARRAY, sizeof (struct smbios_table_type16), 0 }, SMBIOS_MAL_SYSMB, SMBIOS_MAU_SYSTEM, SMBIOS_MAE_NONE, - 0x80000000, /* max mem capacity in kb (0x80000000=use extended) */ - -1, /* handle of error (if any) */ - 0, /* number of slots or sockets (TBD) */ - 0 /* extended maximum memory capacity in bytes (TBD) */ + 0x80000000, /* max mem capacity in kb (0x80000000=use extended) */ + (uint16_t) (-1), /* handle of error (if any) */ + 0, /* number of slots or sockets (TBD) */ + 0 /* extended maximum memory capacity in bytes (TBD) */ }; static int smbios_type16_initializer(struct smbios_structure *template_entry, const char **template_strings, char *curaddr, char **endaddr, uint16_t *n, uint16_t *size); -struct smbios_table_type17 smbios_type17_template = { +static struct smbios_table_type17 smbios_type17_template = { { SMBIOS_TYPE_MEMDEVICE, sizeof (struct smbios_table_type17), 0 }, - -1, /* handle of physical memory array */ - -1, /* handle of memory error data */ - 64, /* total width in bits including ecc */ - 64, /* data width in bits */ - 0x7fff, /* size in bytes (0x7fff=use extended)*/ + (uint16_t) (-1), /* handle of physical memory array */ + (uint16_t) (-1), /* handle of memory error data */ + 64, /* total width in bits including ecc */ + 64, /* data width in bits */ + 0x7fff, /* size in bytes (0x7fff=use extended)*/ SMBIOS_MDFF_UNKNOWN, - 0, /* set (0x00=none, 0xff=unknown) */ - 1, /* device locator string */ - 2, /* physical bank locator string */ + 0, /* set (0x00=none, 0xff=unknown) */ + 1, /* device locator string */ + 2, /* physical bank locator string */ SMBIOS_MDT_UNKNOWN, SMBIOS_MDF_UNKNOWN, - 0, /* maximum memory speed in mhz (0=unknown) */ - 3, /* manufacturer string */ - 4, /* serial number string */ - 5, /* asset tag string */ - 6, /* part number string */ - 0, /* attributes (0=unknown rank information) */ - 0, /* extended size in mb (TBD) */ - 0, /* current speed in mhz (0=unknown) */ - 0, /* minimum voltage in mv (0=unknown) */ - 0, /* maximum voltage in mv (0=unknown) */ - 0 /* configured voltage in mv (0=unknown) */ + 0, /* maximum memory speed in mhz (0=unknown) */ + 3, /* manufacturer string */ + 4, /* serial number string */ + 5, /* asset tag string */ + 6, /* part number string */ + 0, /* attributes (0=unknown rank information) */ + 0, /* extended size in mb (TBD) */ + 0, /* current speed in mhz (0=unknown) */ + 0, /* minimum voltage in mv (0=unknown) */ + 0, /* maximum voltage in mv (0=unknown) */ + 0 /* configured voltage in mv (0=unknown) */ }; -const char *smbios_type17_strings[] = { +static const char *smbios_type17_strings[] = { " ", /* device locator string */ " ", /* physical bank locator string */ " ", /* manufacturer string */ @@ -475,27 +475,27 @@ static int smbios_type17_initializer(struct smbios_structure *template_entry, const char **template_strings, char *curaddr, char **endaddr, uint16_t *n, uint16_t *size); -struct smbios_table_type19 smbios_type19_template = { +static struct smbios_table_type19 smbios_type19_template = { { SMBIOS_TYPE_MEMARRAYMAP, sizeof (struct smbios_table_type19), 0 }, - 0xffffffff, /* starting phys addr in kb (0xffffffff=use ext) */ - 0xffffffff, /* ending phys addr in kb (0xffffffff=use ext) */ - -1, /* physical memory array handle */ - 1, /* number of devices that form a row */ - 0, /* extended starting phys addr in bytes (TDB) */ - 0 /* extended ending phys addr in bytes (TDB) */ + 0xffffffff, /* starting phys addr in kb (0xffffffff=use ext) */ + 0xffffffff, /* ending phys addr in kb (0xffffffff=use ext) */ + (uint16_t) (-1), /* physical memory array handle */ + 1, /* number of devices that form a row */ + 0, /* extended starting phys addr in bytes (TDB) */ + 0 /* extended ending phys addr in bytes (TDB) */ }; static int smbios_type19_initializer(struct smbios_structure *template_entry, const char **template_strings, char *curaddr, char **endaddr, uint16_t *n, uint16_t *size); -struct smbios_table_type32 smbios_type32_template = { +static struct smbios_table_type32 smbios_type32_template = { { SMBIOS_TYPE_BOOT, sizeof (struct smbios_table_type32), 0 }, { 0, 0, 0, 0, 0, 0 }, SMBIOS_BOOT_NORMAL }; -struct smbios_table_type127 smbios_type127_template = { +static struct smbios_table_type127 smbios_type127_template = { { SMBIOS_TYPE_EOT, sizeof (struct smbios_table_type127), 0 } }; @@ -539,8 +539,8 @@ static uint16_t type16_handle; static int smbios_generic_initializer(struct smbios_structure *template_entry, - const char **template_strings, char *curaddr, char **endaddr, - uint16_t *n, uint16_t *size) + const char **template_strings, char *curaddr, char **endaddr, uint16_t *n, + UNUSED uint16_t *size) { struct smbios_structure *entry; @@ -556,7 +556,7 @@ smbios_generic_initializer(struct smbios_structure *template_entry, int len; string = template_strings[i]; - len = strlen(string) + 1; + len = (int) (strlen(string) + 1); memcpy(curaddr, string, len); curaddr += len; } @@ -609,8 +609,8 @@ smbios_type1_initializer(struct smbios_structure *template_entry, return (-1); MD5Init(&mdctx); - MD5Update(&mdctx, vmname, strlen(vmname)); - MD5Update(&mdctx, hostname, sizeof(hostname)); + MD5Update(&mdctx, vmname, ((unsigned) strlen(vmname))); + MD5Update(&mdctx, hostname, ((unsigned) sizeof(hostname))); MD5Final(digest, &mdctx); /* @@ -652,7 +652,7 @@ smbios_type4_initializer(struct smbios_structure *template_entry, *endaddr += len - 1; *(*endaddr) = '\0'; (*endaddr)++; - type4->socket = nstrings + 1; + type4->socket = (uint8_t) (nstrings + 1); curaddr = *endaddr; } @@ -687,7 +687,7 @@ smbios_type17_initializer(struct smbios_structure *template_entry, curaddr, endaddr, n, size); type17 = (struct smbios_table_type17 *)curaddr; type17->arrayhand = type16_handle; - type17->xsize = guest_lomem; + type17->xsize = (uint32_t) guest_lomem; if (guest_himem > 0) { curaddr = *endaddr; @@ -695,7 +695,7 @@ smbios_type17_initializer(struct smbios_structure *template_entry, curaddr, endaddr, n, size); type17 = (struct smbios_table_type17 *)curaddr; type17->arrayhand = type16_handle; - type17->xsize = guest_himem; + type17->xsize = (uint32_t) guest_himem; } return (0); @@ -770,19 +770,19 @@ smbios_ep_finalizer(struct smbios_entry_point *smbios_ep, uint16_t len, } int -smbios_build(struct vmctx *ctx) +smbios_build(void) { - struct smbios_entry_point *smbios_ep; - uint16_t n; - uint16_t maxssize; - char *curaddr, *startaddr, *ststartaddr; - int i; - int err; + struct smbios_entry_point *smbios_ep; + uint16_t n; + uint16_t maxssize; + char *curaddr, *startaddr, *ststartaddr; + int i; + int err; - guest_lomem = vm_get_lowmem_size(ctx); - guest_himem = vm_get_highmem_size(ctx); + guest_lomem = xh_vm_get_lowmem_size(); + guest_himem = xh_vm_get_highmem_size(); - startaddr = paddr_guest2host(ctx, SMBIOS_BASE, SMBIOS_MAX_LENGTH); + startaddr = paddr_guest2host(SMBIOS_BASE, SMBIOS_MAX_LENGTH); if (startaddr == NULL) { fprintf(stderr, "smbios table requires mapped mem\n"); return (ENOMEM); @@ -800,10 +800,10 @@ smbios_build(struct vmctx *ctx) maxssize = 0; for (i = 0; smbios_template[i].entry != NULL; i++) { struct smbios_structure *entry; - const char **strings; - initializer_func_t initializer; - char *endaddr; - uint16_t size; + const char **strings; + initializer_func_t initializer; + char *endaddr; + uint16_t size; entry = smbios_template[i].entry; strings = smbios_template[i].strings; @@ -821,7 +821,8 @@ smbios_build(struct vmctx *ctx) } assert(curaddr - startaddr < SMBIOS_MAX_LENGTH); - smbios_ep_finalizer(smbios_ep, curaddr - ststartaddr, n, maxssize); + smbios_ep_finalizer(smbios_ep, ((uint16_t) (curaddr - ststartaddr)), n, + maxssize); return (0); } diff --git a/bhyve/task_switch.c b/src/task_switch.c similarity index 66% rename from bhyve/task_switch.c rename to src/task_switch.c index 69dfaae..23b6768 100644 --- a/bhyve/task_switch.c +++ b/src/task_switch.c @@ -1,5 +1,6 @@ /*- * Copyright (c) 2014 Neel Natu + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -24,28 +25,20 @@ * SUCH DAMAGE. */ -#include -__FBSDID("$FreeBSD$"); - -#include -#include -#include - -#include -#include -#include -#include -#include - +#include #include #include #include #include #include +#include +#include -#include - -#include "bhyverun.h" +#include +#include +#include +#include +#include /* * Using 'struct i386tss' is tempting but causes myriad sign extension @@ -98,22 +91,22 @@ CTASSERT(sizeof(struct tss32) == 104); #define TSS_BUSY(type) (((type) & 0x2) != 0) static uint64_t -GETREG(struct vmctx *ctx, int vcpu, int reg) +GETREG(int vcpu, int reg) { uint64_t val; int error; - error = vm_get_register(ctx, vcpu, reg, &val); + error = xh_vm_get_register(vcpu, reg, &val); assert(error == 0); return (val); } static void -SETREG(struct vmctx *ctx, int vcpu, int reg, uint64_t val) +SETREG(int vcpu, int reg, uint64_t val) { int error; - error = vm_set_register(ctx, vcpu, reg, val); + error = xh_vm_set_register(vcpu, reg, val); assert(error == 0); } @@ -127,10 +120,10 @@ usd_to_seg_desc(struct user_segment_descriptor *usd) seg_desc.limit = (u_int)(USD_GETLIMIT(usd) << 12) | 0xfff; else seg_desc.limit = (u_int)USD_GETLIMIT(usd); - seg_desc.access = usd->sd_type | usd->sd_dpl << 5 | usd->sd_p << 7; - seg_desc.access |= usd->sd_xx << 12; - seg_desc.access |= usd->sd_def32 << 14; - seg_desc.access |= usd->sd_gran << 15; + seg_desc.access = (uint32_t) (usd->sd_type | (usd->sd_dpl << 5) | (usd->sd_p << 7)); + seg_desc.access |= (uint32_t) (usd->sd_xx << 12); + seg_desc.access |= (uint32_t) (usd->sd_def32 << 14); + seg_desc.access |= (uint32_t) (usd->sd_gran << 15); return (seg_desc); } @@ -149,7 +142,7 @@ usd_to_seg_desc(struct user_segment_descriptor *usd) * Bit 2(GDT/LDT) has the usual interpretation of Table Indicator (TI). */ static void -sel_exception(struct vmctx *ctx, int vcpu, int vector, uint16_t sel, int ext) +sel_exception(int vcpu, int vector, uint16_t sel, int ext) { /* * Bit 2 from the selector is retained as-is in the error code. @@ -163,7 +156,7 @@ sel_exception(struct vmctx *ctx, int vcpu, int vector, uint16_t sel, int ext) sel &= ~0x3; if (ext) sel |= 0x1; - vm_inject_fault(ctx, vcpu, vector, 1, sel); + xh_vm_inject_fault(vcpu, vector, 1, sel); } /* @@ -171,14 +164,14 @@ sel_exception(struct vmctx *ctx, int vcpu, int vector, uint16_t sel, int ext) * and non-zero otherwise. */ static int -desc_table_limit_check(struct vmctx *ctx, int vcpu, uint16_t sel) +desc_table_limit_check(int vcpu, uint16_t sel) { uint64_t base; uint32_t limit, access; int error, reg; reg = ISLDT(sel) ? VM_REG_GUEST_LDTR : VM_REG_GUEST_GDTR; - error = vm_get_desc(ctx, vcpu, reg, &base, &limit, &access); + error = xh_vm_get_desc(vcpu, reg, &base, &limit, &access); assert(error == 0); if (reg == VM_REG_GUEST_LDTR) { @@ -201,7 +194,7 @@ desc_table_limit_check(struct vmctx *ctx, int vcpu, uint16_t sel) * Returns -1 otherwise. */ static int -desc_table_rw(struct vmctx *ctx, int vcpu, struct vm_guest_paging *paging, +desc_table_rw(int vcpu, struct vm_guest_paging *paging, uint16_t sel, struct user_segment_descriptor *desc, bool doread, int *faultptr) { @@ -211,35 +204,35 @@ desc_table_rw(struct vmctx *ctx, int vcpu, struct vm_guest_paging *paging, int error, reg; reg = ISLDT(sel) ? VM_REG_GUEST_LDTR : VM_REG_GUEST_GDTR; - error = vm_get_desc(ctx, vcpu, reg, &base, &limit, &access); + error = xh_vm_get_desc(vcpu, reg, &base, &limit, &access); assert(error == 0); assert(limit >= SEL_LIMIT(sel)); - error = vm_copy_setup(ctx, vcpu, paging, base + SEL_START(sel), - sizeof(*desc), doread ? PROT_READ : PROT_WRITE, iov, nitems(iov), + error = xh_vm_copy_setup(vcpu, paging, base + SEL_START(sel), + sizeof(*desc), doread ? XHYVE_PROT_READ : XHYVE_PROT_WRITE, iov, nitems(iov), faultptr); if (error || *faultptr) return (error); if (doread) - vm_copyin(ctx, vcpu, iov, desc, sizeof(*desc)); + xh_vm_copyin(iov, desc, sizeof(*desc)); else - vm_copyout(ctx, vcpu, desc, iov, sizeof(*desc)); + xh_vm_copyout(desc, iov, sizeof(*desc)); return (0); } static int -desc_table_read(struct vmctx *ctx, int vcpu, struct vm_guest_paging *paging, - uint16_t sel, struct user_segment_descriptor *desc, int *faultptr) +desc_table_read(int vcpu, struct vm_guest_paging *paging, uint16_t sel, + struct user_segment_descriptor *desc, int *faultptr) { - return (desc_table_rw(ctx, vcpu, paging, sel, desc, true, faultptr)); + return (desc_table_rw(vcpu, paging, sel, desc, true, faultptr)); } static int -desc_table_write(struct vmctx *ctx, int vcpu, struct vm_guest_paging *paging, - uint16_t sel, struct user_segment_descriptor *desc, int *faultptr) +desc_table_write(int vcpu, struct vm_guest_paging *paging, uint16_t sel, + struct user_segment_descriptor *desc, int *faultptr) { - return (desc_table_rw(ctx, vcpu, paging, sel, desc, false, faultptr)); + return (desc_table_rw(vcpu, paging, sel, desc, false, faultptr)); } /* @@ -250,8 +243,8 @@ desc_table_write(struct vmctx *ctx, int vcpu, struct vm_guest_paging *paging, * Returns -1 otherwise. */ static int -read_tss_descriptor(struct vmctx *ctx, int vcpu, struct vm_task_switch *ts, - uint16_t sel, struct user_segment_descriptor *desc, int *faultptr) +read_tss_descriptor(int vcpu, struct vm_task_switch *ts, uint16_t sel, + struct user_segment_descriptor *desc, int *faultptr) { struct vm_guest_paging sup_paging; int error; @@ -260,17 +253,17 @@ read_tss_descriptor(struct vmctx *ctx, int vcpu, struct vm_task_switch *ts, assert(IDXSEL(sel) != 0); /* Fetch the new TSS descriptor */ - if (desc_table_limit_check(ctx, vcpu, sel)) { + if (desc_table_limit_check(vcpu, sel)) { if (ts->reason == TSR_IRET) - sel_exception(ctx, vcpu, IDT_TS, sel, ts->ext); + sel_exception(vcpu, IDT_TS, sel, ts->ext); else - sel_exception(ctx, vcpu, IDT_GP, sel, ts->ext); + sel_exception(vcpu, IDT_GP, sel, ts->ext); return (1); } sup_paging = ts->paging; sup_paging.cpl = 0; /* implicit supervisor mode */ - error = desc_table_read(ctx, vcpu, &sup_paging, sel, desc, faultptr); + error = desc_table_read(vcpu, &sup_paging, sel, desc, faultptr); return (error); } @@ -302,12 +295,13 @@ ldt_desc(int sd_type) return (sd_type == SDT_SYSLDT); } +CTASSERT(sizeof(struct user_segment_descriptor) == 8); /* * Validate the descriptor 'seg_desc' associated with 'segment'. */ static int -validate_seg_desc(struct vmctx *ctx, int vcpu, struct vm_task_switch *ts, - int segment, struct seg_desc *seg_desc, int *faultptr) +validate_seg_desc(int vcpu, struct vm_task_switch *ts, int segment, + struct seg_desc *seg_desc, int *faultptr) { struct vm_guest_paging sup_paging; struct user_segment_descriptor usd; @@ -338,17 +332,17 @@ validate_seg_desc(struct vmctx *ctx, int vcpu, struct vm_task_switch *ts, } /* Get the segment selector */ - sel = GETREG(ctx, vcpu, segment); + sel = (uint16_t) GETREG(vcpu, segment); /* LDT selector must point into the GDT */ if (ldtseg && ISLDT(sel)) { - sel_exception(ctx, vcpu, IDT_TS, sel, ts->ext); + sel_exception(vcpu, IDT_TS, sel, ts->ext); return (1); } /* Descriptor table limit check */ - if (desc_table_limit_check(ctx, vcpu, sel)) { - sel_exception(ctx, vcpu, IDT_TS, sel, ts->ext); + if (desc_table_limit_check(vcpu, sel)) { + sel_exception(vcpu, IDT_TS, sel, ts->ext); return (1); } @@ -356,7 +350,7 @@ validate_seg_desc(struct vmctx *ctx, int vcpu, struct vm_task_switch *ts, if (IDXSEL(sel) == 0) { /* Code and stack segment selectors cannot be NULL */ if (codeseg || stackseg) { - sel_exception(ctx, vcpu, IDT_TS, sel, ts->ext); + sel_exception(vcpu, IDT_TS, sel, ts->ext); return (1); } seg_desc->base = 0; @@ -368,7 +362,7 @@ validate_seg_desc(struct vmctx *ctx, int vcpu, struct vm_task_switch *ts, /* Read the descriptor from the GDT/LDT */ sup_paging = ts->paging; sup_paging.cpl = 0; /* implicit supervisor mode */ - error = desc_table_read(ctx, vcpu, &sup_paging, sel, &usd, faultptr); + error = desc_table_read(vcpu, &sup_paging, sel, &usd, faultptr); if (error || *faultptr) return (error); @@ -377,7 +371,7 @@ validate_seg_desc(struct vmctx *ctx, int vcpu, struct vm_task_switch *ts, (codeseg && !code_desc(usd.sd_type)) || (dataseg && !data_desc(usd.sd_type)) || (stackseg && !stack_desc(usd.sd_type))) { - sel_exception(ctx, vcpu, IDT_TS, sel, ts->ext); + sel_exception(vcpu, IDT_TS, sel, ts->ext); return (1); } @@ -389,17 +383,17 @@ validate_seg_desc(struct vmctx *ctx, int vcpu, struct vm_task_switch *ts, idtvec = IDT_SS; else idtvec = IDT_NP; - sel_exception(ctx, vcpu, idtvec, sel, ts->ext); + sel_exception(vcpu, idtvec, sel, ts->ext); return (1); } - cs = GETREG(ctx, vcpu, VM_REG_GUEST_CS); + cs = (uint16_t) GETREG(vcpu, VM_REG_GUEST_CS); cpl = cs & SEL_RPL_MASK; rpl = sel & SEL_RPL_MASK; dpl = usd.sd_dpl; if (stackseg && (rpl != cpl || dpl != cpl)) { - sel_exception(ctx, vcpu, IDT_TS, sel, ts->ext); + sel_exception(vcpu, IDT_TS, sel, ts->ext); return (1); } @@ -407,7 +401,7 @@ validate_seg_desc(struct vmctx *ctx, int vcpu, struct vm_task_switch *ts, conforming = (usd.sd_type & 0x4) ? true : false; if ((conforming && (cpl < dpl)) || (!conforming && (cpl != dpl))) { - sel_exception(ctx, vcpu, IDT_TS, sel, ts->ext); + sel_exception(vcpu, IDT_TS, sel, ts->ext); return (1); } } @@ -423,7 +417,7 @@ validate_seg_desc(struct vmctx *ctx, int vcpu, struct vm_task_switch *ts, conforming = false; if (!conforming && (rpl > dpl || cpl > dpl)) { - sel_exception(ctx, vcpu, IDT_TS, sel, ts->ext); + sel_exception(vcpu, IDT_TS, sel, ts->ext); return (1); } } @@ -432,44 +426,44 @@ validate_seg_desc(struct vmctx *ctx, int vcpu, struct vm_task_switch *ts, } static void -tss32_save(struct vmctx *ctx, int vcpu, struct vm_task_switch *task_switch, +tss32_save(int vcpu, struct vm_task_switch *task_switch, uint32_t eip, struct tss32 *tss, struct iovec *iov) { /* General purpose registers */ - tss->tss_eax = GETREG(ctx, vcpu, VM_REG_GUEST_RAX); - tss->tss_ecx = GETREG(ctx, vcpu, VM_REG_GUEST_RCX); - tss->tss_edx = GETREG(ctx, vcpu, VM_REG_GUEST_RDX); - tss->tss_ebx = GETREG(ctx, vcpu, VM_REG_GUEST_RBX); - tss->tss_esp = GETREG(ctx, vcpu, VM_REG_GUEST_RSP); - tss->tss_ebp = GETREG(ctx, vcpu, VM_REG_GUEST_RBP); - tss->tss_esi = GETREG(ctx, vcpu, VM_REG_GUEST_RSI); - tss->tss_edi = GETREG(ctx, vcpu, VM_REG_GUEST_RDI); + tss->tss_eax = (uint32_t) GETREG(vcpu, VM_REG_GUEST_RAX); + tss->tss_ecx = (uint32_t) GETREG(vcpu, VM_REG_GUEST_RCX); + tss->tss_edx = (uint32_t) GETREG(vcpu, VM_REG_GUEST_RDX); + tss->tss_ebx = (uint32_t) GETREG(vcpu, VM_REG_GUEST_RBX); + tss->tss_esp = (uint32_t) GETREG(vcpu, VM_REG_GUEST_RSP); + tss->tss_ebp = (uint32_t) GETREG(vcpu, VM_REG_GUEST_RBP); + tss->tss_esi = (uint32_t) GETREG(vcpu, VM_REG_GUEST_RSI); + tss->tss_edi = (uint32_t) GETREG(vcpu, VM_REG_GUEST_RDI); /* Segment selectors */ - tss->tss_es = GETREG(ctx, vcpu, VM_REG_GUEST_ES); - tss->tss_cs = GETREG(ctx, vcpu, VM_REG_GUEST_CS); - tss->tss_ss = GETREG(ctx, vcpu, VM_REG_GUEST_SS); - tss->tss_ds = GETREG(ctx, vcpu, VM_REG_GUEST_DS); - tss->tss_fs = GETREG(ctx, vcpu, VM_REG_GUEST_FS); - tss->tss_gs = GETREG(ctx, vcpu, VM_REG_GUEST_GS); + tss->tss_es = (uint16_t) GETREG(vcpu, VM_REG_GUEST_ES); + tss->tss_cs = (uint16_t) GETREG(vcpu, VM_REG_GUEST_CS); + tss->tss_ss = (uint16_t) GETREG(vcpu, VM_REG_GUEST_SS); + tss->tss_ds = (uint16_t) GETREG(vcpu, VM_REG_GUEST_DS); + tss->tss_fs = (uint16_t) GETREG(vcpu, VM_REG_GUEST_FS); + tss->tss_gs = (uint16_t) GETREG(vcpu, VM_REG_GUEST_GS); /* eflags and eip */ - tss->tss_eflags = GETREG(ctx, vcpu, VM_REG_GUEST_RFLAGS); + tss->tss_eflags = (uint32_t) GETREG(vcpu, VM_REG_GUEST_RFLAGS); if (task_switch->reason == TSR_IRET) - tss->tss_eflags &= ~PSL_NT; + tss->tss_eflags &= ~((unsigned) PSL_NT); tss->tss_eip = eip; /* Copy updated old TSS into guest memory */ - vm_copyout(ctx, vcpu, tss, iov, sizeof(struct tss32)); + xh_vm_copyout(tss, iov, sizeof(struct tss32)); } static void -update_seg_desc(struct vmctx *ctx, int vcpu, int reg, struct seg_desc *sd) +update_seg_desc(int vcpu, int reg, struct seg_desc *sd) { int error; - error = vm_set_desc(ctx, vcpu, reg, sd->base, sd->limit, sd->access); + error = xh_vm_set_desc(vcpu, reg, sd->base, sd->limit, sd->access); assert(error == 0); } @@ -477,8 +471,8 @@ update_seg_desc(struct vmctx *ctx, int vcpu, int reg, struct seg_desc *sd) * Update the vcpu registers to reflect the state of the new task. */ static int -tss32_restore(struct vmctx *ctx, int vcpu, struct vm_task_switch *ts, - uint16_t ot_sel, struct tss32 *tss, struct iovec *iov, int *faultptr) +tss32_restore(int vcpu, struct vm_task_switch *ts, uint16_t ot_sel, + struct tss32 *tss, struct iovec *iov, int *faultptr) { struct seg_desc seg_desc, seg_desc2; uint64_t *pdpte, maxphyaddr, reserved; @@ -497,7 +491,7 @@ tss32_restore(struct vmctx *ctx, int vcpu, struct vm_task_switch *ts, eflags |= PSL_NT; /* LDTR */ - SETREG(ctx, vcpu, VM_REG_GUEST_LDTR, tss->tss_ldt); + SETREG(vcpu, VM_REG_GUEST_LDTR, tss->tss_ldt); /* PBDR */ if (ts->paging.paging_mode != PAGING_MODE_FLAT) { @@ -506,7 +500,7 @@ tss32_restore(struct vmctx *ctx, int vcpu, struct vm_task_switch *ts, * XXX Assuming 36-bit MAXPHYADDR. */ maxphyaddr = (1UL << 36) - 1; - pdpte = paddr_guest2host(ctx, tss->tss_cr3 & ~0x1f, 32); + pdpte = paddr_guest2host(tss->tss_cr3 & ~((unsigned) 0x1f), 32); for (i = 0; i < 4; i++) { /* Check reserved bits if the PDPTE is valid */ if (!(pdpte[i] & 0x1)) @@ -517,54 +511,54 @@ tss32_restore(struct vmctx *ctx, int vcpu, struct vm_task_switch *ts, */ reserved = ~maxphyaddr | 0x1E6; if (pdpte[i] & reserved) { - vm_inject_gp(ctx, vcpu); + vm_inject_gp(vcpu); return (1); } } - SETREG(ctx, vcpu, VM_REG_GUEST_PDPTE0, pdpte[0]); - SETREG(ctx, vcpu, VM_REG_GUEST_PDPTE1, pdpte[1]); - SETREG(ctx, vcpu, VM_REG_GUEST_PDPTE2, pdpte[2]); - SETREG(ctx, vcpu, VM_REG_GUEST_PDPTE3, pdpte[3]); + SETREG(vcpu, VM_REG_GUEST_PDPTE0, pdpte[0]); + SETREG(vcpu, VM_REG_GUEST_PDPTE1, pdpte[1]); + SETREG(vcpu, VM_REG_GUEST_PDPTE2, pdpte[2]); + SETREG(vcpu, VM_REG_GUEST_PDPTE3, pdpte[3]); } - SETREG(ctx, vcpu, VM_REG_GUEST_CR3, tss->tss_cr3); + SETREG(vcpu, VM_REG_GUEST_CR3, tss->tss_cr3); ts->paging.cr3 = tss->tss_cr3; } /* eflags and eip */ - SETREG(ctx, vcpu, VM_REG_GUEST_RFLAGS, eflags); - SETREG(ctx, vcpu, VM_REG_GUEST_RIP, tss->tss_eip); + SETREG(vcpu, VM_REG_GUEST_RFLAGS, eflags); + SETREG(vcpu, VM_REG_GUEST_RIP, tss->tss_eip); /* General purpose registers */ - SETREG(ctx, vcpu, VM_REG_GUEST_RAX, tss->tss_eax); - SETREG(ctx, vcpu, VM_REG_GUEST_RCX, tss->tss_ecx); - SETREG(ctx, vcpu, VM_REG_GUEST_RDX, tss->tss_edx); - SETREG(ctx, vcpu, VM_REG_GUEST_RBX, tss->tss_ebx); - SETREG(ctx, vcpu, VM_REG_GUEST_RSP, tss->tss_esp); - SETREG(ctx, vcpu, VM_REG_GUEST_RBP, tss->tss_ebp); - SETREG(ctx, vcpu, VM_REG_GUEST_RSI, tss->tss_esi); - SETREG(ctx, vcpu, VM_REG_GUEST_RDI, tss->tss_edi); + SETREG(vcpu, VM_REG_GUEST_RAX, tss->tss_eax); + SETREG(vcpu, VM_REG_GUEST_RCX, tss->tss_ecx); + SETREG(vcpu, VM_REG_GUEST_RDX, tss->tss_edx); + SETREG(vcpu, VM_REG_GUEST_RBX, tss->tss_ebx); + SETREG(vcpu, VM_REG_GUEST_RSP, tss->tss_esp); + SETREG(vcpu, VM_REG_GUEST_RBP, tss->tss_ebp); + SETREG(vcpu, VM_REG_GUEST_RSI, tss->tss_esi); + SETREG(vcpu, VM_REG_GUEST_RDI, tss->tss_edi); /* Segment selectors */ - SETREG(ctx, vcpu, VM_REG_GUEST_ES, tss->tss_es); - SETREG(ctx, vcpu, VM_REG_GUEST_CS, tss->tss_cs); - SETREG(ctx, vcpu, VM_REG_GUEST_SS, tss->tss_ss); - SETREG(ctx, vcpu, VM_REG_GUEST_DS, tss->tss_ds); - SETREG(ctx, vcpu, VM_REG_GUEST_FS, tss->tss_fs); - SETREG(ctx, vcpu, VM_REG_GUEST_GS, tss->tss_gs); + SETREG(vcpu, VM_REG_GUEST_ES, tss->tss_es); + SETREG(vcpu, VM_REG_GUEST_CS, tss->tss_cs); + SETREG(vcpu, VM_REG_GUEST_SS, tss->tss_ss); + SETREG(vcpu, VM_REG_GUEST_DS, tss->tss_ds); + SETREG(vcpu, VM_REG_GUEST_FS, tss->tss_fs); + SETREG(vcpu, VM_REG_GUEST_GS, tss->tss_gs); /* * If this is a nested task then write out the new TSS to update * the previous link field. */ if (nested) - vm_copyout(ctx, vcpu, tss, iov, sizeof(*tss)); + xh_vm_copyout(tss, iov, sizeof(*tss)); /* Validate segment descriptors */ - error = validate_seg_desc(ctx, vcpu, ts, VM_REG_GUEST_LDTR, &seg_desc, + error = validate_seg_desc(vcpu, ts, VM_REG_GUEST_LDTR, &seg_desc, faultptr); if (error || *faultptr) return (error); - update_seg_desc(ctx, vcpu, VM_REG_GUEST_LDTR, &seg_desc); + update_seg_desc(vcpu, VM_REG_GUEST_LDTR, &seg_desc); /* * Section "Checks on Guest Segment Registers", Intel SDM, Vol 3. @@ -575,42 +569,42 @@ tss32_restore(struct vmctx *ctx, int vcpu, struct vm_task_switch *ts, * VM-entry checks so the guest can handle any exception injected * during task switch emulation. */ - error = validate_seg_desc(ctx, vcpu, ts, VM_REG_GUEST_CS, &seg_desc, + error = validate_seg_desc(vcpu, ts, VM_REG_GUEST_CS, &seg_desc, faultptr); if (error || *faultptr) return (error); - error = validate_seg_desc(ctx, vcpu, ts, VM_REG_GUEST_SS, &seg_desc2, + error = validate_seg_desc(vcpu, ts, VM_REG_GUEST_SS, &seg_desc2, faultptr); if (error || *faultptr) return (error); - update_seg_desc(ctx, vcpu, VM_REG_GUEST_CS, &seg_desc); - update_seg_desc(ctx, vcpu, VM_REG_GUEST_SS, &seg_desc2); + update_seg_desc(vcpu, VM_REG_GUEST_CS, &seg_desc); + update_seg_desc(vcpu, VM_REG_GUEST_SS, &seg_desc2); ts->paging.cpl = tss->tss_cs & SEL_RPL_MASK; - error = validate_seg_desc(ctx, vcpu, ts, VM_REG_GUEST_DS, &seg_desc, + error = validate_seg_desc(vcpu, ts, VM_REG_GUEST_DS, &seg_desc, faultptr); if (error || *faultptr) return (error); - update_seg_desc(ctx, vcpu, VM_REG_GUEST_DS, &seg_desc); + update_seg_desc(vcpu, VM_REG_GUEST_DS, &seg_desc); - error = validate_seg_desc(ctx, vcpu, ts, VM_REG_GUEST_ES, &seg_desc, + error = validate_seg_desc(vcpu, ts, VM_REG_GUEST_ES, &seg_desc, faultptr); if (error || *faultptr) return (error); - update_seg_desc(ctx, vcpu, VM_REG_GUEST_ES, &seg_desc); + update_seg_desc(vcpu, VM_REG_GUEST_ES, &seg_desc); - error = validate_seg_desc(ctx, vcpu, ts, VM_REG_GUEST_FS, &seg_desc, + error = validate_seg_desc(vcpu, ts, VM_REG_GUEST_FS, &seg_desc, faultptr); if (error || *faultptr) return (error); - update_seg_desc(ctx, vcpu, VM_REG_GUEST_FS, &seg_desc); + update_seg_desc(vcpu, VM_REG_GUEST_FS, &seg_desc); - error = validate_seg_desc(ctx, vcpu, ts, VM_REG_GUEST_GS, &seg_desc, + error = validate_seg_desc(vcpu, ts, VM_REG_GUEST_GS, &seg_desc, faultptr); if (error || *faultptr) return (error); - update_seg_desc(ctx, vcpu, VM_REG_GUEST_GS, &seg_desc); + update_seg_desc(vcpu, VM_REG_GUEST_GS, &seg_desc); return (0); } @@ -621,8 +615,8 @@ tss32_restore(struct vmctx *ctx, int vcpu, struct vm_task_switch *ts, * code to be saved (e.g. #PF). */ static int -push_errcode(struct vmctx *ctx, int vcpu, struct vm_guest_paging *paging, - int task_type, uint32_t errcode, int *faultptr) +push_errcode(int vcpu, struct vm_guest_paging *paging, int task_type, + uint32_t errcode, int *faultptr) { struct iovec iov[2]; struct seg_desc seg_desc; @@ -633,11 +627,11 @@ push_errcode(struct vmctx *ctx, int vcpu, struct vm_guest_paging *paging, *faultptr = 0; - cr0 = GETREG(ctx, vcpu, VM_REG_GUEST_CR0); - rflags = GETREG(ctx, vcpu, VM_REG_GUEST_RFLAGS); - stacksel = GETREG(ctx, vcpu, VM_REG_GUEST_SS); + cr0 = GETREG(vcpu, VM_REG_GUEST_CR0); + rflags = GETREG(vcpu, VM_REG_GUEST_RFLAGS); + stacksel = (uint16_t) GETREG(vcpu, VM_REG_GUEST_SS); - error = vm_get_desc(ctx, vcpu, VM_REG_GUEST_SS, &seg_desc.base, + error = xh_vm_get_desc(vcpu, VM_REG_GUEST_SS, &seg_desc.base, &seg_desc.limit, &seg_desc.access); assert(error == 0); @@ -661,29 +655,30 @@ push_errcode(struct vmctx *ctx, int vcpu, struct vm_guest_paging *paging, else stacksize = 2; - esp = GETREG(ctx, vcpu, VM_REG_GUEST_RSP); - esp -= bytes; + esp = (uint32_t) GETREG(vcpu, VM_REG_GUEST_RSP); + esp -= (uint32_t) bytes; - if (vie_calculate_gla(paging->cpu_mode, VM_REG_GUEST_SS, - &seg_desc, esp, bytes, stacksize, PROT_WRITE, &gla)) { - sel_exception(ctx, vcpu, IDT_SS, stacksel, 1); + if (vie_calculate_gla(paging->cpu_mode, VM_REG_GUEST_SS, &seg_desc, esp, + bytes, stacksize, XHYVE_PROT_WRITE, &gla)) + { + sel_exception(vcpu, IDT_SS, stacksel, 1); *faultptr = 1; return (0); } if (vie_alignment_check(paging->cpl, bytes, cr0, rflags, gla)) { - vm_inject_ac(ctx, vcpu, 1); + vm_inject_ac(vcpu, 1); *faultptr = 1; return (0); } - error = vm_copy_setup(ctx, vcpu, paging, gla, bytes, PROT_WRITE, - iov, nitems(iov), faultptr); + error = xh_vm_copy_setup(vcpu, paging, gla, ((size_t) bytes), + XHYVE_PROT_WRITE, iov, nitems(iov), faultptr); if (error || *faultptr) return (error); - vm_copyout(ctx, vcpu, &errcode, iov, bytes); - SETREG(ctx, vcpu, VM_REG_GUEST_RSP, esp); + xh_vm_copyout(&errcode, iov, ((size_t) bytes)); + SETREG(vcpu, VM_REG_GUEST_RSP, esp); return (0); } @@ -700,8 +695,10 @@ push_errcode(struct vmctx *ctx, int vcpu, struct vm_guest_paging *paging, return (VMEXIT_CONTINUE); \ } while (0) +int vmexit_task_switch(struct vm_exit *vmexit, int *pvcpu); + int -vmexit_task_switch(struct vmctx *ctx, struct vm_exit *vmexit, int *pvcpu) +vmexit_task_switch(struct vm_exit *vmexit, int *pvcpu) { struct seg_desc nt; struct tss32 oldtss, newtss; @@ -727,7 +724,7 @@ vmexit_task_switch(struct vmctx *ctx, struct vm_exit *vmexit, int *pvcpu) /* * Calculate the instruction pointer to store in the old TSS. */ - eip = vmexit->rip + vmexit->inst_length; + eip = (uint32_t) (vmexit->rip + ((uint64_t) vmexit->inst_length)); /* * Section 4.6, "Access Rights" in Intel SDM Vol 3. @@ -739,7 +736,7 @@ vmexit_task_switch(struct vmctx *ctx, struct vm_exit *vmexit, int *pvcpu) sup_paging.cpl = 0; /* implicit supervisor mode */ /* Fetch the new TSS descriptor */ - error = read_tss_descriptor(ctx, vcpu, task_switch, nt_sel, &nt_desc, + error = read_tss_descriptor(vcpu, task_switch, nt_sel, &nt_desc, &fault); CHKERR(error, fault); @@ -749,13 +746,13 @@ vmexit_task_switch(struct vmctx *ctx, struct vm_exit *vmexit, int *pvcpu) nt_type = SEG_DESC_TYPE(nt.access); if (nt_type != SDT_SYS386BSY && nt_type != SDT_SYS386TSS && nt_type != SDT_SYS286BSY && nt_type != SDT_SYS286TSS) { - sel_exception(ctx, vcpu, IDT_TS, nt_sel, ext); + sel_exception(vcpu, IDT_TS, nt_sel, ext); goto done; } /* TSS descriptor must have present bit set */ if (!SEG_DESC_PRESENT(nt.access)) { - sel_exception(ctx, vcpu, IDT_NP, nt_sel, ext); + sel_exception(vcpu, IDT_NP, nt_sel, ext); goto done; } @@ -771,14 +768,14 @@ vmexit_task_switch(struct vmctx *ctx, struct vm_exit *vmexit, int *pvcpu) minlimit = 0; assert(minlimit > 0); - if (nt.limit < minlimit) { - sel_exception(ctx, vcpu, IDT_TS, nt_sel, ext); + if (nt.limit < ((uint32_t) minlimit)) { + sel_exception(vcpu, IDT_TS, nt_sel, ext); goto done; } /* TSS must be busy if task switch is due to IRET */ if (reason == TSR_IRET && !TSS_BUSY(nt_type)) { - sel_exception(ctx, vcpu, IDT_TS, nt_sel, ext); + sel_exception(vcpu, IDT_TS, nt_sel, ext); goto done; } @@ -787,18 +784,19 @@ vmexit_task_switch(struct vmctx *ctx, struct vm_exit *vmexit, int *pvcpu) * CALL, JMP, exception or interrupt. */ if (reason != TSR_IRET && TSS_BUSY(nt_type)) { - sel_exception(ctx, vcpu, IDT_GP, nt_sel, ext); + sel_exception(vcpu, IDT_GP, nt_sel, ext); goto done; } /* Fetch the new TSS */ - error = vm_copy_setup(ctx, vcpu, &sup_paging, nt.base, minlimit + 1, - PROT_READ | PROT_WRITE, nt_iov, nitems(nt_iov), &fault); + error = xh_vm_copy_setup(vcpu, &sup_paging, nt.base, + ((size_t) (minlimit + 1)), (XHYVE_PROT_READ | XHYVE_PROT_WRITE), nt_iov, + nitems(nt_iov), &fault); CHKERR(error, fault); - vm_copyin(ctx, vcpu, nt_iov, &newtss, minlimit + 1); + xh_vm_copyin(nt_iov, &newtss, ((size_t) (minlimit + 1))); /* Get the old TSS selector from the guest's task register */ - ot_sel = GETREG(ctx, vcpu, VM_REG_GUEST_TR); + ot_sel = (uint16_t) GETREG(vcpu, VM_REG_GUEST_TR); if (ISLDT(ot_sel) || IDXSEL(ot_sel) == 0) { /* * This might happen if a task switch was attempted without @@ -806,12 +804,12 @@ vmexit_task_switch(struct vmctx *ctx, struct vm_exit *vmexit, int *pvcpu) * TR would contain the values from power-on: * (sel = 0, base = 0, limit = 0xffff). */ - sel_exception(ctx, vcpu, IDT_TS, ot_sel, task_switch->ext); + sel_exception(vcpu, IDT_TS, ot_sel, task_switch->ext); goto done; } /* Get the old TSS base and limit from the guest's task register */ - error = vm_get_desc(ctx, vcpu, VM_REG_GUEST_TR, &ot_base, &ot_lim, + error = xh_vm_get_desc(vcpu, VM_REG_GUEST_TR, &ot_base, &ot_lim, &access); assert(error == 0); assert(!SEG_DESC_UNUSABLE(access) && SEG_DESC_PRESENT(access)); @@ -819,15 +817,16 @@ vmexit_task_switch(struct vmctx *ctx, struct vm_exit *vmexit, int *pvcpu) assert(ot_type == SDT_SYS386BSY || ot_type == SDT_SYS286BSY); /* Fetch the old TSS descriptor */ - error = read_tss_descriptor(ctx, vcpu, task_switch, ot_sel, &ot_desc, + error = read_tss_descriptor(vcpu, task_switch, ot_sel, &ot_desc, &fault); CHKERR(error, fault); /* Get the old TSS */ - error = vm_copy_setup(ctx, vcpu, &sup_paging, ot_base, minlimit + 1, - PROT_READ | PROT_WRITE, ot_iov, nitems(ot_iov), &fault); + error = xh_vm_copy_setup(vcpu, &sup_paging, ot_base, + ((size_t) (minlimit + 1)), (XHYVE_PROT_READ | XHYVE_PROT_WRITE), + ot_iov, nitems(ot_iov), &fault); CHKERR(error, fault); - vm_copyin(ctx, vcpu, ot_iov, &oldtss, minlimit + 1); + xh_vm_copyin(ot_iov, &oldtss, ((size_t) (minlimit + 1))); /* * Clear the busy bit in the old TSS descriptor if the task switch @@ -835,7 +834,7 @@ vmexit_task_switch(struct vmctx *ctx, struct vm_exit *vmexit, int *pvcpu) */ if (reason == TSR_IRET || reason == TSR_JMP) { ot_desc.sd_type &= ~0x2; - error = desc_table_write(ctx, vcpu, &sup_paging, ot_sel, + error = desc_table_write(vcpu, &sup_paging, ot_sel, &ot_desc, &fault); CHKERR(error, fault); } @@ -846,7 +845,7 @@ vmexit_task_switch(struct vmctx *ctx, struct vm_exit *vmexit, int *pvcpu) } /* Save processor state in old TSS */ - tss32_save(ctx, vcpu, task_switch, eip, &oldtss, ot_iov); + tss32_save(vcpu, task_switch, eip, &oldtss, ot_iov); /* * If the task switch was triggered for any reason other than IRET @@ -854,32 +853,32 @@ vmexit_task_switch(struct vmctx *ctx, struct vm_exit *vmexit, int *pvcpu) */ if (reason != TSR_IRET) { nt_desc.sd_type |= 0x2; - error = desc_table_write(ctx, vcpu, &sup_paging, nt_sel, + error = desc_table_write(vcpu, &sup_paging, nt_sel, &nt_desc, &fault); CHKERR(error, fault); } /* Update task register to point at the new TSS */ - SETREG(ctx, vcpu, VM_REG_GUEST_TR, nt_sel); + SETREG(vcpu, VM_REG_GUEST_TR, nt_sel); /* Update the hidden descriptor state of the task register */ nt = usd_to_seg_desc(&nt_desc); - update_seg_desc(ctx, vcpu, VM_REG_GUEST_TR, &nt); + update_seg_desc(vcpu, VM_REG_GUEST_TR, &nt); /* Set CR0.TS */ - cr0 = GETREG(ctx, vcpu, VM_REG_GUEST_CR0); - SETREG(ctx, vcpu, VM_REG_GUEST_CR0, cr0 | CR0_TS); + cr0 = GETREG(vcpu, VM_REG_GUEST_CR0); + SETREG(vcpu, VM_REG_GUEST_CR0, cr0 | CR0_TS); /* * We are now committed to the task switch. Any exceptions encountered * after this point will be handled in the context of the new task and * the saved instruction pointer will belong to the new task. */ - error = vm_set_register(ctx, vcpu, VM_REG_GUEST_RIP, newtss.tss_eip); + error = xh_vm_set_register(vcpu, VM_REG_GUEST_RIP, newtss.tss_eip); assert(error == 0); /* Load processor state from new TSS */ - error = tss32_restore(ctx, vcpu, task_switch, ot_sel, &newtss, nt_iov, + error = tss32_restore(vcpu, task_switch, ot_sel, &newtss, nt_iov, &fault); CHKERR(error, fault); @@ -891,7 +890,7 @@ vmexit_task_switch(struct vmctx *ctx, struct vm_exit *vmexit, int *pvcpu) if (task_switch->errcode_valid) { assert(task_switch->ext); assert(task_switch->reason == TSR_IDT_GATE); - error = push_errcode(ctx, vcpu, &task_switch->paging, nt_type, + error = push_errcode(vcpu, &task_switch->paging, nt_type, task_switch->errcode, &fault); CHKERR(error, fault); } @@ -927,7 +926,7 @@ vmexit_task_switch(struct vmctx *ctx, struct vm_exit *vmexit, int *pvcpu) * exitintinfo. */ if (task_switch->reason == TSR_IDT_GATE) { - error = vm_set_intinfo(ctx, vcpu, 0); + error = xh_vm_set_intinfo(vcpu, 0); assert(error == 0); } diff --git a/bhyve/uart_emul.c b/src/uart_emul.c similarity index 95% rename from bhyve/uart_emul.c rename to src/uart_emul.c index 4242e5c..73021d0 100644 --- a/bhyve/uart_emul.c +++ b/src/uart_emul.c @@ -1,6 +1,7 @@ /*- * Copyright (c) 2012 NetApp, Inc. * Copyright (c) 2013 Neel Natu + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -27,24 +28,19 @@ * $FreeBSD$ */ -#include -__FBSDID("$FreeBSD$"); - -#include -#include - +#include +#include #include #include -#include -#include -#include +#include #include -#include -#include +#include #include - -#include "mevent.h" -#include "uart_emul.h" +#include +#include +#include +#include +#include #define COM1_BASE 0x3F8 #define COM1_IRQ 4 @@ -70,6 +66,8 @@ __FBSDID("$FreeBSD$"); static bool uart_stdio; /* stdio in use for i/o */ static struct termios tio_stdio_orig; +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" static struct { int baseaddr; int irq; @@ -119,6 +117,7 @@ struct uart_softc { uart_intr_func_t intr_assert; uart_intr_func_t intr_deassert; }; +#pragma clang diagnostic pop static void uart_drain(int fd, enum ev_type ev, void *arg); @@ -302,8 +301,8 @@ uart_reset(struct uart_softc *sc) uint16_t divisor; divisor = DEFAULT_RCLK / DEFAULT_BAUD / 16; - sc->dll = divisor; - sc->dlh = divisor >> 16; + sc->dll = (uint8_t) divisor; + sc->dlh = (uint8_t) (divisor >> 16); rxfifo_reset(sc, 1); /* no fifo until enabled by software */ } @@ -317,7 +316,7 @@ uart_toggle_intr(struct uart_softc *sc) { uint8_t intr_reason; - intr_reason = uart_intr_reason(sc); + intr_reason = (uint8_t) uart_intr_reason(sc); if (intr_reason == IIR_NOPEND) (*sc->intr_deassert)(sc->arg); @@ -348,7 +347,7 @@ uart_drain(int fd, enum ev_type ev, void *arg) } else { while (rxfifo_available(sc) && ((ch = ttyread(&sc->tty)) != -1)) { - rxfifo_putchar(sc, ch); + rxfifo_putchar(sc, ((uint8_t) ch)); } uart_toggle_intr(sc); } @@ -511,7 +510,7 @@ uart_read(struct uart_softc *sc, int offset) switch (offset) { case REG_DATA: - reg = rxfifo_getchar(sc); + reg = (uint8_t) rxfifo_getchar(sc); break; case REG_IER: reg = sc->ier; @@ -519,7 +518,7 @@ uart_read(struct uart_softc *sc, int offset) case REG_IIR: iir = (sc->fcr & FCR_ENABLE) ? IIR_FIFO_MASK : 0; - intr_reason = uart_intr_reason(sc); + intr_reason = (uint8_t) uart_intr_reason(sc); /* * Deal with side effects of reading the IIR register @@ -578,8 +577,11 @@ int uart_legacy_alloc(int which, int *baseaddr, int *irq) { - if (which < 0 || which >= UART_NLDEVS || uart_lres[which].inuse) + if ((which < 0) || (((unsigned) which) >= UART_NLDEVS) || + uart_lres[which].inuse) + { return (-1); + } uart_lres[which].inuse = true; *baseaddr = uart_lres[which].baseaddr; diff --git a/bhyve/virtio.c b/src/virtio.c similarity index 91% rename from bhyve/virtio.c rename to src/virtio.c index 11b1e62..59ad266 100644 --- a/bhyve/virtio.c +++ b/src/virtio.c @@ -1,5 +1,6 @@ /*- * Copyright (c) 2013 Chris Torek + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -24,20 +25,15 @@ * SUCH DAMAGE. */ -#include -__FBSDID("$FreeBSD$"); - -#include -#include - #include #include #include -#include - -#include "bhyverun.h" -#include "pci_emul.h" -#include "virtio.h" +#include +#include +#include +#include +#include +#include /* * Functions for dealing with generalized "virtual devices" as @@ -71,7 +67,7 @@ vi_softc_linkup(struct virtio_softc *vs, struct virtio_consts *vc, vs->vs_queues = queues; for (i = 0; i < vc->vc_nvq; i++) { queues[i].vq_vs = vs; - queues[i].vq_num = i; + queues[i].vq_num = (uint16_t) i; } } @@ -90,9 +86,6 @@ vi_reset_dev(struct virtio_softc *vs) struct vqueue_info *vq; int i, nvq; - if (vs->vs_mtx) - assert(pthread_mutex_isowned_np(vs->vs_mtx)); - nvq = vs->vs_vc->vc_nvq; for (vq = vs->vs_queues, i = 0; i < nvq; vq++, i++) { vq->vq_flags = 0; @@ -163,7 +156,7 @@ vi_intr_init(struct virtio_softc *vs, int barnum, int use_msix) * The guest just gave us a page frame number, from which we can * calculate the addresses of the queue. */ -void +static void vi_vq_init(struct virtio_softc *vs, uint32_t pfn) { struct vqueue_info *vq; @@ -175,7 +168,7 @@ vi_vq_init(struct virtio_softc *vs, uint32_t pfn) vq->vq_pfn = pfn; phys = (uint64_t)pfn << VRING_PFN; size = vring_size(vq->vq_qsize); - base = paddr_guest2host(vs->vs_pi->pi_vmctx, phys, size); + base = paddr_guest2host(phys, size); /* First page(s) are descriptors... */ vq->vq_desc = (struct virtio_desc *)base; @@ -186,7 +179,7 @@ vi_vq_init(struct virtio_softc *vs, uint32_t pfn) base += (2 + vq->vq_qsize + 1) * sizeof(uint16_t); /* Then it's rounded up to the next page... */ - base = (char *)roundup2((uintptr_t)base, VRING_ALIGN); + base = (char *) roundup2(((uintptr_t) base), ((uintptr_t) VRING_ALIGN)); /* ... and the last page(s) are the used ring. */ vq->vq_used = (struct vring_used *)base; @@ -202,12 +195,12 @@ vi_vq_init(struct virtio_softc *vs, uint32_t pfn) * descriptor. */ static inline void -_vq_record(int i, volatile struct virtio_desc *vd, struct vmctx *ctx, - struct iovec *iov, int n_iov, uint16_t *flags) { - +_vq_record(int i, volatile struct virtio_desc *vd, struct iovec *iov, int n_iov, + uint16_t *flags) +{ if (i >= n_iov) return; - iov[i].iov_base = paddr_guest2host(ctx, vd->vd_addr, vd->vd_len); + iov[i].iov_base = paddr_guest2host(vd->vd_addr, vd->vd_len); iov[i].iov_len = vd->vd_len; if (flags != NULL) flags[i] = vd->vd_flags; @@ -254,14 +247,13 @@ _vq_record(int i, volatile struct virtio_desc *vd, struct vmctx *ctx, * that vq_has_descs() does one). */ int -vq_getchain(struct vqueue_info *vq, uint16_t *pidx, - struct iovec *iov, int n_iov, uint16_t *flags) +vq_getchain(struct vqueue_info *vq, uint16_t *pidx, struct iovec *iov, + int n_iov, uint16_t *flags) { int i; u_int ndesc, n_indir; u_int idx, next; volatile struct virtio_desc *vdir, *vindir, *vp; - struct vmctx *ctx; struct virtio_softc *vs; const char *name; @@ -301,7 +293,6 @@ vq_getchain(struct vqueue_info *vq, uint16_t *pidx, * check whether we're re-visiting a previously visited * index, but we just abort if the count gets excessive. */ - ctx = vs->vs_pi->pi_vmctx; *pidx = next = vq->vq_avail->va_ring[idx & (vq->vq_qsize - 1)]; vq->vq_last_avail++; for (i = 0; i < VQ_MAX_DESCRIPTORS; next = vdir->vd_next) { @@ -314,7 +305,7 @@ vq_getchain(struct vqueue_info *vq, uint16_t *pidx, } vdir = &vq->vq_desc[next]; if ((vdir->vd_flags & VRING_DESC_F_INDIRECT) == 0) { - _vq_record(i, vdir, ctx, iov, n_iov, flags); + _vq_record(i, vdir, iov, n_iov, flags); i++; } else if ((vs->vs_vc->vc_hv_caps & VIRTIO_RING_F_INDIRECT_DESC) == 0) { @@ -332,8 +323,7 @@ vq_getchain(struct vqueue_info *vq, uint16_t *pidx, name, (u_int)vdir->vd_len); return (-1); } - vindir = paddr_guest2host(ctx, - vdir->vd_addr, vdir->vd_len); + vindir = paddr_guest2host(vdir->vd_addr, vdir->vd_len); /* * Indirects start at the 0th, then follow * their own embedded "next"s until those run @@ -351,7 +341,7 @@ vq_getchain(struct vqueue_info *vq, uint16_t *pidx, name); return (-1); } - _vq_record(i, vp, ctx, iov, n_iov, flags); + _vq_record(i, vp, iov, n_iov, flags); if (++i > VQ_MAX_DESCRIPTORS) goto loopy; if ((vp->vd_flags & VRING_DESC_F_NEXT) == 0) @@ -476,6 +466,8 @@ vq_endchains(struct vqueue_info *vq, int used_all_avail) vq_interrupt(vs, vq); } +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" /* Note: these are in sorted order to make for a fast search */ static struct config_reg { uint16_t cr_offset; /* register offset */ @@ -494,6 +486,7 @@ static struct config_reg { { VTCFG_R_CFGVEC, 2, 0, "CFGVEC" }, { VTCFG_R_QVEC, 2, 0, "QVEC" }, }; +#pragma clang diagnostic pop static inline struct config_reg * vi_find_cr(int offset) { @@ -522,8 +515,8 @@ vi_find_cr(int offset) { * Otherwise dispatch to the actual driver. */ uint64_t -vi_pci_read(struct vmctx *ctx, int vcpu, struct pci_devinst *pi, - int baridx, uint64_t offset, int size) +vi_pci_read(UNUSED int vcpu, struct pci_devinst *pi, int baridx, + uint64_t offset, int size) { struct virtio_softc *vs = pi->pi_arg; struct virtio_consts *vc; @@ -565,17 +558,17 @@ vi_pci_read(struct vmctx *ctx, int vcpu, struct pci_devinst *pi, * registers if enabled) and dispatch to underlying driver. * If that fails, fall into general code. */ - newoff = offset - virtio_config_size; + newoff = (uint32_t) (offset - virtio_config_size); max = vc->vc_cfgsize ? vc->vc_cfgsize : 0x100000000; - if (newoff + size > max) + if ((newoff + ((unsigned) size)) > max) goto bad; - error = (*vc->vc_cfgread)(DEV_SOFTC(vs), newoff, size, &value); + error = (*vc->vc_cfgread)(DEV_SOFTC(vs), ((int) newoff), size, &value); if (!error) goto done; } bad: - cr = vi_find_cr(offset); + cr = vi_find_cr((int) offset); if (cr == NULL || cr->cr_size != size) { if (cr != NULL) { /* offset must be OK, so size must be bad */ @@ -592,7 +585,7 @@ bad: switch (offset) { case VTCFG_R_HOSTCAP: - value = vc->vc_hv_caps; + value = (uint32_t) vc->vc_hv_caps; break; case VTCFG_R_GUESTCAP: value = vs->vs_negotiated_caps; @@ -606,7 +599,7 @@ bad: vs->vs_queues[vs->vs_curq].vq_qsize : 0; break; case VTCFG_R_QSEL: - value = vs->vs_curq; + value = (uint32_t) (vs->vs_curq); break; case VTCFG_R_QNOTIFY: value = 0; /* XXX */ @@ -642,8 +635,8 @@ done: * Otherwise dispatch to the actual driver. */ void -vi_pci_write(struct vmctx *ctx, int vcpu, struct pci_devinst *pi, - int baridx, uint64_t offset, int size, uint64_t value) +vi_pci_write(UNUSED int vcpu, struct pci_devinst *pi, int baridx, + uint64_t offset, int size, uint64_t value) { struct virtio_softc *vs = pi->pi_arg; struct vqueue_info *vq; @@ -684,17 +677,18 @@ vi_pci_write(struct vmctx *ctx, int vcpu, struct pci_devinst *pi, * Subtract off the standard size (including MSI-X * registers if enabled) and dispatch to underlying driver. */ - newoff = offset - virtio_config_size; + newoff = (uint32_t) (offset - virtio_config_size); max = vc->vc_cfgsize ? vc->vc_cfgsize : 0x100000000; - if (newoff + size > max) + if ((newoff + ((unsigned) size)) > max) goto bad; - error = (*vc->vc_cfgwrite)(DEV_SOFTC(vs), newoff, size, value); + error = (*vc->vc_cfgwrite)(DEV_SOFTC(vs), ((int) newoff), size, + ((uint32_t) value)); if (!error) goto done; } bad: - cr = vi_find_cr(offset); + cr = vi_find_cr((int) offset); if (cr == NULL || cr->cr_size != size || cr->cr_ro) { if (cr != NULL) { /* offset must be OK, wrong size and/or reg is R/O */ @@ -716,7 +710,7 @@ bad: switch (offset) { case VTCFG_R_GUESTCAP: - vs->vs_negotiated_caps = value & vc->vc_hv_caps; + vs->vs_negotiated_caps = (uint32_t) (value & vc->vc_hv_caps); if (vc->vc_apply_features) (*vc->vc_apply_features)(DEV_SOFTC(vs), vs->vs_negotiated_caps); @@ -724,7 +718,7 @@ bad: case VTCFG_R_PFN: if (vs->vs_curq >= vc->vc_nvq) goto bad_qindex; - vi_vq_init(vs, value); + vi_vq_init(vs, ((uint32_t) value)); break; case VTCFG_R_QSEL: /* @@ -732,10 +726,10 @@ bad: * invalid queue; we just need to return a QNUM * of 0 while the bad queue is selected. */ - vs->vs_curq = value; + vs->vs_curq = (int) value; break; case VTCFG_R_QNOTIFY: - if (value >= vc->vc_nvq) { + if (value >= ((uint64_t) vc->vc_nvq)) { fprintf(stderr, "%s: queue %d notify out of range\r\n", name, (int)value); goto done; @@ -751,18 +745,18 @@ bad: name, (int)value); break; case VTCFG_R_STATUS: - vs->vs_status = value; + vs->vs_status = (uint8_t) value; if (value == 0) (*vc->vc_reset)(DEV_SOFTC(vs)); break; case VTCFG_R_CFGVEC: - vs->vs_msix_cfg_idx = value; + vs->vs_msix_cfg_idx = (uint16_t) value; break; case VTCFG_R_QVEC: if (vs->vs_curq >= vc->vc_nvq) goto bad_qindex; vq = &vs->vs_queues[vs->vs_curq]; - vq->vq_msix_idx = value; + vq->vq_msix_idx = (uint16_t) value; break; } goto done; diff --git a/src/vmm/intel/vmcs.c b/src/vmm/intel/vmcs.c new file mode 100644 index 0000000..250c948 --- /dev/null +++ b/src/vmm/intel/vmcs.c @@ -0,0 +1,245 @@ +/*- + * Copyright (c) 2011 NetApp, Inc. + * Copyright (c) 2015 xhyve developers + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY NETAPP, INC ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL NETAPP, INC OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#include +#include +#include +#include + +static uint64_t +vmcs_fix_regval(uint32_t encoding, uint64_t val) +{ + + switch (encoding) { + case VMCS_GUEST_CR0: + val = vmx_fix_cr0(val); + break; + case VMCS_GUEST_CR4: + val = vmx_fix_cr4(val); + break; + default: + break; + } + return (val); +} + +static uint32_t +vmcs_field_encoding(int ident) +{ + switch (ident) { + case VM_REG_GUEST_CR0: + return (VMCS_GUEST_CR0); + case VM_REG_GUEST_CR3: + return (VMCS_GUEST_CR3); + case VM_REG_GUEST_CR4: + return (VMCS_GUEST_CR4); + case VM_REG_GUEST_DR7: + return (VMCS_GUEST_DR7); + case VM_REG_GUEST_RSP: + return (VMCS_GUEST_RSP); + case VM_REG_GUEST_RIP: + return (VMCS_GUEST_RIP); + case VM_REG_GUEST_RFLAGS: + return (VMCS_GUEST_RFLAGS); + case VM_REG_GUEST_ES: + return (VMCS_GUEST_ES_SELECTOR); + case VM_REG_GUEST_CS: + return (VMCS_GUEST_CS_SELECTOR); + case VM_REG_GUEST_SS: + return (VMCS_GUEST_SS_SELECTOR); + case VM_REG_GUEST_DS: + return (VMCS_GUEST_DS_SELECTOR); + case VM_REG_GUEST_FS: + return (VMCS_GUEST_FS_SELECTOR); + case VM_REG_GUEST_GS: + return (VMCS_GUEST_GS_SELECTOR); + case VM_REG_GUEST_TR: + return (VMCS_GUEST_TR_SELECTOR); + case VM_REG_GUEST_LDTR: + return (VMCS_GUEST_LDTR_SELECTOR); + case VM_REG_GUEST_EFER: + return (VMCS_GUEST_IA32_EFER); + case VM_REG_GUEST_PDPTE0: + return (VMCS_GUEST_PDPTE0); + case VM_REG_GUEST_PDPTE1: + return (VMCS_GUEST_PDPTE1); + case VM_REG_GUEST_PDPTE2: + return (VMCS_GUEST_PDPTE2); + case VM_REG_GUEST_PDPTE3: + return (VMCS_GUEST_PDPTE3); + default: + return ((uint32_t) -1); + } + +} + +static int +vmcs_seg_desc_encoding(int seg, uint32_t *base, uint32_t *lim, uint32_t *acc) +{ + + switch (seg) { + case VM_REG_GUEST_ES: + *base = VMCS_GUEST_ES_BASE; + *lim = VMCS_GUEST_ES_LIMIT; + *acc = VMCS_GUEST_ES_ACCESS_RIGHTS; + break; + case VM_REG_GUEST_CS: + *base = VMCS_GUEST_CS_BASE; + *lim = VMCS_GUEST_CS_LIMIT; + *acc = VMCS_GUEST_CS_ACCESS_RIGHTS; + break; + case VM_REG_GUEST_SS: + *base = VMCS_GUEST_SS_BASE; + *lim = VMCS_GUEST_SS_LIMIT; + *acc = VMCS_GUEST_SS_ACCESS_RIGHTS; + break; + case VM_REG_GUEST_DS: + *base = VMCS_GUEST_DS_BASE; + *lim = VMCS_GUEST_DS_LIMIT; + *acc = VMCS_GUEST_DS_ACCESS_RIGHTS; + break; + case VM_REG_GUEST_FS: + *base = VMCS_GUEST_FS_BASE; + *lim = VMCS_GUEST_FS_LIMIT; + *acc = VMCS_GUEST_FS_ACCESS_RIGHTS; + break; + case VM_REG_GUEST_GS: + *base = VMCS_GUEST_GS_BASE; + *lim = VMCS_GUEST_GS_LIMIT; + *acc = VMCS_GUEST_GS_ACCESS_RIGHTS; + break; + case VM_REG_GUEST_TR: + *base = VMCS_GUEST_TR_BASE; + *lim = VMCS_GUEST_TR_LIMIT; + *acc = VMCS_GUEST_TR_ACCESS_RIGHTS; + break; + case VM_REG_GUEST_LDTR: + *base = VMCS_GUEST_LDTR_BASE; + *lim = VMCS_GUEST_LDTR_LIMIT; + *acc = VMCS_GUEST_LDTR_ACCESS_RIGHTS; + break; + case VM_REG_GUEST_IDTR: + *base = VMCS_GUEST_IDTR_BASE; + *lim = VMCS_GUEST_IDTR_LIMIT; + *acc = VMCS_INVALID_ENCODING; + break; + case VM_REG_GUEST_GDTR: + *base = VMCS_GUEST_GDTR_BASE; + *lim = VMCS_GUEST_GDTR_LIMIT; + *acc = VMCS_INVALID_ENCODING; + break; + default: + return (EINVAL); + } + + return (0); +} + +int +vmcs_getreg(int vcpuid, int ident, uint64_t *retval) +{ + uint32_t encoding; + + /* + * If we need to get at vmx-specific state in the VMCS we can bypass + * the translation of 'ident' to 'encoding' by simply setting the + * sign bit. As it so happens the upper 16 bits are reserved (i.e + * set to 0) in the encodings for the VMCS so we are free to use the + * sign bit. + */ + if (ident < 0) + encoding = ident & 0x7fffffff; + else + encoding = vmcs_field_encoding(ident); + + if (encoding == (uint32_t)-1) + return (EINVAL); + + *retval = vmcs_read(vcpuid, encoding); + + return (0); +} + +int +vmcs_setreg(int vcpuid, int ident, uint64_t val) +{ + uint32_t encoding; + + if (ident < 0) + encoding = ident & 0x7fffffff; + else + encoding = vmcs_field_encoding(ident); + + if (encoding == (uint32_t)-1) + return (EINVAL); + + val = vmcs_fix_regval(encoding, val); + + vmcs_write(vcpuid, encoding, val); + + return (0); +} + +int +vmcs_setdesc(int vcpuid, int seg, struct seg_desc *desc) +{ + int error; + uint32_t base, limit, access; + + error = vmcs_seg_desc_encoding(seg, &base, &limit, &access); + if (error != 0) + xhyve_abort("vmcs_setdesc: invalid segment register %d\n", seg); + + vmcs_write(vcpuid, base, desc->base); + vmcs_write(vcpuid, limit, desc->limit); + if (access != VMCS_INVALID_ENCODING) { + vmcs_write(vcpuid, access, desc->access); + } + + return (0); +} + +int +vmcs_getdesc(int vcpuid, int seg, struct seg_desc *desc) +{ + int error; + uint32_t base, limit, access; + + error = vmcs_seg_desc_encoding(seg, &base, &limit, &access); + if (error != 0) + xhyve_abort("vmcs_setdesc: invalid segment register %d\n", seg); + + desc->base = vmcs_read(vcpuid, base); + desc->limit = (uint32_t) vmcs_read(vcpuid, limit); + if (access != VMCS_INVALID_ENCODING) { + desc->access = (uint32_t) vmcs_read(vcpuid, access); + } + + return (0); +} diff --git a/src/vmm/intel/vmx.c b/src/vmm/intel/vmx.c new file mode 100644 index 0000000..6c94228 --- /dev/null +++ b/src/vmm/intel/vmx.c @@ -0,0 +1,2746 @@ +/*- + * Copyright (c) 2011 NetApp, Inc. + * Copyright (c) 2015 xhyve developers + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY NETAPP, INC ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL NETAPP, INC OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define PROCBASED_CTLS_WINDOW_SETTING \ + (PROCBASED_INT_WINDOW_EXITING | \ + PROCBASED_NMI_WINDOW_EXITING) +#define PROCBASED_CTLS_ONE_SETTING \ + (PROCBASED_SECONDARY_CONTROLS | \ + PROCBASED_MWAIT_EXITING | \ + PROCBASED_MONITOR_EXITING | \ + PROCBASED_IO_EXITING | \ + PROCBASED_MSR_BITMAPS | \ + PROCBASED_CTLS_WINDOW_SETTING | \ + PROCBASED_CR8_LOAD_EXITING | \ + PROCBASED_CR8_STORE_EXITING | \ + PROCBASED_HLT_EXITING | \ + PROCBASED_TSC_OFFSET) +#define PROCBASED_CTLS_ZERO_SETTING \ + (PROCBASED_CR3_LOAD_EXITING | \ + PROCBASED_CR3_STORE_EXITING | \ + PROCBASED_IO_BITMAPS | \ + PROCBASED_RDTSC_EXITING | \ + PROCBASED_USE_TPR_SHADOW | \ + PROCBASED_MOV_DR_EXITING | \ + PROCBASED_MTF | \ + PROCBASED_INVLPG_EXITING | \ + PROCBASED_PAUSE_EXITING) +#define PROCBASED_CTLS2_ONE_SETTING \ + (PROCBASED2_ENABLE_EPT | \ + PROCBASED2_UNRESTRICTED_GUEST | \ + PROCBASED2_ENABLE_VPID | \ + PROCBASED2_ENABLE_RDTSCP) +#define PROCBASED_CTLS2_ZERO_SETTING \ + (PROCBASED2_VIRTUALIZE_APIC_ACCESSES | \ + PROCBASED2_DESC_TABLE_EXITING | \ + PROCBASED2_WBINVD_EXITING | \ + PROCBASED2_PAUSE_LOOP_EXITING /* FIXME */ | \ + PROCBASED2_RDRAND_EXITING | \ + PROCBASED2_ENABLE_INVPCID /* FIXME */) +#define PINBASED_CTLS_ONE_SETTING \ + (PINBASED_EXTINT_EXITING | \ + PINBASED_NMI_EXITING | \ + PINBASED_VIRTUAL_NMI) +#define PINBASED_CTLS_ZERO_SETTING \ + (PINBASED_PREMPTION_TIMER) +#define VM_ENTRY_CTLS_ONE_SETTING \ + (VM_ENTRY_LOAD_EFER) +#define VM_ENTRY_CTLS_ZERO_SETTING \ + (VM_ENTRY_INTO_SMM | \ + VM_ENTRY_DEACTIVATE_DUAL_MONITOR | \ + VM_ENTRY_GUEST_LMA) +#define VM_EXIT_CTLS_ONE_SETTING \ + (VM_EXIT_HOST_LMA | \ + VM_EXIT_LOAD_EFER) +#define VM_EXIT_CTLS_ZERO_SETTING \ + (VM_EXIT_SAVE_PREEMPTION_TIMER) +#define NMI_BLOCKING \ + (VMCS_INTERRUPTIBILITY_NMI_BLOCKING | \ + VMCS_INTERRUPTIBILITY_MOVSS_BLOCKING) +#define HWINTR_BLOCKING \ + (VMCS_INTERRUPTIBILITY_STI_BLOCKING | \ + VMCS_INTERRUPTIBILITY_MOVSS_BLOCKING) + +#define HANDLED 1 +#define UNHANDLED 0 + +static uint32_t pinbased_ctls, procbased_ctls, procbased_ctls2; +static uint32_t exit_ctls, entry_ctls; +static uint64_t cr0_ones_mask, cr0_zeros_mask; +static uint64_t cr4_ones_mask, cr4_zeros_mask; + +/* + * Optional capabilities + */ + +static int cap_halt_exit; +static int cap_pause_exit; +// static int cap_unrestricted_guest; +static int cap_monitor_trap; +// static int cap_invpcid; +// static int pirvec = -1; +// static struct unrhdr *vpid_unr; +// static u_int vpid_alloc_failed; + +/* + * Use the last page below 4GB as the APIC access address. This address is + * occupied by the boot firmware so it is guaranteed that it will not conflict + * with a page in system memory. + */ +// #define APIC_ACCESS_ADDRESS 0xFFFFF000 + +static int vmx_getdesc(void *arg, int vcpu, int reg, struct seg_desc *desc); +static int vmx_getreg(void *arg, int vcpu, int reg, uint64_t *retval); + +static __inline uint64_t +reg_read(int vcpuid, hv_x86_reg_t reg) { + uint64_t val; + + hv_vcpu_read_register(((hv_vcpuid_t) vcpuid), reg, &val); + return val; +} + +static __inline void +reg_write(int vcpuid, hv_x86_reg_t reg, uint64_t val) { + hv_vcpu_write_register(((hv_vcpuid_t) vcpuid), reg, val); +} + +static void hvdump(int vcpu) { + printf("VMCS_PIN_BASED_CTLS: 0x%016llx\n", + vmcs_read(vcpu, VMCS_PIN_BASED_CTLS)); + printf("VMCS_PRI_PROC_BASED_CTLS: 0x%016llx\n", + vmcs_read(vcpu, VMCS_PRI_PROC_BASED_CTLS)); + printf("VMCS_SEC_PROC_BASED_CTLS: 0x%016llx\n", + vmcs_read(vcpu, VMCS_SEC_PROC_BASED_CTLS)); + printf("VMCS_ENTRY_CTLS: 0x%016llx\n", + vmcs_read(vcpu, VMCS_ENTRY_CTLS)); + printf("VMCS_EXCEPTION_BITMAP: 0x%016llx\n", + vmcs_read(vcpu, VMCS_EXCEPTION_BITMAP)); + printf("VMCS_CR0_MASK: 0x%016llx\n", + vmcs_read(vcpu, VMCS_CR0_MASK)); + printf("VMCS_CR0_SHADOW: 0x%016llx\n", + vmcs_read(vcpu, VMCS_CR0_SHADOW)); + printf("VMCS_CR4_MASK: 0x%016llx\n", + vmcs_read(vcpu, VMCS_CR4_MASK)); + printf("VMCS_CR4_SHADOW: 0x%016llx\n", + vmcs_read(vcpu, VMCS_CR4_SHADOW)); + printf("VMCS_GUEST_CS_SELECTOR: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_CS_SELECTOR)); + printf("VMCS_GUEST_CS_LIMIT: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_CS_LIMIT)); + printf("VMCS_GUEST_CS_ACCESS_RIGHTS: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_CS_ACCESS_RIGHTS)); + printf("VMCS_GUEST_CS_BASE: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_CS_BASE)); + printf("VMCS_GUEST_DS_SELECTOR: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_DS_SELECTOR)); + printf("VMCS_GUEST_DS_LIMIT: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_DS_LIMIT)); + printf("VMCS_GUEST_DS_ACCESS_RIGHTS: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_DS_ACCESS_RIGHTS)); + printf("VMCS_GUEST_DS_BASE: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_DS_BASE)); + printf("VMCS_GUEST_ES_SELECTOR: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_ES_SELECTOR)); + printf("VMCS_GUEST_ES_LIMIT: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_ES_LIMIT)); + printf("VMCS_GUEST_ES_ACCESS_RIGHTS: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_ES_ACCESS_RIGHTS)); + printf("VMCS_GUEST_ES_BASE: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_ES_BASE)); + printf("VMCS_GUEST_FS_SELECTOR: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_FS_SELECTOR)); + printf("VMCS_GUEST_FS_LIMIT: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_FS_LIMIT)); + printf("VMCS_GUEST_FS_ACCESS_RIGHTS: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_FS_ACCESS_RIGHTS)); + printf("VMCS_GUEST_FS_BASE: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_FS_BASE)); + printf("VMCS_GUEST_GS_SELECTOR: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_GS_SELECTOR)); + printf("VMCS_GUEST_GS_LIMIT: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_GS_LIMIT)); + printf("VMCS_GUEST_GS_ACCESS_RIGHTS: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_GS_ACCESS_RIGHTS)); + printf("VMCS_GUEST_GS_BASE: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_GS_BASE)); + printf("VMCS_GUEST_SS_SELECTOR: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_SS_SELECTOR)); + printf("VMCS_GUEST_SS_LIMIT: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_SS_LIMIT)); + printf("VMCS_GUEST_SS_ACCESS_RIGHTS: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_SS_ACCESS_RIGHTS)); + printf("VMCS_GUEST_SS_BASE: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_SS_BASE)); + printf("VMCS_GUEST_LDTR_SELECTOR: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_LDTR_SELECTOR)); + printf("VMCS_GUEST_LDTR_LIMIT: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_LDTR_LIMIT)); + printf("VMCS_GUEST_LDTR_ACCESS_RIGHTS: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_LDTR_ACCESS_RIGHTS)); + printf("VMCS_GUEST_LDTR_BASE: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_LDTR_BASE)); + printf("VMCS_GUEST_TR_SELECTOR: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_TR_SELECTOR)); + printf("VMCS_GUEST_TR_LIMIT: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_TR_LIMIT)); + printf("VMCS_GUEST_TR_ACCESS_RIGHTS: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_TR_ACCESS_RIGHTS)); + printf("VMCS_GUEST_TR_BASE: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_TR_BASE)); + printf("VMCS_GUEST_GDTR_LIMIT: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_GDTR_LIMIT)); + printf("VMCS_GUEST_GDTR_BASE: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_GDTR_BASE)); + printf("VMCS_GUEST_IDTR_LIMIT: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_LDTR_LIMIT)); + printf("VMCS_GUEST_IDTR_BASE: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_LDTR_BASE)); + printf("VMCS_GUEST_CR0: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_CR0)); + printf("VMCS_GUEST_CR3: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_CR3)); + printf("VMCS_GUEST_CR4: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_CR4)); + printf("VMCS_GUEST_IA32_EFER: 0x%016llx\n", + vmcs_read(vcpu, VMCS_GUEST_IA32_EFER)); + printf("\n"); + printf("rip: 0x%016llx rfl: 0x%016llx cr2: 0x%016llx\n", + reg_read(vcpu, HV_X86_RIP), reg_read(vcpu, HV_X86_RFLAGS), + reg_read(vcpu, HV_X86_CR2)); + printf("rax: 0x%016llx rbx: 0x%016llx rcx: 0x%016llx rdx: 0x%016llx\n", + reg_read(vcpu, HV_X86_RAX), reg_read(vcpu, HV_X86_RBX), + reg_read(vcpu, HV_X86_RCX), reg_read(vcpu, HV_X86_RDX)); + printf("rsi: 0x%016llx rdi: 0x%016llx rbp: 0x%016llx rsp: 0x%016llx\n", + reg_read(vcpu, HV_X86_RSI), reg_read(vcpu, HV_X86_RDI), + reg_read(vcpu, HV_X86_RBP), reg_read(vcpu, HV_X86_RSP)); + printf("r8: 0x%016llx r9: 0x%016llx r10: 0x%016llx r11: 0x%016llx\n", + reg_read(vcpu, HV_X86_R8), reg_read(vcpu, HV_X86_R9), + reg_read(vcpu, HV_X86_R10), reg_read(vcpu, HV_X86_R11)); + printf("r12: 0x%016llx r13: 0x%016llx r14: 0x%016llx r15: 0x%016llx\n", + reg_read(vcpu, HV_X86_R12), reg_read(vcpu, HV_X86_R12), + reg_read(vcpu, HV_X86_R14), reg_read(vcpu, HV_X86_R15)); +} + +#ifdef XHYVE_CONFIG_TRACE +static const char * +exit_reason_to_str(int reason) +{ + static char reasonbuf[32]; + + switch (reason) { + case EXIT_REASON_EXCEPTION: + return "exception"; + case EXIT_REASON_EXT_INTR: + return "extint"; + case EXIT_REASON_TRIPLE_FAULT: + return "triplefault"; + case EXIT_REASON_INIT: + return "init"; + case EXIT_REASON_SIPI: + return "sipi"; + case EXIT_REASON_IO_SMI: + return "iosmi"; + case EXIT_REASON_SMI: + return "smi"; + case EXIT_REASON_INTR_WINDOW: + return "intrwindow"; + case EXIT_REASON_NMI_WINDOW: + return "nmiwindow"; + case EXIT_REASON_TASK_SWITCH: + return "taskswitch"; + case EXIT_REASON_CPUID: + return "cpuid"; + case EXIT_REASON_GETSEC: + return "getsec"; + case EXIT_REASON_HLT: + return "hlt"; + case EXIT_REASON_INVD: + return "invd"; + case EXIT_REASON_INVLPG: + return "invlpg"; + case EXIT_REASON_RDPMC: + return "rdpmc"; + case EXIT_REASON_RDTSC: + return "rdtsc"; + case EXIT_REASON_RSM: + return "rsm"; + case EXIT_REASON_VMCALL: + return "vmcall"; + case EXIT_REASON_VMCLEAR: + return "vmclear"; + case EXIT_REASON_VMLAUNCH: + return "vmlaunch"; + case EXIT_REASON_VMPTRLD: + return "vmptrld"; + case EXIT_REASON_VMPTRST: + return "vmptrst"; + case EXIT_REASON_VMREAD: + return "vmread"; + case EXIT_REASON_VMRESUME: + return "vmresume"; + case EXIT_REASON_VMWRITE: + return "vmwrite"; + case EXIT_REASON_VMXOFF: + return "vmxoff"; + case EXIT_REASON_VMXON: + return "vmxon"; + case EXIT_REASON_CR_ACCESS: + return "craccess"; + case EXIT_REASON_DR_ACCESS: + return "draccess"; + case EXIT_REASON_INOUT: + return "inout"; + case EXIT_REASON_RDMSR: + return "rdmsr"; + case EXIT_REASON_WRMSR: + return "wrmsr"; + case EXIT_REASON_INVAL_VMCS: + return "invalvmcs"; + case EXIT_REASON_INVAL_MSR: + return "invalmsr"; + case EXIT_REASON_MWAIT: + return "mwait"; + case EXIT_REASON_MTF: + return "mtf"; + case EXIT_REASON_MONITOR: + return "monitor"; + case EXIT_REASON_PAUSE: + return "pause"; + case EXIT_REASON_MCE_DURING_ENTRY: + return "mce-during-entry"; + case EXIT_REASON_TPR: + return "tpr"; + case EXIT_REASON_APIC_ACCESS: + return "apic-access"; + case EXIT_REASON_GDTR_IDTR: + return "gdtridtr"; + case EXIT_REASON_LDTR_TR: + return "ldtrtr"; + case EXIT_REASON_EPT_FAULT: + return "eptfault"; + case EXIT_REASON_EPT_MISCONFIG: + return "eptmisconfig"; + case EXIT_REASON_INVEPT: + return "invept"; + case EXIT_REASON_RDTSCP: + return "rdtscp"; + case EXIT_REASON_VMX_PREEMPT: + return "vmxpreempt"; + case EXIT_REASON_INVVPID: + return "invvpid"; + case EXIT_REASON_WBINVD: + return "wbinvd"; + case EXIT_REASON_XSETBV: + return "xsetbv"; + case EXIT_REASON_APIC_WRITE: + return "apic-write"; + default: + snprintf(reasonbuf, sizeof(reasonbuf), "%d", reason); + return (reasonbuf); + } +} +#endif /* XHYVE_CONFIG_TRACE */ + +// static int +// vmx_allow_x2apic_msrs(struct vmx *vmx) +// { +// int i, error; + +// error = 0; + +// /* +// * Allow readonly access to the following x2APIC MSRs from the guest. +// */ +// error += guest_msr_ro(vmx, MSR_APIC_ID); +// error += guest_msr_ro(vmx, MSR_APIC_VERSION); +// error += guest_msr_ro(vmx, MSR_APIC_LDR); +// error += guest_msr_ro(vmx, MSR_APIC_SVR); + +// for (i = 0; i < 8; i++) +// error += guest_msr_ro(vmx, MSR_APIC_ISR0 + i); + +// for (i = 0; i < 8; i++) +// error += guest_msr_ro(vmx, MSR_APIC_TMR0 + i); + +// for (i = 0; i < 8; i++) +// error += guest_msr_ro(vmx, MSR_APIC_IRR0 + i); + +// error += guest_msr_ro(vmx, MSR_APIC_ESR); +// error += guest_msr_ro(vmx, MSR_APIC_LVT_TIMER); +// error += guest_msr_ro(vmx, MSR_APIC_LVT_THERMAL); +// error += guest_msr_ro(vmx, MSR_APIC_LVT_PCINT); +// error += guest_msr_ro(vmx, MSR_APIC_LVT_LINT0); +// error += guest_msr_ro(vmx, MSR_APIC_LVT_LINT1); +// error += guest_msr_ro(vmx, MSR_APIC_LVT_ERROR); +// error += guest_msr_ro(vmx, MSR_APIC_ICR_TIMER); +// error += guest_msr_ro(vmx, MSR_APIC_DCR_TIMER); +// error += guest_msr_ro(vmx, MSR_APIC_ICR); + +// /* +// * Allow TPR, EOI and SELF_IPI MSRs to be read and written by the guest. +// * +// * These registers get special treatment described in the section +// * "Virtualizing MSR-Based APIC Accesses". +// */ +// error += guest_msr_rw(vmx, MSR_APIC_TPR); +// error += guest_msr_rw(vmx, MSR_APIC_EOI); +// error += guest_msr_rw(vmx, MSR_APIC_SELF_IPI); + +// return (error); +// } + +u_long +vmx_fix_cr0(u_long cr0) +{ + return ((cr0 | cr0_ones_mask) & ~cr0_zeros_mask); +} + +u_long +vmx_fix_cr4(u_long cr4) +{ + return ((cr4 | cr4_ones_mask) & ~cr4_zeros_mask); +} + +static int +vmx_cleanup(void) +{ + return (0); +} + +static int +vmx_init(void) +{ + int error; + + if (hv_vm_create(HV_VM_DEFAULT)) { + xhyve_abort("hv_vm_create failed\n"); + } + + /* Check support for primary processor-based VM-execution controls */ + error = vmx_set_ctlreg(HV_VMX_CAP_PROCBASED, + PROCBASED_CTLS_ONE_SETTING, + PROCBASED_CTLS_ZERO_SETTING, &procbased_ctls); + if (error) { + printf("vmx_init: processor does not support desired primary " + "processor-based controls\n"); + return (error); + } + + /* Clear the processor-based ctl bits that are set on demand */ + procbased_ctls &= ~PROCBASED_CTLS_WINDOW_SETTING; + + /* Check support for secondary processor-based VM-execution controls */ + error = vmx_set_ctlreg(HV_VMX_CAP_PROCBASED2, + PROCBASED_CTLS2_ONE_SETTING, + PROCBASED_CTLS2_ZERO_SETTING, &procbased_ctls2); + if (error) { + printf("vmx_init: processor does not support desired secondary " + "processor-based controls\n"); + return (error); + } + + /* Check support for pin-based VM-execution controls */ + error = vmx_set_ctlreg(HV_VMX_CAP_PINBASED, + PINBASED_CTLS_ONE_SETTING, + PINBASED_CTLS_ZERO_SETTING, &pinbased_ctls); + if (error) { + printf("vmx_init: processor does not support desired " + "pin-based controls\n"); + return (error); + } + + /* Check support for VM-exit controls */ + error = vmx_set_ctlreg(HV_VMX_CAP_EXIT, + VM_EXIT_CTLS_ONE_SETTING, + VM_EXIT_CTLS_ZERO_SETTING, + &exit_ctls); + if (error) { + printf("vmx_init: processor does not support desired " + "exit controls\n"); + return (error); + } + + /* Check support for VM-entry controls */ + error = vmx_set_ctlreg(HV_VMX_CAP_ENTRY, + VM_ENTRY_CTLS_ONE_SETTING, VM_ENTRY_CTLS_ZERO_SETTING, + &entry_ctls); + if (error) { + printf("vmx_init: processor does not support desired " + "entry controls\n"); + return (error); + } + + /* + * Check support for optional features by testing them + * as individual bits + */ + cap_halt_exit = 1; + cap_monitor_trap = 1; + cap_pause_exit = 1; + // cap_unrestricted_guest = 1; + // cap_invpcid = 1; + + /* FIXME */ + cr0_ones_mask = cr4_ones_mask = 0; + cr0_zeros_mask = cr4_zeros_mask = 0; + + cr0_ones_mask |= (CR0_NE | CR0_ET); + cr0_zeros_mask |= (CR0_NW | CR0_CD); + cr4_ones_mask = 0x2000; + + vmx_msr_init(); + + return (0); +} + +static int +vmx_setup_cr_shadow(int vcpuid, int which, uint32_t initial) +{ + int error, mask_ident, shadow_ident; + uint64_t mask_value; + + if (which != 0 && which != 4) + xhyve_abort("vmx_setup_cr_shadow: unknown cr%d", which); + + if (which == 0) { + mask_ident = VMCS_CR0_MASK; + mask_value = (cr0_ones_mask | cr0_zeros_mask) | (CR0_PG | CR0_PE); + shadow_ident = VMCS_CR0_SHADOW; + } else { + mask_ident = VMCS_CR4_MASK; + mask_value = cr4_ones_mask | cr4_zeros_mask; + shadow_ident = VMCS_CR4_SHADOW; + } + + error = vmcs_setreg(vcpuid, VMCS_IDENT(mask_ident), mask_value); + if (error) + return (error); + + error = vmcs_setreg(vcpuid, VMCS_IDENT(shadow_ident), initial); + if (error) + return (error); + + return (0); +} +#define vmx_setup_cr0_shadow(vcpuid,init) vmx_setup_cr_shadow(vcpuid, 0, (init)) +#define vmx_setup_cr4_shadow(vcpuid,init) vmx_setup_cr_shadow(vcpuid, 4, (init)) + +static void * +vmx_vm_init(struct vm *vm) +{ + struct vmx *vmx; + + vmx = malloc(sizeof(struct vmx)); + assert(vmx); + bzero(vmx, sizeof(struct vmx)); + vmx->vm = vm; + + return (vmx); +} + +static int +vmx_vcpu_init(void *arg, int vcpuid) { + uint32_t exc_bitmap; + struct vmx *vmx; + hv_vcpuid_t hvid; + int error; + + vmx = (struct vmx *) arg; + + if (hv_vcpu_create(&hvid, HV_VCPU_DEFAULT)) { + xhyve_abort("hv_vcpu_create failed\n"); + } + + if (hvid != ((hv_vcpuid_t) vcpuid)) { + /* FIXME */ + xhyve_abort("vcpu id mismatch\n"); + } + + if (hv_vcpu_enable_native_msr(hvid, MSR_GSBASE, 1) || + hv_vcpu_enable_native_msr(hvid, MSR_FSBASE, 1) || + hv_vcpu_enable_native_msr(hvid, MSR_SYSENTER_CS_MSR, 1) || + hv_vcpu_enable_native_msr(hvid, MSR_SYSENTER_ESP_MSR, 1) || + hv_vcpu_enable_native_msr(hvid, MSR_SYSENTER_EIP_MSR, 1) || + hv_vcpu_enable_native_msr(hvid, MSR_TSC, 1) || + hv_vcpu_enable_native_msr(hvid, MSR_IA32_TSC_AUX, 1)) + { + xhyve_abort("vmx_vcpu_init: error setting guest msr access\n"); + } + + vmx_msr_guest_init(vmx, vcpuid); + + vmcs_write(vcpuid, VMCS_PIN_BASED_CTLS, pinbased_ctls); + vmcs_write(vcpuid, VMCS_PRI_PROC_BASED_CTLS, procbased_ctls); + vmcs_write(vcpuid, VMCS_SEC_PROC_BASED_CTLS, procbased_ctls2); + vmcs_write(vcpuid, VMCS_EXIT_CTLS, exit_ctls); + vmcs_write(vcpuid, VMCS_ENTRY_CTLS, entry_ctls); + + /* exception bitmap */ + if (vcpu_trace_exceptions()) + exc_bitmap = 0xffffffff; + else + exc_bitmap = 1 << IDT_MC; + + vmcs_write(vcpuid, VMCS_EXCEPTION_BITMAP, exc_bitmap); + + vmx->cap[vcpuid].set = 0; + vmx->cap[vcpuid].proc_ctls = procbased_ctls; + vmx->cap[vcpuid].proc_ctls2 = procbased_ctls2; + vmx->state[vcpuid].nextrip = ~(uint64_t) 0; + + /* + * Set up the CR0/4 shadows, and init the read shadow + * to the power-on register value from the Intel Sys Arch. + * CR0 - 0x60000010 + * CR4 - 0 + */ + error = vmx_setup_cr0_shadow(vcpuid, 0x60000010); + if (error != 0) + xhyve_abort("vmx_setup_cr0_shadow %d\n", error); + + error = vmx_setup_cr4_shadow(vcpuid, 0); + + if (error != 0) + xhyve_abort("vmx_setup_cr4_shadow %d\n", error); + + return (0); +} + +static int +vmx_handle_cpuid(struct vm *vm, int vcpuid) +{ + uint32_t eax, ebx, ecx, edx; + int error; + + eax = (uint32_t) reg_read(vcpuid, HV_X86_RAX); + ebx = (uint32_t) reg_read(vcpuid, HV_X86_RBX); + ecx = (uint32_t) reg_read(vcpuid, HV_X86_RCX); + edx = (uint32_t) reg_read(vcpuid, HV_X86_RDX); + + error = x86_emulate_cpuid(vm, vcpuid, &eax, &ebx, &ecx, &edx); + + reg_write(vcpuid, HV_X86_RAX, eax); + reg_write(vcpuid, HV_X86_RBX, ebx); + reg_write(vcpuid, HV_X86_RCX, ecx); + reg_write(vcpuid, HV_X86_RDX, edx); + + return (error); +} + +static __inline void +vmx_run_trace(struct vmx *vmx, int vcpu) +{ +#ifdef XHYVE_CONFIG_TRACE + VCPU_CTR1(vmx->vm, vcpu, "Resume execution at %#llx", vmcs_guest_rip(vcpu)); +#else + (void) vmx; + (void) vcpu; +#endif +} + +static __inline void +vmx_exit_trace(struct vmx *vmx, int vcpu, uint64_t rip, uint32_t exit_reason, + int handled) +{ +#ifdef XHYVE_CONFIG_TRACE + VCPU_CTR3(vmx->vm, vcpu, "%s %s vmexit at 0x%0llx", + handled ? "handled" : "unhandled", + exit_reason_to_str((int) exit_reason), rip); +#else + (void) vmx; + (void) vcpu; + (void) rip; + (void) exit_reason; + (void) handled; +#endif +} + +/* + * We depend on 'procbased_ctls' to have the Interrupt Window Exiting bit set. + */ +CTASSERT((PROCBASED_CTLS_ONE_SETTING & PROCBASED_INT_WINDOW_EXITING) != 0); + +static void __inline +vmx_set_int_window_exiting(struct vmx *vmx, int vcpu) +{ + if ((vmx->cap[vcpu].proc_ctls & PROCBASED_INT_WINDOW_EXITING) == 0) { + vmx->cap[vcpu].proc_ctls |= PROCBASED_INT_WINDOW_EXITING; + vmcs_write(vcpu, VMCS_PRI_PROC_BASED_CTLS, vmx->cap[vcpu].proc_ctls); + VCPU_CTR0(vmx->vm, vcpu, "Enabling interrupt window exiting"); + } +} + +static void __inline +vmx_clear_int_window_exiting(struct vmx *vmx, int vcpu) +{ + KASSERT((vmx->cap[vcpu].proc_ctls & PROCBASED_INT_WINDOW_EXITING) != 0, + ("intr_window_exiting not set: %#x", vmx->cap[vcpu].proc_ctls)); + vmx->cap[vcpu].proc_ctls &= ~PROCBASED_INT_WINDOW_EXITING; + vmcs_write(vcpu, VMCS_PRI_PROC_BASED_CTLS, vmx->cap[vcpu].proc_ctls); + VCPU_CTR0(vmx->vm, vcpu, "Disabling interrupt window exiting"); +} + +static void __inline +vmx_set_nmi_window_exiting(struct vmx *vmx, int vcpu) +{ + + if ((vmx->cap[vcpu].proc_ctls & PROCBASED_NMI_WINDOW_EXITING) == 0) { + vmx->cap[vcpu].proc_ctls |= PROCBASED_NMI_WINDOW_EXITING; + vmcs_write(vcpu, VMCS_PRI_PROC_BASED_CTLS, vmx->cap[vcpu].proc_ctls); + VCPU_CTR0(vmx->vm, vcpu, "Enabling NMI window exiting"); + } +} + +static void __inline +vmx_clear_nmi_window_exiting(struct vmx *vmx, int vcpu) +{ + + KASSERT((vmx->cap[vcpu].proc_ctls & PROCBASED_NMI_WINDOW_EXITING) != 0, + ("nmi_window_exiting not set %#x", vmx->cap[vcpu].proc_ctls)); + vmx->cap[vcpu].proc_ctls &= ~PROCBASED_NMI_WINDOW_EXITING; + vmcs_write(vcpu, VMCS_PRI_PROC_BASED_CTLS, vmx->cap[vcpu].proc_ctls); + VCPU_CTR0(vmx->vm, vcpu, "Disabling NMI window exiting"); +} + +static void +vmx_inject_nmi(struct vmx *vmx, int vcpu) +{ + uint32_t gi, info; + + gi = (uint32_t) vmcs_read(vcpu, VMCS_GUEST_INTERRUPTIBILITY); + KASSERT((gi & NMI_BLOCKING) == 0, ("vmx_inject_nmi: invalid guest " + "interruptibility-state %#x", gi)); + + info = (uint32_t) vmcs_read(vcpu, VMCS_ENTRY_INTR_INFO); + KASSERT((info & VMCS_INTR_VALID) == 0, ("vmx_inject_nmi: invalid " + "VM-entry interruption information %#x", info)); + + /* + * Inject the virtual NMI. The vector must be the NMI IDT entry + * or the VMCS entry check will fail. + */ + info = IDT_NMI | VMCS_INTR_T_NMI | VMCS_INTR_VALID; + vmcs_write(vcpu, VMCS_ENTRY_INTR_INFO, info); + + VCPU_CTR0(vmx->vm, vcpu, "Injecting vNMI"); + + /* Clear the request */ + vm_nmi_clear(vmx->vm, vcpu); +} + +static void +vmx_inject_interrupts(struct vmx *vmx, int vcpu, struct vlapic *vlapic, + uint64_t guestrip) +{ + int vector, need_nmi_exiting, extint_pending; + uint64_t rflags, entryinfo; + uint32_t gi, info; + + if (vmx->state[vcpu].nextrip != guestrip) { + gi = (uint32_t) vmcs_read(vcpu, VMCS_GUEST_INTERRUPTIBILITY); + if (gi & HWINTR_BLOCKING) { + VCPU_CTR2(vmx->vm, vcpu, "Guest interrupt blocking " + "cleared due to rip change: %#llx/%#llx", + vmx->state[vcpu].nextrip, guestrip); + gi &= ~HWINTR_BLOCKING; + vmcs_write(vcpu, VMCS_GUEST_INTERRUPTIBILITY, gi); + } + } + + if (vm_entry_intinfo(vmx->vm, vcpu, &entryinfo)) { + KASSERT((entryinfo & VMCS_INTR_VALID) != 0, ("%s: entry " + "intinfo is not valid: %#llx", __func__, entryinfo)); + + info = (uint32_t) vmcs_read(vcpu, VMCS_ENTRY_INTR_INFO); + KASSERT((info & VMCS_INTR_VALID) == 0, ("%s: cannot inject " + "pending exception: %#llx/%#x", __func__, entryinfo, info)); + + info = (uint32_t) entryinfo; + vector = info & 0xff; + if (vector == IDT_BP || vector == IDT_OF) { + /* + * VT-x requires #BP and #OF to be injected as software + * exceptions. + */ + info &= ~VMCS_INTR_T_MASK; + info |= VMCS_INTR_T_SWEXCEPTION; + } + + if (info & VMCS_INTR_DEL_ERRCODE) + vmcs_write(vcpu, VMCS_ENTRY_EXCEPTION_ERROR, entryinfo >> 32); + + vmcs_write(vcpu, VMCS_ENTRY_INTR_INFO, info); + } + + if (vm_nmi_pending(vmx->vm, vcpu)) { + /* + * If there are no conditions blocking NMI injection then + * inject it directly here otherwise enable "NMI window + * exiting" to inject it as soon as we can. + * + * We also check for STI_BLOCKING because some implementations + * don't allow NMI injection in this case. If we are running + * on a processor that doesn't have this restriction it will + * immediately exit and the NMI will be injected in the + * "NMI window exiting" handler. + */ + need_nmi_exiting = 1; + gi = (uint32_t) vmcs_read(vcpu, VMCS_GUEST_INTERRUPTIBILITY); + if ((gi & (HWINTR_BLOCKING | NMI_BLOCKING)) == 0) { + info = (uint32_t) vmcs_read(vcpu, VMCS_ENTRY_INTR_INFO); + if ((info & VMCS_INTR_VALID) == 0) { + vmx_inject_nmi(vmx, vcpu); + need_nmi_exiting = 0; + } else { + VCPU_CTR1(vmx->vm, vcpu, "Cannot inject NMI " + "due to VM-entry intr info %#x", info); + } + } else { + VCPU_CTR1(vmx->vm, vcpu, "Cannot inject NMI due to " + "Guest Interruptibility-state %#x", gi); + } + + if (need_nmi_exiting) + vmx_set_nmi_window_exiting(vmx, vcpu); + } + + extint_pending = vm_extint_pending(vmx->vm, vcpu); + + /* + * If interrupt-window exiting is already in effect then don't bother + * checking for pending interrupts. This is just an optimization and + * not needed for correctness. + */ + if ((vmx->cap[vcpu].proc_ctls & PROCBASED_INT_WINDOW_EXITING) != 0) { + VCPU_CTR0(vmx->vm, vcpu, "Skip interrupt injection due to " + "pending int_window_exiting"); + return; + } + + if (!extint_pending) { + /* Ask the local apic for a vector to inject */ + if (!vlapic_pending_intr(vlapic, &vector)) + return; + + /* + * From the Intel SDM, Volume 3, Section "Maskable + * Hardware Interrupts": + * - maskable interrupt vectors [16,255] can be delivered + * through the local APIC. + */ + KASSERT(vector >= 16 && vector <= 255, + ("invalid vector %d from local APIC", vector)); + } else { + /* Ask the legacy pic for a vector to inject */ + vatpic_pending_intr(vmx->vm, &vector); + + /* + * From the Intel SDM, Volume 3, Section "Maskable + * Hardware Interrupts": + * - maskable interrupt vectors [0,255] can be delivered + * through the INTR pin. + */ + KASSERT(vector >= 0 && vector <= 255, + ("invalid vector %d from INTR", vector)); + } + + /* Check RFLAGS.IF and the interruptibility state of the guest */ + rflags = vmcs_read(vcpu, VMCS_GUEST_RFLAGS); + if ((rflags & PSL_I) == 0) { + VCPU_CTR2(vmx->vm, vcpu, "Cannot inject vector %d due to " + "rflags %#llx", vector, rflags); + goto cantinject; + } + + gi = (uint32_t) vmcs_read(vcpu, VMCS_GUEST_INTERRUPTIBILITY); + if (gi & HWINTR_BLOCKING) { + VCPU_CTR2(vmx->vm, vcpu, "Cannot inject vector %d due to " + "Guest Interruptibility-state %#x", vector, gi); + goto cantinject; + } + + info = (uint32_t) vmcs_read(vcpu, VMCS_ENTRY_INTR_INFO); + if (info & VMCS_INTR_VALID) { + /* + * This is expected and could happen for multiple reasons: + * - A vectoring VM-entry was aborted due to astpending + * - A VM-exit happened during event injection. + * - An exception was injected above. + * - An NMI was injected above or after "NMI window exiting" + */ + VCPU_CTR2(vmx->vm, vcpu, "Cannot inject vector %d due to " + "VM-entry intr info %#x", vector, info); + goto cantinject; + } + + /* Inject the interrupt */ + info = VMCS_INTR_T_HWINTR | VMCS_INTR_VALID; + info |= (uint32_t) vector; + vmcs_write(vcpu, VMCS_ENTRY_INTR_INFO, info); + + if (!extint_pending) { + /* Update the Local APIC ISR */ + vlapic_intr_accepted(vlapic, vector); + } else { + vm_extint_clear(vmx->vm, vcpu); + vatpic_intr_accepted(vmx->vm, vector); + + /* + * After we accepted the current ExtINT the PIC may + * have posted another one. If that is the case, set + * the Interrupt Window Exiting execution control so + * we can inject that one too. + * + * Also, interrupt window exiting allows us to inject any + * pending APIC vector that was preempted by the ExtINT + * as soon as possible. This applies both for the software + * emulated vlapic and the hardware assisted virtual APIC. + */ + vmx_set_int_window_exiting(vmx, vcpu); + } + + VCPU_CTR1(vmx->vm, vcpu, "Injecting hwintr at vector %d", vector); + + return; + +cantinject: + /* + * Set the Interrupt Window Exiting execution control so we can inject + * the interrupt as soon as blocking condition goes away. + */ + vmx_set_int_window_exiting(vmx, vcpu); +} + +/* + * If the Virtual NMIs execution control is '1' then the logical processor + * tracks virtual-NMI blocking in the Guest Interruptibility-state field of + * the VMCS. An IRET instruction in VMX non-root operation will remove any + * virtual-NMI blocking. + * + * This unblocking occurs even if the IRET causes a fault. In this case the + * hypervisor needs to restore virtual-NMI blocking before resuming the guest. + */ +static void +vmx_restore_nmi_blocking(struct vmx *vmx, int vcpuid) +{ + uint32_t gi; + + VCPU_CTR0(vmx->vm, vcpuid, "Restore Virtual-NMI blocking"); + gi = (uint32_t) vmcs_read(vcpuid, VMCS_GUEST_INTERRUPTIBILITY); + gi |= VMCS_INTERRUPTIBILITY_NMI_BLOCKING; + vmcs_write(vcpuid, VMCS_GUEST_INTERRUPTIBILITY, gi); +} + +static void +vmx_clear_nmi_blocking(struct vmx *vmx, int vcpuid) +{ + uint32_t gi; + + VCPU_CTR0(vmx->vm, vcpuid, "Clear Virtual-NMI blocking"); + gi = (uint32_t) vmcs_read(vcpuid, VMCS_GUEST_INTERRUPTIBILITY); + gi &= ~VMCS_INTERRUPTIBILITY_NMI_BLOCKING; + vmcs_write(vcpuid, VMCS_GUEST_INTERRUPTIBILITY, gi); +} + +static void +vmx_assert_nmi_blocking(int vcpuid) +{ + uint32_t gi; + + gi = (uint32_t) vmcs_read(vcpuid, VMCS_GUEST_INTERRUPTIBILITY); + KASSERT(gi & VMCS_INTERRUPTIBILITY_NMI_BLOCKING, + ("NMI blocking is not in effect %#x", gi)); +} + +static int +vmx_emulate_xsetbv(struct vmx *vmx, int vcpu) +{ + uint64_t xcrval; + const struct xsave_limits *limits; + + limits = vmm_get_xsave_limits(); + + /* + * Note that the processor raises a GP# fault on its own if + * xsetbv is executed for CPL != 0, so we do not have to + * emulate that fault here. + */ + + /* Only xcr0 is supported. */ + if (reg_read(vcpu, HV_X86_RCX) != 0) { + vm_inject_gp(vmx->vm, vcpu); + return (HANDLED); + } + + /* We only handle xcr0 if both the host and guest have XSAVE enabled. */ + if (!limits->xsave_enabled || + !(vmcs_read(vcpu, VMCS_GUEST_CR4) & CR4_XSAVE)) + { + vm_inject_ud(vmx->vm, vcpu); + return (HANDLED); + } + + xcrval = reg_read(vcpu, HV_X86_RDX) << 32 + | (reg_read(vcpu, HV_X86_RAX) & 0xffffffff); + + if ((xcrval & ~limits->xcr0_allowed) != 0) { + vm_inject_gp(vmx->vm, vcpu); + return (HANDLED); + } + + if (!(xcrval & XFEATURE_ENABLED_X87)) { + vm_inject_gp(vmx->vm, vcpu); + return (HANDLED); + } + + /* AVX (YMM_Hi128) requires SSE. */ + if (xcrval & XFEATURE_ENABLED_AVX && + (xcrval & XFEATURE_AVX) != XFEATURE_AVX) { + vm_inject_gp(vmx->vm, vcpu); + return (HANDLED); + } + + /* + * AVX512 requires base AVX (YMM_Hi128) as well as OpMask, + * ZMM_Hi256, and Hi16_ZMM. + */ + if (xcrval & XFEATURE_AVX512 && + (xcrval & (XFEATURE_AVX512 | XFEATURE_AVX)) != + (XFEATURE_AVX512 | XFEATURE_AVX)) { + vm_inject_gp(vmx->vm, vcpu); + return (HANDLED); + } + + /* + * Intel MPX requires both bound register state flags to be + * set. + */ + if (((xcrval & XFEATURE_ENABLED_BNDREGS) != 0) != + ((xcrval & XFEATURE_ENABLED_BNDCSR) != 0)) { + vm_inject_gp(vmx->vm, vcpu); + return (HANDLED); + } + + reg_write(vcpu, HV_X86_XCR0, xcrval); + return (HANDLED); +} + +static uint64_t +vmx_get_guest_reg(int vcpu, int ident) +{ + switch (ident) { + case 0: + return (reg_read(vcpu, HV_X86_RAX)); + case 1: + return (reg_read(vcpu, HV_X86_RCX)); + case 2: + return (reg_read(vcpu, HV_X86_RDX)); + case 3: + return (reg_read(vcpu, HV_X86_RBX)); + case 4: + return (vmcs_read(vcpu, VMCS_GUEST_RSP)); + case 5: + return (reg_read(vcpu, HV_X86_RBP)); + case 6: + return (reg_read(vcpu, HV_X86_RSI)); + case 7: + return (reg_read(vcpu, HV_X86_RDI)); + case 8: + return (reg_read(vcpu, HV_X86_R8)); + case 9: + return (reg_read(vcpu, HV_X86_R9)); + case 10: + return (reg_read(vcpu, HV_X86_R10)); + case 11: + return (reg_read(vcpu, HV_X86_R11)); + case 12: + return (reg_read(vcpu, HV_X86_R12)); + case 13: + return (reg_read(vcpu, HV_X86_R13)); + case 14: + return (reg_read(vcpu, HV_X86_R14)); + case 15: + return (reg_read(vcpu, HV_X86_R15)); + default: + xhyve_abort("invalid vmx register %d", ident); + } +} + +static void +vmx_set_guest_reg(int vcpu, int ident, uint64_t regval) +{ + switch (ident) { + case 0: + reg_write(vcpu, HV_X86_RAX, regval); + break; + case 1: + reg_write(vcpu, HV_X86_RCX, regval); + break; + case 2: + reg_write(vcpu, HV_X86_RDX, regval); + break; + case 3: + reg_write(vcpu, HV_X86_RBX, regval); + break; + case 4: + vmcs_write(vcpu, VMCS_GUEST_RSP, regval); + break; + case 5: + reg_write(vcpu, HV_X86_RBP, regval); + break; + case 6: + reg_write(vcpu, HV_X86_RSI, regval); + break; + case 7: + reg_write(vcpu, HV_X86_RDI, regval); + break; + case 8: + reg_write(vcpu, HV_X86_R8, regval); + break; + case 9: + reg_write(vcpu, HV_X86_R9, regval); + break; + case 10: + reg_write(vcpu, HV_X86_R10, regval); + break; + case 11: + reg_write(vcpu, HV_X86_R11, regval); + break; + case 12: + reg_write(vcpu, HV_X86_R12, regval); + break; + case 13: + reg_write(vcpu, HV_X86_R13, regval); + break; + case 14: + reg_write(vcpu, HV_X86_R14, regval); + break; + case 15: + reg_write(vcpu, HV_X86_R15, regval); + break; + default: + xhyve_abort("invalid vmx register %d", ident); + } +} + +static int +vmx_emulate_cr0_access(UNUSED struct vm *vm, int vcpu, uint64_t exitqual) +{ + uint64_t crval, regval; + // *pt; + + /* We only handle mov to %cr0 at this time */ + if ((exitqual & 0xf0) != 0x00) + return (UNHANDLED); + + regval = vmx_get_guest_reg(vcpu, (exitqual >> 8) & 0xf); + + vmcs_write(vcpu, VMCS_CR0_SHADOW, regval); + + crval = regval | cr0_ones_mask; + crval &= ~cr0_zeros_mask; + // printf("cr0: v:0x%016llx 1:0x%08llx 0:0x%08llx v:0x%016llx\n", + // regval, cr0_ones_mask, cr0_zeros_mask, crval); + vmcs_write(vcpu, VMCS_GUEST_CR0, crval); + + if (regval & CR0_PG) { + uint64_t efer, entryctls; + + /* + * If CR0.PG is 1 and EFER.LME is 1 then EFER.LMA and + * the "IA-32e mode guest" bit in VM-entry control must be + * equal. + */ + efer = vmcs_read(vcpu, VMCS_GUEST_IA32_EFER); + if (efer & EFER_LME) { + efer |= EFER_LMA; + vmcs_write(vcpu, VMCS_GUEST_IA32_EFER, efer); + entryctls = vmcs_read(vcpu, VMCS_ENTRY_CTLS); + entryctls |= VM_ENTRY_GUEST_LMA; + vmcs_write(vcpu, VMCS_ENTRY_CTLS, entryctls); + } + + // if (vmcs_read(vcpu, VMCS_GUEST_CR4) & CR4_PAE) { + // if (!(pt = (uint64_t *) vm_gpa2hva(vm, + // vmcs_read(vcpu, VMCS_GUEST_CR3), sizeof(uint64_t) * 4))) + // { + // xhyve_abort("invalid cr3\n"); + // } + + // vmcs_write(vcpu, VMCS_GUEST_PDPTE0, pt[0]); + // vmcs_write(vcpu, VMCS_GUEST_PDPTE1, pt[1]); + // vmcs_write(vcpu, VMCS_GUEST_PDPTE2, pt[2]); + // vmcs_write(vcpu, VMCS_GUEST_PDPTE3, pt[3]); + // } + } + + return (HANDLED); +} + +static int +vmx_emulate_cr4_access(int vcpu, uint64_t exitqual) +{ + uint64_t crval, regval; + + /* We only handle mov to %cr4 at this time */ + if ((exitqual & 0xf0) != 0x00) + return (UNHANDLED); + + regval = vmx_get_guest_reg(vcpu, (exitqual >> 8) & 0xf); + + vmcs_write(vcpu, VMCS_CR4_SHADOW, regval); + + crval = regval | cr4_ones_mask; + crval &= ~cr4_zeros_mask; + vmcs_write(vcpu, VMCS_GUEST_CR4, crval); + + return (HANDLED); +} + +static int +vmx_emulate_cr8_access(struct vmx *vmx, int vcpu, uint64_t exitqual) +{ + struct vlapic *vlapic; + uint64_t cr8; + int regnum; + + /* We only handle mov %cr8 to/from a register at this time. */ + if ((exitqual & 0xe0) != 0x00) { + return (UNHANDLED); + } + + vlapic = vm_lapic(vmx->vm, vcpu); + regnum = (exitqual >> 8) & 0xf; + if (exitqual & 0x10) { + cr8 = vlapic_get_cr8(vlapic); + vmx_set_guest_reg(vcpu, regnum, cr8); + } else { + cr8 = vmx_get_guest_reg(vcpu, regnum); + vlapic_set_cr8(vlapic, cr8); + } + + return (HANDLED); +} + +/* + * From section "Guest Register State" in the Intel SDM: CPL = SS.DPL + */ +static int +vmx_cpl(int vcpu) +{ + uint32_t ssar; + + ssar = (uint32_t) vmcs_read(vcpu, VMCS_GUEST_SS_ACCESS_RIGHTS); + return ((ssar >> 5) & 0x3); +} + +static enum vm_cpu_mode +vmx_cpu_mode(int vcpu) +{ + uint32_t csar; + + if (vmcs_read(vcpu, VMCS_GUEST_IA32_EFER) & EFER_LMA) { + csar = (uint32_t) vmcs_read(vcpu, VMCS_GUEST_CS_ACCESS_RIGHTS); + if (csar & 0x2000) + return (CPU_MODE_64BIT); /* CS.L = 1 */ + else + return (CPU_MODE_COMPATIBILITY); + } else if (vmcs_read(vcpu, VMCS_GUEST_CR0) & CR0_PE) { + return (CPU_MODE_PROTECTED); + } else { + return (CPU_MODE_REAL); + } +} + +static enum vm_paging_mode +vmx_paging_mode(int vcpu) +{ + + if (!(vmcs_read(vcpu, VMCS_GUEST_CR0) & CR0_PG)) + return (PAGING_MODE_FLAT); + if (!(vmcs_read(vcpu, VMCS_GUEST_CR4) & CR4_PAE)) + return (PAGING_MODE_32); + if (vmcs_read(vcpu, VMCS_GUEST_IA32_EFER) & EFER_LME) + return (PAGING_MODE_64); + else + return (PAGING_MODE_PAE); +} + +static uint64_t +inout_str_index(struct vmx *vmx, int vcpuid, int in) +{ + uint64_t val; + int error; + enum vm_reg_name reg; + + reg = in ? VM_REG_GUEST_RDI : VM_REG_GUEST_RSI; + error = vmx_getreg(vmx, vcpuid, reg, &val); + KASSERT(error == 0, ("%s: vmx_getreg error %d", __func__, error)); + return (val); +} + +static uint64_t +inout_str_count(struct vmx *vmx, int vcpuid, int rep) +{ + uint64_t val; + int error; + + if (rep) { + error = vmx_getreg(vmx, vcpuid, VM_REG_GUEST_RCX, &val); + KASSERT(!error, ("%s: vmx_getreg error %d", __func__, error)); + } else { + val = 1; + } + return (val); +} + +static int +inout_str_addrsize(uint32_t inst_info) +{ + uint32_t size; + + size = (inst_info >> 7) & 0x7; + switch (size) { + case 0: + return (2); /* 16 bit */ + case 1: + return (4); /* 32 bit */ + case 2: + return (8); /* 64 bit */ + default: + xhyve_abort("%s: invalid size encoding %d", __func__, size); + } +} + +static void +inout_str_seginfo(struct vmx *vmx, int vcpuid, uint32_t inst_info, int in, + struct vm_inout_str *vis) +{ + int error, s; + + if (in) { + vis->seg_name = VM_REG_GUEST_ES; + } else { + s = (inst_info >> 15) & 0x7; + vis->seg_name = vm_segment_name(s); + } + + error = vmx_getdesc(vmx, vcpuid, vis->seg_name, &vis->seg_desc); + KASSERT(error == 0, ("%s: vmx_getdesc error %d", __func__, error)); +} + +static void +vmx_paging_info(struct vm_guest_paging *paging, int vcpu) +{ + paging->cr3 = vmcs_guest_cr3(vcpu); + paging->cpl = vmx_cpl(vcpu); + paging->cpu_mode = vmx_cpu_mode(vcpu); + paging->paging_mode = vmx_paging_mode(vcpu); +} + +static void +vmexit_inst_emul(struct vm_exit *vmexit, uint64_t gpa, uint64_t gla, int vcpu) +{ + struct vm_guest_paging *paging; + uint32_t csar; + + paging = &vmexit->u.inst_emul.paging; + + vmexit->exitcode = VM_EXITCODE_INST_EMUL; + vmexit->u.inst_emul.gpa = gpa; + vmexit->u.inst_emul.gla = gla; + vmx_paging_info(paging, vcpu); + switch (paging->cpu_mode) { + case CPU_MODE_REAL: + vmexit->u.inst_emul.cs_base = vmcs_read(vcpu, VMCS_GUEST_CS_BASE); + vmexit->u.inst_emul.cs_d = 0; + break; + case CPU_MODE_PROTECTED: + case CPU_MODE_COMPATIBILITY: + vmexit->u.inst_emul.cs_base = vmcs_read(vcpu, VMCS_GUEST_CS_BASE); + csar = (uint32_t) vmcs_read(vcpu, VMCS_GUEST_CS_ACCESS_RIGHTS); + vmexit->u.inst_emul.cs_d = SEG_DESC_DEF32(csar); + break; + case CPU_MODE_64BIT: + vmexit->u.inst_emul.cs_base = 0; + vmexit->u.inst_emul.cs_d = 0; + break; + } + vie_init(&vmexit->u.inst_emul.vie, NULL, 0); +} + +static int +ept_fault_type(uint64_t ept_qual) +{ + int fault_type; + + if (ept_qual & EPT_VIOLATION_DATA_WRITE) + fault_type = XHYVE_PROT_WRITE; + else if (ept_qual & EPT_VIOLATION_INST_FETCH) + fault_type = XHYVE_PROT_EXECUTE; + else + fault_type= XHYVE_PROT_READ; + + return (fault_type); +} + +static bool +ept_emulation_fault(uint64_t ept_qual) +{ + int read, write; + + /* EPT fault on an instruction fetch doesn't make sense here */ + if (ept_qual & EPT_VIOLATION_INST_FETCH) + return (FALSE); + + /* EPT fault must be a read fault or a write fault */ + read = ept_qual & EPT_VIOLATION_DATA_READ ? 1 : 0; + write = ept_qual & EPT_VIOLATION_DATA_WRITE ? 1 : 0; + if ((read | write) == 0) + return (FALSE); + + /* + * The EPT violation must have been caused by accessing a + * guest-physical address that is a translation of a guest-linear + * address. + */ + if ((ept_qual & EPT_VIOLATION_GLA_VALID) == 0 || + (ept_qual & EPT_VIOLATION_XLAT_VALID) == 0) { + return (FALSE); + } + + return (TRUE); +} + +static __inline int +apic_access_virtualization(struct vmx *vmx, int vcpuid) +{ + uint32_t proc_ctls2; + + proc_ctls2 = vmx->cap[vcpuid].proc_ctls2; + return ((proc_ctls2 & PROCBASED2_VIRTUALIZE_APIC_ACCESSES) ? 1 : 0); +} + +static __inline int +x2apic_virtualization(struct vmx *vmx, int vcpuid) +{ + uint32_t proc_ctls2; + + proc_ctls2 = vmx->cap[vcpuid].proc_ctls2; + return ((proc_ctls2 & PROCBASED2_VIRTUALIZE_X2APIC_MODE) ? 1 : 0); +} + +static int +vmx_handle_apic_write(struct vmx *vmx, int vcpuid, struct vlapic *vlapic, + uint64_t qual) +{ + int error, handled, offset; + uint32_t *apic_regs, vector; + bool retu; + + handled = HANDLED; + offset = APIC_WRITE_OFFSET(qual); + + if (!apic_access_virtualization(vmx, vcpuid)) { + /* + * In general there should not be any APIC write VM-exits + * unless APIC-access virtualization is enabled. + * + * However self-IPI virtualization can legitimately trigger + * an APIC-write VM-exit so treat it specially. + */ + if (x2apic_virtualization(vmx, vcpuid) && + offset == APIC_OFFSET_SELF_IPI) { + apic_regs = (uint32_t *)(vlapic->apic_page); + vector = apic_regs[APIC_OFFSET_SELF_IPI / 4]; + vlapic_self_ipi_handler(vlapic, vector); + return (HANDLED); + } else + return (UNHANDLED); + } + + switch (offset) { + case APIC_OFFSET_ID: + vlapic_id_write_handler(vlapic); + break; + case APIC_OFFSET_LDR: + vlapic_ldr_write_handler(vlapic); + break; + case APIC_OFFSET_DFR: + vlapic_dfr_write_handler(vlapic); + break; + case APIC_OFFSET_SVR: + vlapic_svr_write_handler(vlapic); + break; + case APIC_OFFSET_ESR: + vlapic_esr_write_handler(vlapic); + break; + case APIC_OFFSET_ICR_LOW: + retu = false; + error = vlapic_icrlo_write_handler(vlapic, &retu); + if (error != 0 || retu) + handled = UNHANDLED; + break; + case APIC_OFFSET_CMCI_LVT: + case APIC_OFFSET_TIMER_LVT: + case APIC_OFFSET_THERM_LVT: + case APIC_OFFSET_PERF_LVT: + case APIC_OFFSET_LINT0_LVT: + case APIC_OFFSET_LINT1_LVT: + case APIC_OFFSET_ERROR_LVT: + vlapic_lvt_write_handler(vlapic, ((uint32_t) offset)); + break; + case APIC_OFFSET_TIMER_ICR: + vlapic_icrtmr_write_handler(vlapic); + break; + case APIC_OFFSET_TIMER_DCR: + vlapic_dcr_write_handler(vlapic); + break; + default: + handled = UNHANDLED; + break; + } + return (handled); +} + +static bool +apic_access_fault(struct vmx *vmx, int vcpuid, uint64_t gpa) +{ + + if (apic_access_virtualization(vmx, vcpuid) && + (gpa >= DEFAULT_APIC_BASE && gpa < DEFAULT_APIC_BASE + XHYVE_PAGE_SIZE)) + return (true); + else + return (false); +} + +static int +vmx_handle_apic_access(struct vmx *vmx, int vcpuid, struct vm_exit *vmexit) +{ + uint64_t qual; + int access_type, offset, allowed; + + if (!apic_access_virtualization(vmx, vcpuid)) + return (UNHANDLED); + + qual = vmexit->u.vmx.exit_qualification; + access_type = APIC_ACCESS_TYPE(qual); + offset = APIC_ACCESS_OFFSET(qual); + + allowed = 0; + if (access_type == 0) { + /* + * Read data access to the following registers is expected. + */ + switch (offset) { + case APIC_OFFSET_APR: + case APIC_OFFSET_PPR: + case APIC_OFFSET_RRR: + case APIC_OFFSET_CMCI_LVT: + case APIC_OFFSET_TIMER_CCR: + allowed = 1; + break; + default: + break; + } + } else if (access_type == 1) { + /* + * Write data access to the following registers is expected. + */ + switch (offset) { + case APIC_OFFSET_VER: + case APIC_OFFSET_APR: + case APIC_OFFSET_PPR: + case APIC_OFFSET_RRR: + case APIC_OFFSET_ISR0: + case APIC_OFFSET_ISR1: + case APIC_OFFSET_ISR2: + case APIC_OFFSET_ISR3: + case APIC_OFFSET_ISR4: + case APIC_OFFSET_ISR5: + case APIC_OFFSET_ISR6: + case APIC_OFFSET_ISR7: + case APIC_OFFSET_TMR0: + case APIC_OFFSET_TMR1: + case APIC_OFFSET_TMR2: + case APIC_OFFSET_TMR3: + case APIC_OFFSET_TMR4: + case APIC_OFFSET_TMR5: + case APIC_OFFSET_TMR6: + case APIC_OFFSET_TMR7: + case APIC_OFFSET_IRR0: + case APIC_OFFSET_IRR1: + case APIC_OFFSET_IRR2: + case APIC_OFFSET_IRR3: + case APIC_OFFSET_IRR4: + case APIC_OFFSET_IRR5: + case APIC_OFFSET_IRR6: + case APIC_OFFSET_IRR7: + case APIC_OFFSET_CMCI_LVT: + case APIC_OFFSET_TIMER_CCR: + allowed = 1; + break; + default: + break; + } + } + + if (allowed) { + vmexit_inst_emul(vmexit, DEFAULT_APIC_BASE + ((uint32_t) offset), + VIE_INVALID_GLA, vcpuid); + } + + /* + * Regardless of whether the APIC-access is allowed this handler + * always returns UNHANDLED: + * - if the access is allowed then it is handled by emulating the + * instruction that caused the VM-exit (outside the critical section) + * - if the access is not allowed then it will be converted to an + * exitcode of VM_EXITCODE_VMX and will be dealt with in userland. + */ + return (UNHANDLED); +} + +static enum task_switch_reason +vmx_task_switch_reason(uint64_t qual) +{ + int reason; + + reason = (qual >> 30) & 0x3; + switch (reason) { + case 0: + return (TSR_CALL); + case 1: + return (TSR_IRET); + case 2: + return (TSR_JMP); + case 3: + return (TSR_IDT_GATE); + default: + xhyve_abort("%s: invalid reason %d", __func__, reason); + } +} + +static int +emulate_wrmsr(struct vmx *vmx, int vcpuid, u_int num, uint64_t val, bool *retu) +{ + int error; + + if (lapic_msr(num)) + error = lapic_wrmsr(vmx->vm, vcpuid, num, val, retu); + else + error = vmx_wrmsr(vmx, vcpuid, num, val); + + return (error); +} + +static int +emulate_rdmsr(struct vmx *vmx, int vcpuid, u_int num, bool *retu) +{ + uint64_t result; + uint32_t eax, edx; + int error; + + if (lapic_msr(num)) + error = lapic_rdmsr(vmx->vm, vcpuid, num, &result, retu); + else + error = vmx_rdmsr(vmx, vcpuid, num, &result); + + if (error == 0) { + eax = (uint32_t) result; + reg_write(vcpuid, HV_X86_RAX, eax); + edx = (uint32_t) (result >> 32); + reg_write(vcpuid, HV_X86_RDX, edx); + } + + return (error); +} + +static int +vmx_exit_process(struct vmx *vmx, int vcpu, struct vm_exit *vmexit) +{ + int error, errcode, errcode_valid, handled, in; + struct vlapic *vlapic; + struct vm_inout_str *vis; + struct vm_task_switch *ts; + uint32_t eax, ecx, edx, idtvec_info, idtvec_err, intr_info, inst_info; + uint32_t intr_type, intr_vec, reason; + uint64_t exitintinfo, qual, gpa; + bool retu; + + CTASSERT((PINBASED_CTLS_ONE_SETTING & PINBASED_VIRTUAL_NMI) != 0); + CTASSERT((PINBASED_CTLS_ONE_SETTING & PINBASED_NMI_EXITING) != 0); + + handled = UNHANDLED; + + qual = vmexit->u.vmx.exit_qualification; + reason = vmexit->u.vmx.exit_reason; + vmexit->exitcode = VM_EXITCODE_BOGUS; + + vmm_stat_incr(vmx->vm, vcpu, VMEXIT_COUNT, 1); + + /* + * VM exits that can be triggered during event delivery need to + * be handled specially by re-injecting the event if the IDT + * vectoring information field's valid bit is set. + * + * See "Information for VM Exits During Event Delivery" in Intel SDM + * for details. + */ + idtvec_info = (uint32_t) vmcs_idt_vectoring_info(vcpu); + if (idtvec_info & VMCS_IDT_VEC_VALID) { + idtvec_info &= ~(1u << 12); /* clear undefined bit */ + exitintinfo = idtvec_info; + if (idtvec_info & VMCS_IDT_VEC_ERRCODE_VALID) { + idtvec_err = (uint32_t) vmcs_idt_vectoring_err(vcpu); + exitintinfo |= (uint64_t)idtvec_err << 32; + } + error = vm_exit_intinfo(vmx->vm, vcpu, exitintinfo); + KASSERT(error == 0, ("%s: vm_set_intinfo error %d", + __func__, error)); + + /* + * If 'virtual NMIs' are being used and the VM-exit + * happened while injecting an NMI during the previous + * VM-entry, then clear "blocking by NMI" in the + * Guest Interruptibility-State so the NMI can be + * reinjected on the subsequent VM-entry. + * + * However, if the NMI was being delivered through a task + * gate, then the new task must start execution with NMIs + * blocked so don't clear NMI blocking in this case. + */ + intr_type = idtvec_info & VMCS_INTR_T_MASK; + if (intr_type == VMCS_INTR_T_NMI) { + if (reason != EXIT_REASON_TASK_SWITCH) + vmx_clear_nmi_blocking(vmx, vcpu); + else + vmx_assert_nmi_blocking(vcpu); + } + + /* + * Update VM-entry instruction length if the event being + * delivered was a software interrupt or software exception. + */ + if (intr_type == VMCS_INTR_T_SWINTR || + intr_type == VMCS_INTR_T_PRIV_SWEXCEPTION || + intr_type == VMCS_INTR_T_SWEXCEPTION) { + vmcs_write(vcpu, VMCS_ENTRY_INST_LENGTH, + ((uint64_t) vmexit->inst_length)); + } + } + + switch (reason) { + case EXIT_REASON_TASK_SWITCH: + ts = &vmexit->u.task_switch; + ts->tsssel = qual & 0xffff; + ts->reason = vmx_task_switch_reason(qual); + ts->ext = 0; + ts->errcode_valid = 0; + vmx_paging_info(&ts->paging, vcpu); + /* + * If the task switch was due to a CALL, JMP, IRET, software + * interrupt (INT n) or software exception (INT3, INTO), + * then the saved %rip references the instruction that caused + * the task switch. The instruction length field in the VMCS + * is valid in this case. + * + * In all other cases (e.g., NMI, hardware exception) the + * saved %rip is one that would have been saved in the old TSS + * had the task switch completed normally so the instruction + * length field is not needed in this case and is explicitly + * set to 0. + */ + if (ts->reason == TSR_IDT_GATE) { + KASSERT(idtvec_info & VMCS_IDT_VEC_VALID, + ("invalid idtvec_info %#x for IDT task switch", + idtvec_info)); + intr_type = idtvec_info & VMCS_INTR_T_MASK; + if (intr_type != VMCS_INTR_T_SWINTR && + intr_type != VMCS_INTR_T_SWEXCEPTION && + intr_type != VMCS_INTR_T_PRIV_SWEXCEPTION) { + /* Task switch triggered by external event */ + ts->ext = 1; + vmexit->inst_length = 0; + if (idtvec_info & VMCS_IDT_VEC_ERRCODE_VALID) { + ts->errcode_valid = 1; + ts->errcode = (uint32_t) vmcs_idt_vectoring_err(vcpu); + } + } + } + vmexit->exitcode = VM_EXITCODE_TASK_SWITCH; + VCPU_CTR4(vmx->vm, vcpu, "task switch reason %d, tss 0x%04x, " + "%s errcode 0x%016llx", ts->reason, ts->tsssel, + ts->ext ? "external" : "internal", + ((uint64_t)ts->errcode << 32) | ((uint64_t) ts->errcode_valid)); + break; + case EXIT_REASON_CR_ACCESS: + vmm_stat_incr(vmx->vm, vcpu, VMEXIT_CR_ACCESS, 1); + switch (qual & 0xf) { + case 0: + handled = vmx_emulate_cr0_access(vmx->vm, vcpu, qual); + break; + case 4: + handled = vmx_emulate_cr4_access(vcpu, qual); + break; + case 8: + handled = vmx_emulate_cr8_access(vmx, vcpu, qual); + break; + } + break; + case EXIT_REASON_RDMSR: + vmm_stat_incr(vmx->vm, vcpu, VMEXIT_RDMSR, 1); + retu = false; + ecx = (uint32_t) reg_read(vcpu, HV_X86_RCX); + VCPU_CTR1(vmx->vm, vcpu, "rdmsr 0x%08x", ecx); + // printf("EXIT_REASON_RDMSR 0x%08x\n", ecx); + error = emulate_rdmsr(vmx, vcpu, ecx, &retu); + if (error) { + vmexit->exitcode = VM_EXITCODE_RDMSR; + vmexit->u.msr.code = ecx; + } else if (!retu) { + handled = HANDLED; + } else { + /* Return to userspace with a valid exitcode */ + KASSERT(vmexit->exitcode != VM_EXITCODE_BOGUS, + ("emulate_rdmsr retu with bogus exitcode")); + } + break; + case EXIT_REASON_WRMSR: + vmm_stat_incr(vmx->vm, vcpu, VMEXIT_WRMSR, 1); + retu = false; + eax = (uint32_t) reg_read(vcpu, HV_X86_RAX); + ecx = (uint32_t) reg_read(vcpu, HV_X86_RCX); + edx = (uint32_t) reg_read(vcpu, HV_X86_RDX); + VCPU_CTR2(vmx->vm, vcpu, "wrmsr 0x%08x value 0x%016llx", + ecx, (uint64_t)edx << 32 | eax); + // printf("EXIT_REASON_WRMSR 0x%08x value 0x%016llx\n", + // ecx, (uint64_t)edx << 32 | eax); + error = emulate_wrmsr(vmx, vcpu, ecx, + (uint64_t)edx << 32 | eax, &retu); + if (error) { + vmexit->exitcode = VM_EXITCODE_WRMSR; + vmexit->u.msr.code = ecx; + vmexit->u.msr.wval = (uint64_t)edx << 32 | eax; + } else if (!retu) { + handled = HANDLED; + } else { + /* Return to userspace with a valid exitcode */ + KASSERT(vmexit->exitcode != VM_EXITCODE_BOGUS, + ("emulate_wrmsr retu with bogus exitcode")); + } + break; + case EXIT_REASON_HLT: + vmm_stat_incr(vmx->vm, vcpu, VMEXIT_HLT, 1); + vmexit->exitcode = VM_EXITCODE_HLT; + vmexit->u.hlt.rflags = vmcs_read(vcpu, VMCS_GUEST_RFLAGS); + break; + case EXIT_REASON_MTF: + vmm_stat_incr(vmx->vm, vcpu, VMEXIT_MTRAP, 1); + vmexit->exitcode = VM_EXITCODE_MTRAP; + vmexit->inst_length = 0; + break; + case EXIT_REASON_PAUSE: + vmm_stat_incr(vmx->vm, vcpu, VMEXIT_PAUSE, 1); + vmexit->exitcode = VM_EXITCODE_PAUSE; + break; + case EXIT_REASON_INTR_WINDOW: + vmm_stat_incr(vmx->vm, vcpu, VMEXIT_INTR_WINDOW, 1); + vmx_clear_int_window_exiting(vmx, vcpu); + return (1); + case EXIT_REASON_EXT_INTR: + /* + * External interrupts serve only to cause VM exits and allow + * the host interrupt handler to run. + * + * If this external interrupt triggers a virtual interrupt + * to a VM, then that state will be recorded by the + * host interrupt handler in the VM's softc. We will inject + * this virtual interrupt during the subsequent VM enter. + */ + intr_info = (uint32_t) vmcs_read(vcpu, VMCS_EXIT_INTR_INFO); + + /* + * XXX: Ignore this exit if VMCS_INTR_VALID is not set. + * This appears to be a bug in VMware Fusion? + */ + if (!(intr_info & VMCS_INTR_VALID)) + return (1); + KASSERT((intr_info & VMCS_INTR_VALID) != 0 && + (intr_info & VMCS_INTR_T_MASK) == VMCS_INTR_T_HWINTR, + ("VM exit interruption info invalid: %#x", intr_info)); + + /* + * This is special. We want to treat this as an 'handled' + * VM-exit but not increment the instruction pointer. + */ + vmm_stat_incr(vmx->vm, vcpu, VMEXIT_EXTINT, 1); + return (1); + case EXIT_REASON_NMI_WINDOW: + /* Exit to allow the pending virtual NMI to be injected */ + if (vm_nmi_pending(vmx->vm, vcpu)) + vmx_inject_nmi(vmx, vcpu); + vmx_clear_nmi_window_exiting(vmx, vcpu); + vmm_stat_incr(vmx->vm, vcpu, VMEXIT_NMI_WINDOW, 1); + return (1); + case EXIT_REASON_INOUT: + vmm_stat_incr(vmx->vm, vcpu, VMEXIT_INOUT, 1); + vmexit->exitcode = VM_EXITCODE_INOUT; + vmexit->u.inout.bytes = (qual & 0x7) + 1; + vmexit->u.inout.in = in = (qual & 0x8) ? 1 : 0; + vmexit->u.inout.string = (qual & 0x10) ? 1 : 0; + vmexit->u.inout.rep = (qual & 0x20) ? 1 : 0; + vmexit->u.inout.port = (uint16_t)(qual >> 16); + vmexit->u.inout.eax = (uint32_t) reg_read(vcpu, HV_X86_RAX); + // if ((vmexit->u.inout.port == 0x0020) || + // (vmexit->u.inout.port == 0x0021) || + // (vmexit->u.inout.port == 0x00a0) || + // (vmexit->u.inout.port == 0x00a1)) + // { + // printf("EXIT_REASON_INOUT port 0x%03x in %d\n", + // vmexit->u.inout.port, vmexit->u.inout.in); + // } + if (vmexit->u.inout.string) { + inst_info = (uint32_t) vmcs_read(vcpu, VMCS_EXIT_INSTRUCTION_INFO); + vmexit->exitcode = VM_EXITCODE_INOUT_STR; + vis = &vmexit->u.inout_str; + vmx_paging_info(&vis->paging, vcpu); + vis->rflags = vmcs_read(vcpu, VMCS_GUEST_RFLAGS); + vis->cr0 = vmcs_read(vcpu, VMCS_GUEST_CR0); + vis->index = inout_str_index(vmx, vcpu, in); + vis->count = inout_str_count(vmx, vcpu, vis->inout.rep); + vis->addrsize = inout_str_addrsize(inst_info); + inout_str_seginfo(vmx, vcpu, inst_info, in, vis); + } + break; + case EXIT_REASON_CPUID: + vmm_stat_incr(vmx->vm, vcpu, VMEXIT_CPUID, 1); + handled = vmx_handle_cpuid(vmx->vm, vcpu); + break; + case EXIT_REASON_EXCEPTION: + vmm_stat_incr(vmx->vm, vcpu, VMEXIT_EXCEPTION, 1); + intr_info = (uint32_t) vmcs_read(vcpu, VMCS_EXIT_INTR_INFO); + KASSERT((intr_info & VMCS_INTR_VALID) != 0, + ("VM exit interruption info invalid: %#x", intr_info)); + + intr_vec = intr_info & 0xff; + intr_type = intr_info & VMCS_INTR_T_MASK; + + /* + * If Virtual NMIs control is 1 and the VM-exit is due to a + * fault encountered during the execution of IRET then we must + * restore the state of "virtual-NMI blocking" before resuming + * the guest. + * + * See "Resuming Guest Software after Handling an Exception". + * See "Information for VM Exits Due to Vectored Events". + */ + if ((idtvec_info & VMCS_IDT_VEC_VALID) == 0 && + (intr_vec != IDT_DF) && + (intr_info & EXIT_QUAL_NMIUDTI) != 0) + vmx_restore_nmi_blocking(vmx, vcpu); + + /* + * The NMI has already been handled in vmx_exit_handle_nmi(). + */ + if (intr_type == VMCS_INTR_T_NMI) + return (1); + + if (intr_vec == IDT_PF) { + reg_write(vcpu, HV_X86_CR2, qual); + } + + /* + * Software exceptions exhibit trap-like behavior. This in + * turn requires populating the VM-entry instruction length + * so that the %rip in the trap frame is past the INT3/INTO + * instruction. + */ + if (intr_type == VMCS_INTR_T_SWEXCEPTION) + vmcs_write(vcpu, VMCS_ENTRY_INST_LENGTH, + ((uint64_t) vmexit->inst_length)); + + /* Reflect all other exceptions back into the guest */ + errcode_valid = errcode = 0; + if (intr_info & VMCS_INTR_DEL_ERRCODE) { + errcode_valid = 1; + errcode = (int) vmcs_read(vcpu, VMCS_EXIT_INTR_ERRCODE); + } + VCPU_CTR2(vmx->vm, vcpu, "Reflecting exception %d/%#x into " + "the guest", intr_vec, errcode); + error = vm_inject_exception(vmx->vm, vcpu, ((int) intr_vec), + errcode_valid, ((uint32_t) errcode), 0); + KASSERT(error == 0, ("%s: vm_inject_exception error %d", + __func__, error)); + return (1); + + case EXIT_REASON_EPT_FAULT: + /* + * If 'gpa' lies within the address space allocated to + * memory then this must be a nested page fault otherwise + * this must be an instruction that accesses MMIO space. + */ + gpa = vmcs_gpa(vcpu); + if (vm_mem_allocated(vmx->vm, gpa) || + apic_access_fault(vmx, vcpu, gpa)) { + vmexit->exitcode = VM_EXITCODE_PAGING; + vmexit->inst_length = 0; + vmexit->u.paging.gpa = gpa; + vmexit->u.paging.fault_type = ept_fault_type(qual); + vmm_stat_incr(vmx->vm, vcpu, VMEXIT_NESTED_FAULT, 1); + } else if (ept_emulation_fault(qual)) { + vmexit_inst_emul(vmexit, gpa, vmcs_gla(vcpu), vcpu); + vmm_stat_incr(vmx->vm, vcpu, VMEXIT_INST_EMUL, 1); + } + /* + * If Virtual NMIs control is 1 and the VM-exit is due to an + * EPT fault during the execution of IRET then we must restore + * the state of "virtual-NMI blocking" before resuming. + * + * See description of "NMI unblocking due to IRET" in + * "Exit Qualification for EPT Violations". + */ + if ((idtvec_info & VMCS_IDT_VEC_VALID) == 0 && + (qual & EXIT_QUAL_NMIUDTI) != 0) + vmx_restore_nmi_blocking(vmx, vcpu); + break; + case EXIT_REASON_VIRTUALIZED_EOI: + vmexit->exitcode = VM_EXITCODE_IOAPIC_EOI; + vmexit->u.ioapic_eoi.vector = qual & 0xFF; + vmexit->inst_length = 0; /* trap-like */ + break; + case EXIT_REASON_APIC_ACCESS: + handled = vmx_handle_apic_access(vmx, vcpu, vmexit); + break; + case EXIT_REASON_APIC_WRITE: + /* + * APIC-write VM exit is trap-like so the %rip is already + * pointing to the next instruction. + */ + vmexit->inst_length = 0; + vlapic = vm_lapic(vmx->vm, vcpu); + handled = vmx_handle_apic_write(vmx, vcpu, vlapic, qual); + break; + case EXIT_REASON_XSETBV: + handled = vmx_emulate_xsetbv(vmx, vcpu); + break; + case EXIT_REASON_MONITOR: + vmexit->exitcode = VM_EXITCODE_MONITOR; + break; + case EXIT_REASON_MWAIT: + vmexit->exitcode = VM_EXITCODE_MWAIT; + break; + default: + vmm_stat_incr(vmx->vm, vcpu, VMEXIT_UNKNOWN, 1); + break; + } + + if (handled) { + /* + * It is possible that control is returned to userland + * even though we were able to handle the VM exit in the + * kernel. + * + * In such a case we want to make sure that the userland + * restarts guest execution at the instruction *after* + * the one we just processed. Therefore we update the + * guest rip in the VMCS and in 'vmexit'. + */ + vmexit->rip += (uint64_t) vmexit->inst_length; + vmexit->inst_length = 0; + vmcs_write(vcpu, VMCS_GUEST_RIP, vmexit->rip); + } else { + if (vmexit->exitcode == VM_EXITCODE_BOGUS) { + /* + * If this VM exit was not claimed by anybody then + * treat it as a generic VMX exit. + */ + vmexit->exitcode = VM_EXITCODE_VMX; + vmexit->u.vmx.status = VM_SUCCESS; + vmexit->u.vmx.inst_type = 0; + vmexit->u.vmx.inst_error = 0; + } else { + /* + * The exitcode and collateral have been populated. + * The VM exit will be processed further in userland. + */ + } + } + return (handled); +} + +static int +vmx_run(void *arg, int vcpu, register_t rip, void *rendezvous_cookie, + void *suspend_cookie) +{ + int handled; + struct vmx *vmx; + struct vm *vm; + struct vm_exit *vmexit; + struct vlapic *vlapic; + uint32_t exit_reason; + hv_return_t hvr; + + vmx = arg; + vm = vmx->vm; + vlapic = vm_lapic(vm, vcpu); + vmexit = vm_exitinfo(vm, vcpu); + + vmcs_write(vcpu, VMCS_GUEST_RIP, ((uint64_t) rip)); + + do { + KASSERT(vmcs_guest_rip(vcpu) == ((uint64_t) rip), + ("%s: vmcs guest rip mismatch %#llx/%#llx", + __func__, vmcs_guest_rip(vcpu), ((uint64_t) rip))); + + handled = UNHANDLED; + + vmx_inject_interrupts(vmx, vcpu, vlapic, ((uint64_t) rip)); + + /* + * Check for vcpu suspension after injecting events because + * vmx_inject_interrupts() can suspend the vcpu due to a + * triple fault. + */ + if (vcpu_suspended(suspend_cookie)) { + vm_exit_suspended(vmx->vm, vcpu, ((uint64_t) rip)); + break; + } + + if (vcpu_rendezvous_pending(rendezvous_cookie)) { + vm_exit_rendezvous(vmx->vm, vcpu, ((uint64_t) rip)); + break; + } + + vmx_run_trace(vmx, vcpu); + hvr = hv_vcpu_run((hv_vcpuid_t) vcpu); + /* Collect some information for VM exit processing */ + rip = (register_t) vmcs_guest_rip(vcpu); + vmexit->rip = (uint64_t) rip; + vmexit->inst_length = (int) vmexit_instruction_length(vcpu); + vmexit->u.vmx.exit_reason = exit_reason = vmcs_exit_reason(vcpu); + vmexit->u.vmx.exit_qualification = vmcs_exit_qualification(vcpu); + /* Update 'nextrip' */ + vmx->state[vcpu].nextrip = (uint64_t) rip; + if (hvr == HV_SUCCESS) { + handled = vmx_exit_process(vmx, vcpu, vmexit); + } else { + hvdump(vcpu); + xhyve_abort("vmentry error\n"); + } + vmx_exit_trace(vmx, vcpu, ((uint64_t) rip), exit_reason, handled); + rip = (register_t) vmexit->rip; + } while (handled); + + /* + * If a VM exit has been handled then the exitcode must be BOGUS + * If a VM exit is not handled then the exitcode must not be BOGUS + */ + if ((handled && vmexit->exitcode != VM_EXITCODE_BOGUS) || + (!handled && vmexit->exitcode == VM_EXITCODE_BOGUS)) { + xhyve_abort("Mismatch between handled (%d) and exitcode (%d)", + handled, vmexit->exitcode); + } + + if (!handled) + vmm_stat_incr(vm, vcpu, VMEXIT_USERSPACE, 1); + + VCPU_CTR1(vm, vcpu, "returning from vmx_run: exitcode %d", + vmexit->exitcode); + + return (0); +} + +static void +vmx_vm_cleanup(void *arg) +{ + struct vmx *vmx = arg; + + free(vmx); + + return; +} + +static void +vmx_vcpu_cleanup(void *arg, int vcpuid) { + if (arg || vcpuid) xhyve_abort("vmx_vcpu_cleanup\n"); +} + + +static int +vmx_get_intr_shadow(int vcpu, uint64_t *retval) +{ + uint64_t gi; + int error; + + error = vmcs_getreg(vcpu, VMCS_IDENT(VMCS_GUEST_INTERRUPTIBILITY), &gi); + *retval = (gi & HWINTR_BLOCKING) ? 1 : 0; + return (error); +} + +static int +vmx_modify_intr_shadow(struct vmx *vmx, int vcpu, uint64_t val) +{ + uint64_t gi; + int error, ident; + + /* + * Forcing the vcpu into an interrupt shadow is not supported. + */ + if (val) { + error = EINVAL; + goto done; + } + + ident = VMCS_IDENT(VMCS_GUEST_INTERRUPTIBILITY); + error = vmcs_getreg(vcpu, ident, &gi); + if (error == 0) { + gi &= ~HWINTR_BLOCKING; + error = vmcs_setreg(vcpu, ident, gi); + } +done: + VCPU_CTR2(vmx->vm, vcpu, "Setting intr_shadow to %#llx %s", val, + error ? "failed" : "succeeded"); + return (error); +} + +static int +vmx_shadow_reg(int reg) +{ + int shreg; + + shreg = -1; + + switch (reg) { + case VM_REG_GUEST_CR0: + shreg = VMCS_CR0_SHADOW; + break; + case VM_REG_GUEST_CR4: + shreg = VMCS_CR4_SHADOW; + break; + default: + break; + } + + return (shreg); +} + +static const hv_x86_reg_t hvregs[] = { + HV_X86_RAX, + HV_X86_RBX, + HV_X86_RCX, + HV_X86_RDX, + HV_X86_RSI, + HV_X86_RDI, + HV_X86_RBP, + HV_X86_R8, + HV_X86_R9, + HV_X86_R10, + HV_X86_R11, + HV_X86_R12, + HV_X86_R13, + HV_X86_R14, + HV_X86_R15, + HV_X86_REGISTERS_MAX, + HV_X86_REGISTERS_MAX, + HV_X86_REGISTERS_MAX, + HV_X86_REGISTERS_MAX, + HV_X86_REGISTERS_MAX, + HV_X86_REGISTERS_MAX, + HV_X86_REGISTERS_MAX, + HV_X86_REGISTERS_MAX, + HV_X86_REGISTERS_MAX, + HV_X86_REGISTERS_MAX, + HV_X86_REGISTERS_MAX, + HV_X86_REGISTERS_MAX, + HV_X86_REGISTERS_MAX, + HV_X86_REGISTERS_MAX, + HV_X86_REGISTERS_MAX, + HV_X86_REGISTERS_MAX, + HV_X86_REGISTERS_MAX, + HV_X86_REGISTERS_MAX, + HV_X86_CR2, + HV_X86_REGISTERS_MAX, + HV_X86_REGISTERS_MAX, + HV_X86_REGISTERS_MAX, + HV_X86_REGISTERS_MAX, + HV_X86_REGISTERS_MAX +}; + +static int +vmx_getreg(UNUSED void *arg, int vcpu, int reg, uint64_t *retval) +{ + hv_x86_reg_t hvreg; + + if (reg == VM_REG_GUEST_INTR_SHADOW) + return (vmx_get_intr_shadow(vcpu, retval)); + + hvreg = hvregs[reg]; + if (hvreg != HV_X86_REGISTERS_MAX) { + *retval = reg_read(vcpu, hvreg); + return (0); + } + + return (vmcs_getreg(vcpu, reg, retval)); +} + +static int +vmx_setreg(void *arg, int vcpu, int reg, uint64_t val) +{ + int error, shadow; + uint64_t ctls; + hv_x86_reg_t hvreg; + struct vmx *vmx = arg; + + if (reg == VM_REG_GUEST_INTR_SHADOW) + return (vmx_modify_intr_shadow(vmx, vcpu, val)); + + hvreg = hvregs[reg]; + if (hvreg != HV_X86_REGISTERS_MAX) { + reg_write(vcpu, hvreg, val); + return (0); + } + + error = vmcs_setreg(vcpu, reg, val); + + if (error == 0) { + /* + * If the "load EFER" VM-entry control is 1 then the + * value of EFER.LMA must be identical to "IA-32e mode guest" + * bit in the VM-entry control. + */ + if ((entry_ctls & VM_ENTRY_LOAD_EFER) != 0 && + (reg == VM_REG_GUEST_EFER)) { + vmcs_getreg(vcpu, VMCS_IDENT(VMCS_ENTRY_CTLS), &ctls); + if (val & EFER_LMA) + ctls |= VM_ENTRY_GUEST_LMA; + else + ctls &= ~VM_ENTRY_GUEST_LMA; + vmcs_setreg(vcpu, VMCS_IDENT(VMCS_ENTRY_CTLS), ctls); + } + + shadow = vmx_shadow_reg(reg); + if (shadow > 0) { + /* + * Store the unmodified value in the shadow + */ + error = vmcs_setreg(vcpu, VMCS_IDENT(shadow), val); + } + + if (reg == VM_REG_GUEST_CR3) { + /* + * Invalidate the guest vcpu's TLB mappings to emulate + * the behavior of updating %cr3. + */ + hv_vcpu_invalidate_tlb((hv_vcpuid_t) vcpu); + } + } + + return (error); +} + +static int +vmx_getdesc(UNUSED void *arg, int vcpu, int reg, struct seg_desc *desc) +{ + return (vmcs_getdesc(vcpu, reg, desc)); +} + +static int +vmx_setdesc(UNUSED void *arg, int vcpu, int reg, struct seg_desc *desc) +{ + return (vmcs_setdesc(vcpu, reg, desc)); +} + +static int +vmx_getcap(void *arg, int vcpu, int type, int *retval) +{ + struct vmx *vmx = arg; + int vcap; + int ret; + + ret = ENOENT; + + vcap = vmx->cap[vcpu].set; + + switch (type) { + case VM_CAP_HALT_EXIT: + if (cap_halt_exit) + ret = 0; + break; + case VM_CAP_PAUSE_EXIT: + if (cap_pause_exit) + ret = 0; + break; + case VM_CAP_MTRAP_EXIT: + if (cap_monitor_trap) + ret = 0; + break; + default: + break; + } + + if (ret == 0) + *retval = (vcap & (1 << type)) ? 1 : 0; + + return (ret); +} + +static int +vmx_setcap(void *arg, int vcpu, int type, int val) +{ + struct vmx *vmx = arg; + uint32_t baseval; + uint32_t *pptr; + uint32_t reg; + uint32_t flag; + int retval; + + retval = ENOENT; + pptr = NULL; + baseval = 0; + reg = 0; + flag = 0; + + switch (type) { + case VM_CAP_HALT_EXIT: + if (cap_halt_exit) { + retval = 0; + pptr = &vmx->cap[vcpu].proc_ctls; + baseval = *pptr; + flag = PROCBASED_HLT_EXITING; + reg = VMCS_PRI_PROC_BASED_CTLS; + } + break; + case VM_CAP_MTRAP_EXIT: + if (cap_monitor_trap) { + retval = 0; + pptr = &vmx->cap[vcpu].proc_ctls; + baseval = *pptr; + flag = PROCBASED_MTF; + reg = VMCS_PRI_PROC_BASED_CTLS; + } + break; + case VM_CAP_PAUSE_EXIT: + if (cap_pause_exit) { + retval = 0; + pptr = &vmx->cap[vcpu].proc_ctls; + baseval = *pptr; + flag = PROCBASED_PAUSE_EXITING; + reg = VMCS_PRI_PROC_BASED_CTLS; + } + break; + default: + xhyve_abort("vmx_setcap\n"); + } + + if (retval == 0) { + if (val) { + baseval |= flag; + } else { + baseval &= ~flag; + } + + vmcs_write(vcpu, reg, baseval); + + /* + * Update optional stored flags, and record + * setting + */ + if (pptr != NULL) { + *pptr = baseval; + } + + if (val) { + vmx->cap[vcpu].set |= (1 << type); + } else { + vmx->cap[vcpu].set &= ~(1 << type); + } + + } + + return (retval); +} + +struct vlapic_vtx { + struct vlapic vlapic; + struct pir_desc *pir_desc; + struct vmx *vmx; +}; + +// #define VMX_CTR_PIR(vm, vcpuid, pir_desc, notify, vector, level, msg) \ +// do { \ +// VCPU_CTR2(vm, vcpuid, msg " assert %s-triggered vector %d", \ +// level ? "level" : "edge", vector); \ +// VCPU_CTR1(vm, vcpuid, msg " pir0 0x%016lx", pir_desc->pir[0]); \ +// VCPU_CTR1(vm, vcpuid, msg " pir1 0x%016lx", pir_desc->pir[1]); \ +// VCPU_CTR1(vm, vcpuid, msg " pir2 0x%016lx", pir_desc->pir[2]); \ +// VCPU_CTR1(vm, vcpuid, msg " pir3 0x%016lx", pir_desc->pir[3]); \ +// VCPU_CTR1(vm, vcpuid, msg " notify: %s", notify ? "yes" : "no");\ +// } while (0) + +// /* +// * vlapic->ops handlers that utilize the APICv hardware assist described in +// * Chapter 29 of the Intel SDM. +// */ +// static int +// vmx_set_intr_ready(struct vlapic *vlapic, int vector, bool level) +// { +// struct vlapic_vtx *vlapic_vtx; +// struct pir_desc *pir_desc; +// uint64_t mask; +// int idx, notify; + +// vlapic_vtx = (struct vlapic_vtx *)vlapic; +// pir_desc = vlapic_vtx->pir_desc; + +// /* +// * Keep track of interrupt requests in the PIR descriptor. This is +// * because the virtual APIC page pointed to by the VMCS cannot be +// * modified if the vcpu is running. +// */ +// idx = vector / 64; +// mask = 1UL << (vector % 64); +// atomic_set_long(&pir_desc->pir[idx], mask); +// notify = atomic_cmpset_long(&pir_desc->pending, 0, 1); + +// VMX_CTR_PIR(vlapic->vm, vlapic->vcpuid, pir_desc, notify, vector, +// level, "vmx_set_intr_ready"); +// return (notify); +// } + +// static int +// vmx_pending_intr(struct vlapic *vlapic, int *vecptr) +// { +// struct vlapic_vtx *vlapic_vtx; +// struct pir_desc *pir_desc; +// struct LAPIC *lapic; +// uint64_t pending, pirval; +// uint32_t ppr, vpr; +// int i; + +// /* +// * This function is only expected to be called from the 'HLT' exit +// * handler which does not care about the vector that is pending. +// */ +// KASSERT(vecptr == NULL, ("vmx_pending_intr: vecptr must be NULL")); + +// vlapic_vtx = (struct vlapic_vtx *)vlapic; +// pir_desc = vlapic_vtx->pir_desc; + +// pending = atomic_load_acq_long(&pir_desc->pending); +// if (!pending) +// return (0); /* common case */ + +// /* +// * If there is an interrupt pending then it will be recognized only +// * if its priority is greater than the processor priority. +// * +// * Special case: if the processor priority is zero then any pending +// * interrupt will be recognized. +// */ +// lapic = vlapic->apic_page; +// ppr = lapic->ppr & 0xf0; +// if (ppr == 0) +// return (1); + +// VCPU_CTR1(vlapic->vm, vlapic->vcpuid, "HLT with non-zero PPR %d", +// lapic->ppr); + +// for (i = 3; i >= 0; i--) { +// pirval = pir_desc->pir[i]; +// if (pirval != 0) { +// vpr = (i * 64 + flsl(pirval) - 1) & 0xf0; +// return (vpr > ppr); +// } +// } +// return (0); +// } + +// static void +// vmx_intr_accepted(struct vlapic *vlapic, int vector) +// { + +// xhyve_abort("vmx_intr_accepted: not expected to be called"); +// } + +// static void +// vmx_set_tmr(struct vlapic *vlapic, int vector, bool level) +// { +// struct vlapic_vtx *vlapic_vtx; +// struct vmx *vmx; +// struct vmcs *vmcs; +// uint64_t mask, val; + +// KASSERT(vector >= 0 && vector <= 255, ("invalid vector %d", vector)); +// KASSERT(!vcpu_is_running(vlapic->vm, vlapic->vcpuid, NULL), +// ("vmx_set_tmr: vcpu cannot be running")); + +// vlapic_vtx = (struct vlapic_vtx *)vlapic; +// vmx = vlapic_vtx->vmx; +// vmcs = &vmx->vmcs[vlapic->vcpuid]; +// mask = 1UL << (vector % 64); + +// VMPTRLD(vmcs); +// val = vmcs_read(VMCS_EOI_EXIT(vector)); +// if (level) +// val |= mask; +// else +// val &= ~mask; +// vmcs_write(VMCS_EOI_EXIT(vector), val); +// VMCLEAR(vmcs); +// } + +// static void +// vmx_enable_x2apic_mode(struct vlapic *vlapic) +// { +// struct vmx *vmx; +// struct vmcs *vmcs; +// uint32_t proc_ctls2; +// int vcpuid, error; + +// vcpuid = vlapic->vcpuid; +// vmx = ((struct vlapic_vtx *)vlapic)->vmx; +// vmcs = &vmx->vmcs[vcpuid]; + +// proc_ctls2 = vmx->cap[vcpuid].proc_ctls2; +// KASSERT((proc_ctls2 & PROCBASED2_VIRTUALIZE_APIC_ACCESSES) != 0, +// ("%s: invalid proc_ctls2 %#x", __func__, proc_ctls2)); + +// proc_ctls2 &= ~PROCBASED2_VIRTUALIZE_APIC_ACCESSES; +// proc_ctls2 |= PROCBASED2_VIRTUALIZE_X2APIC_MODE; +// vmx->cap[vcpuid].proc_ctls2 = proc_ctls2; + +// VMPTRLD(vmcs); +// vmcs_write(VMCS_SEC_PROC_BASED_CTLS, proc_ctls2); +// VMCLEAR(vmcs); + +// if (vlapic->vcpuid == 0) { +// /* +// * The nested page table mappings are shared by all vcpus +// * so unmap the APIC access page just once. +// */ +// error = vm_unmap_mmio(vmx->vm, DEFAULT_APIC_BASE, PAGE_SIZE); +// KASSERT(error == 0, ("%s: vm_unmap_mmio error %d", +// __func__, error)); + +// /* +// * The MSR bitmap is shared by all vcpus so modify it only +// * once in the context of vcpu 0. +// */ +// error = vmx_allow_x2apic_msrs(vmx); +// KASSERT(error == 0, ("%s: vmx_allow_x2apic_msrs error %d", +// __func__, error)); +// } +// } + +static struct vlapic * +vmx_vlapic_init(void *arg, int vcpuid) +{ + struct vmx *vmx; + struct vlapic *vlapic; + struct vlapic_vtx *vlapic_vtx; + + vmx = arg; + + vlapic = malloc(sizeof(struct vlapic_vtx)); + assert(vlapic); + bzero(vlapic, sizeof(struct vlapic)); + vlapic->vm = vmx->vm; + vlapic->vcpuid = vcpuid; + vlapic->apic_page = (struct LAPIC *)&vmx->apic_page[vcpuid]; + + vlapic_vtx = (struct vlapic_vtx *)vlapic; + vlapic_vtx->vmx = vmx; + + vlapic_init(vlapic); + + return (vlapic); +} + +static void +vmx_vlapic_cleanup(UNUSED void *arg, struct vlapic *vlapic) +{ + vlapic_cleanup(vlapic); + free(vlapic); +} + +static void +vmx_vcpu_interrupt(int vcpu) { + hv_vcpuid_t hvvcpu; + + hvvcpu = (hv_vcpuid_t) vcpu; + + hv_vcpu_interrupt(&hvvcpu, 1); +} + +struct vmm_ops vmm_ops_intel = { + vmx_init, + vmx_cleanup, + vmx_vm_init, + vmx_vcpu_init, + vmx_run, + vmx_vm_cleanup, + vmx_vcpu_cleanup, + vmx_getreg, + vmx_setreg, + vmx_getdesc, + vmx_setdesc, + vmx_getcap, + vmx_setcap, + vmx_vlapic_init, + vmx_vlapic_cleanup, + vmx_vcpu_interrupt +}; diff --git a/src/vmm/intel/vmx_msr.c b/src/vmm/intel/vmx_msr.c new file mode 100644 index 0000000..9612bee --- /dev/null +++ b/src/vmm/intel/vmx_msr.c @@ -0,0 +1,353 @@ +/*- + * Copyright (c) 2011 NetApp, Inc. + * Copyright (c) 2015 xhyve developers + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY NETAPP, INC ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL NETAPP, INC OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static bool +vmx_ctl_allows_one_setting(uint64_t msr_val, int bitpos) +{ + if (msr_val & (1UL << (bitpos + 32))) + return (TRUE); + else + return (FALSE); +} + +static bool +vmx_ctl_allows_zero_setting(uint64_t msr_val, int bitpos) +{ + if ((msr_val & (1UL << bitpos)) == 0) + return (TRUE); + else + return (FALSE); +} + +int vmx_set_ctlreg(hv_vmx_capability_t cap_field, uint32_t ones_mask, + uint32_t zeros_mask, uint32_t *retval) +{ + int i; + uint64_t cap; + bool one_allowed, zero_allowed; + + /* We cannot ask the same bit to be set to both '1' and '0' */ + if ((ones_mask ^ zeros_mask) != (ones_mask | zeros_mask)) { + return EINVAL; + } + + if (hv_vmx_read_capability(cap_field, &cap)) { + return EINVAL; + } + + for (i = 0; i < 32; i++) { + one_allowed = vmx_ctl_allows_one_setting(cap, i); + zero_allowed = vmx_ctl_allows_zero_setting(cap, i); + + if (zero_allowed && !one_allowed) { + /* must be zero */ + if (ones_mask & (1 << i)) { + fprintf(stderr, + "vmx_set_ctlreg: cap_field: %d bit: %d must be zero\n", + cap_field, i); + return (EINVAL); + } + *retval &= ~(1 << i); + } else if (one_allowed && !zero_allowed) { + /* must be one */ + if (zeros_mask & (1 << i)) { + fprintf(stderr, + "vmx_set_ctlreg: cap_field: %d bit: %d must be one\n", + cap_field, i); + return (EINVAL); + } + *retval |= 1 << i; + } else { + /* don't care */ + if (zeros_mask & (1 << i)){ + *retval &= ~(1 << i); + } else if (ones_mask & (1 << i)) { + *retval |= 1 << i; + } else { + /* XXX: don't allow unspecified don't cares */ + fprintf(stderr, + "vmx_set_ctlreg: cap_field: %d bit: %d unspecified " + "don't care\n", cap_field, i); + return (EINVAL); + } + } + } + + return (0); +} + +static uint64_t misc_enable; +static uint64_t platform_info; +static uint64_t turbo_ratio_limit; + +static bool +pat_valid(uint64_t val) +{ + int i, pa; + + /* + * From Intel SDM: Table "Memory Types That Can Be Encoded With PAT" + * + * Extract PA0 through PA7 and validate that each one encodes a + * valid memory type. + */ + for (i = 0; i < 8; i++) { + pa = (val >> (i * 8)) & 0xff; + if (pa == 2 || pa == 3 || pa >= 8) + return (false); + } + return (true); +} + +void +vmx_msr_init(void) { + uint64_t bus_freq, tsc_freq, ratio; + size_t length; + int i; + + length = sizeof(uint64_t); + + if (sysctlbyname("machdep.tsc.frequency", &tsc_freq, &length, NULL, 0)) { + xhyve_abort("machdep.tsc.frequency\n"); + } + + if (sysctlbyname("hw.busfrequency", &bus_freq, &length, NULL, 0)) { + xhyve_abort("hw.busfrequency\n"); + } + + /* Initialize emulated MSRs */ + /* FIXME */ + misc_enable = 1; + /* + * Set mandatory bits + * 11: branch trace disabled + * 12: PEBS unavailable + * Clear unsupported features + * 16: SpeedStep enable + * 18: enable MONITOR FSM + */ + misc_enable |= (1u << 12) | (1u << 11); + misc_enable &= ~((1u << 18) | (1u << 16)); + + /* + * XXXtime + * The ratio should really be based on the virtual TSC frequency as + * opposed to the host TSC. + */ + ratio = (tsc_freq / bus_freq) & 0xff; + + /* + * The register definition is based on the micro-architecture + * but the following bits are always the same: + * [15:8] Maximum Non-Turbo Ratio + * [28] Programmable Ratio Limit for Turbo Mode + * [29] Programmable TDC-TDP Limit for Turbo Mode + * [47:40] Maximum Efficiency Ratio + * + * The other bits can be safely set to 0 on all + * micro-architectures up to Haswell. + */ + platform_info = (ratio << 8) | (ratio << 40); + + /* + * The number of valid bits in the MSR_TURBO_RATIO_LIMITx register is + * dependent on the maximum cores per package supported by the micro- + * architecture. For e.g., Westmere supports 6 cores per package and + * uses the low 48 bits. Sandybridge support 8 cores per package and + * uses up all 64 bits. + * + * However, the unused bits are reserved so we pretend that all bits + * in this MSR are valid. + */ + for (i = 0; i < 8; i++) { + turbo_ratio_limit = (turbo_ratio_limit << 8) | ratio; + } +} + +void +vmx_msr_guest_init(struct vmx *vmx, int vcpuid) +{ + uint64_t *guest_msrs; + + guest_msrs = vmx->guest_msrs[vcpuid]; + + + hv_vcpu_enable_native_msr(((hv_vcpuid_t) vcpuid), MSR_LSTAR, 1); + hv_vcpu_enable_native_msr(((hv_vcpuid_t) vcpuid), MSR_CSTAR, 1); + hv_vcpu_enable_native_msr(((hv_vcpuid_t) vcpuid), MSR_STAR, 1); + hv_vcpu_enable_native_msr(((hv_vcpuid_t) vcpuid), MSR_SF_MASK, 1); + hv_vcpu_enable_native_msr(((hv_vcpuid_t) vcpuid), MSR_KGSBASE, 1); + + /* + * Initialize guest IA32_PAT MSR with default value after reset. + */ + guest_msrs[IDX_MSR_PAT] = PAT_VALUE(0, PAT_WRITE_BACK) | + PAT_VALUE(1, PAT_WRITE_THROUGH) | + PAT_VALUE(2, PAT_UNCACHED) | + PAT_VALUE(3, PAT_UNCACHEABLE) | + PAT_VALUE(4, PAT_WRITE_BACK) | + PAT_VALUE(5, PAT_WRITE_THROUGH) | + PAT_VALUE(6, PAT_UNCACHED) | + PAT_VALUE(7, PAT_UNCACHEABLE); + + return; +} + +int +vmx_rdmsr(struct vmx *vmx, int vcpuid, u_int num, uint64_t *val) +{ + const uint64_t *guest_msrs; + int error; + + guest_msrs = vmx->guest_msrs[vcpuid]; + error = 0; + + switch (num) { + case MSR_EFER: + *val = vmcs_read(vcpuid, VMCS_GUEST_IA32_EFER); + break; + case MSR_MCG_CAP: + case MSR_MCG_STATUS: + *val = 0; + break; + case MSR_MTRRcap: + case MSR_MTRRdefType: + case MSR_MTRR4kBase: + case MSR_MTRR4kBase + 1: + case MSR_MTRR4kBase + 2: + case MSR_MTRR4kBase + 3: + case MSR_MTRR4kBase + 4: + case MSR_MTRR4kBase + 5: + case MSR_MTRR4kBase + 6: + case MSR_MTRR4kBase + 7: + case MSR_MTRR4kBase + 8: + case MSR_MTRR16kBase: + case MSR_MTRR16kBase + 1: + case MSR_MTRR64kBase: + *val = 0; + break; + case MSR_IA32_MISC_ENABLE: + *val = misc_enable; + break; + case MSR_PLATFORM_INFO: + *val = platform_info; + break; + case MSR_TURBO_RATIO_LIMIT: + case MSR_TURBO_RATIO_LIMIT1: + *val = turbo_ratio_limit; + break; + case MSR_PAT: + *val = guest_msrs[IDX_MSR_PAT]; + break; + default: + error = EINVAL; + break; + } + return (error); +} + +int +vmx_wrmsr(struct vmx *vmx, int vcpuid, u_int num, uint64_t val) +{ + uint64_t *guest_msrs; + uint64_t changed; + int error; + + guest_msrs = vmx->guest_msrs[vcpuid]; + error = 0; + + switch (num) { + case MSR_EFER: + vmcs_write(vcpuid, VMCS_GUEST_IA32_EFER, val); + break; + case MSR_MCG_CAP: + case MSR_MCG_STATUS: + break; /* ignore writes */ + case MSR_MTRRcap: + vm_inject_gp(vmx->vm, vcpuid); + break; + case MSR_MTRRdefType: + case MSR_MTRR4kBase: + case MSR_MTRR4kBase + 1: + case MSR_MTRR4kBase + 2: + case MSR_MTRR4kBase + 3: + case MSR_MTRR4kBase + 4: + case MSR_MTRR4kBase + 5: + case MSR_MTRR4kBase + 6: + case MSR_MTRR4kBase + 7: + case MSR_MTRR4kBase + 8: + case MSR_MTRR16kBase: + case MSR_MTRR16kBase + 1: + case MSR_MTRR64kBase: + break; /* Ignore writes */ + case MSR_IA32_MISC_ENABLE: + changed = val ^ misc_enable; + /* + * If the host has disabled the NX feature then the guest + * also cannot use it. However, a Linux guest will try to + * enable the NX feature by writing to the MISC_ENABLE MSR. + * + * This can be safely ignored because the memory management + * code looks at CPUID.80000001H:EDX.NX to check if the + * functionality is actually enabled. + */ + changed &= ~(1UL << 34); + + /* + * Punt to userspace if any other bits are being modified. + */ + if (changed) + error = EINVAL; + + break; + case MSR_PAT: + if (pat_valid(val)) + guest_msrs[IDX_MSR_PAT] = val; + else + vm_inject_gp(vmx->vm, vcpuid); + break; + default: + error = EINVAL; + break; + } + + return (error); +} diff --git a/vmm/io/vatpic.c b/src/vmm/io/vatpic.c similarity index 88% rename from vmm/io/vatpic.c rename to src/vmm/io/vatpic.c index 6e94f5b..0b0bb25 100644 --- a/vmm/io/vatpic.c +++ b/src/vmm/io/vatpic.c @@ -1,5 +1,6 @@ /*- * Copyright (c) 2014 Tycho Nightingale + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -24,33 +25,22 @@ * SUCH DAMAGE. */ -#include -__FBSDID("$FreeBSD$"); +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include - -#include "vmm_ktr.h" -#include "vmm_lapic.h" -#include "vioapic.h" -#include "vatpic.h" - -static MALLOC_DEFINE(M_VATPIC, "atpic", "bhyve virtual atpic (8259)"); - -#define VATPIC_LOCK(vatpic) mtx_lock_spin(&((vatpic)->mtx)) -#define VATPIC_UNLOCK(vatpic) mtx_unlock_spin(&((vatpic)->mtx)) -#define VATPIC_LOCKED(vatpic) mtx_owned(&((vatpic)->mtx)) +#define VATPIC_LOCK_INIT(v) (v)->lock = OS_SPINLOCK_INIT; +#define VATPIC_LOCK(v) OSSpinLockLock(&(v)->lock) +#define VATPIC_UNLOCK(v) OSSpinLockUnlock(&(v)->lock) enum irqstate { IRQSTATE_ASSERT, @@ -58,34 +48,33 @@ enum irqstate { IRQSTATE_PULSE }; +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" struct atpic { - bool ready; - int icw_num; - int rd_cmd_reg; - - bool aeoi; - bool poll; - bool rotate; - bool sfn; /* special fully-nested mode */ - - int irq_base; - uint8_t request; /* Interrupt Request Register (IIR) */ - uint8_t service; /* Interrupt Service (ISR) */ - uint8_t mask; /* Interrupt Mask Register (IMR) */ - uint8_t smm; /* special mask mode */ - - int acnt[8]; /* sum of pin asserts and deasserts */ - int lowprio; /* lowest priority irq */ - - bool intr_raised; + bool ready; + int icw_num; + int rd_cmd_reg; + bool aeoi; + bool poll; + bool rotate; + bool sfn; /* special fully-nested mode */ + int irq_base; + uint8_t request; /* Interrupt Request Register (IIR) */ + uint8_t service; /* Interrupt Service (ISR) */ + uint8_t mask; /* Interrupt Mask Register (IMR) */ + uint8_t smm; /* special mask mode */ + int acnt[8]; /* sum of pin asserts and deasserts */ + int lowprio; /* lowest priority irq */ + bool intr_raised; }; struct vatpic { - struct vm *vm; - struct mtx mtx; - struct atpic atpic[2]; - uint8_t elc[2]; + struct vm *vm; + OSSpinLock lock; + struct atpic atpic[2]; + uint8_t elc[2]; }; +#pragma clang diagnostic pop #define VATPIC_CTR0(vatpic, fmt) \ VM_CTR0((vatpic)->vm, fmt) @@ -197,8 +186,6 @@ vatpic_notify_intr(struct vatpic *vatpic) struct atpic *atpic; int pin; - KASSERT(VATPIC_LOCKED(vatpic), ("vatpic_notify_intr not locked")); - /* * First check the slave. */ @@ -420,8 +407,6 @@ vatpic_set_pinstate(struct vatpic *vatpic, int pin, bool newstate) KASSERT(pin >= 0 && pin < 16, ("vatpic_set_pinstate: invalid pin number %d", pin)); - KASSERT(VATPIC_LOCKED(vatpic), - ("vatpic_set_pinstate: vatpic is not locked")); atpic = &vatpic->atpic[pin >> 3]; @@ -482,8 +467,6 @@ vatpic_set_irqstate(struct vm *vm, int irq, enum irqstate irqstate) vatpic_set_pinstate(vatpic, irq, true); vatpic_set_pinstate(vatpic, irq, false); break; - default: - panic("vatpic_set_irqstate: invalid irqstate %d", irqstate); } VATPIC_UNLOCK(vatpic); @@ -622,11 +605,10 @@ vatpic_intr_accepted(struct vm *vm, int vector) } static int -vatpic_read(struct vatpic *vatpic, struct atpic *atpic, bool in, int port, - int bytes, uint32_t *eax) +vatpic_read(struct vatpic *vatpic, struct atpic *atpic, UNUSED bool in, + int port, UNUSED int bytes, uint32_t *eax) { int pin; - VATPIC_LOCK(vatpic); if (atpic->poll) { @@ -634,7 +616,7 @@ vatpic_read(struct vatpic *vatpic, struct atpic *atpic, bool in, int port, pin = vatpic_get_highest_irrpin(atpic); if (pin >= 0) { vatpic_pin_accepted(atpic, pin); - *eax = 0x80 | pin; + *eax = 0x80 | ((uint32_t) pin); } else { *eax = 0; } @@ -654,21 +636,21 @@ vatpic_read(struct vatpic *vatpic, struct atpic *atpic, bool in, int port, } VATPIC_UNLOCK(vatpic); - +//printf("vatpic_read 0x%04x 0x%02x\n", port, (uint8_t)*eax); return (0); } static int -vatpic_write(struct vatpic *vatpic, struct atpic *atpic, bool in, int port, - int bytes, uint32_t *eax) +vatpic_write(struct vatpic *vatpic, struct atpic *atpic, UNUSED bool in, + int port, UNUSED int bytes, uint32_t *eax) { int error; uint8_t val; error = 0; - val = *eax; - + val = (uint8_t) *eax; +//printf("vatpic_write 0x%04x 0x%02x %d\n", port, val, atpic->icw_num); VATPIC_LOCK(vatpic); if (port & ICU_IMR_OFFSET) { @@ -707,8 +689,8 @@ vatpic_write(struct vatpic *vatpic, struct atpic *atpic, bool in, int port, } int -vatpic_master_handler(struct vm *vm, int vcpuid, bool in, int port, int bytes, - uint32_t *eax) +vatpic_master_handler(struct vm *vm, UNUSED int vcpuid, bool in, int port, + int bytes, uint32_t *eax) { struct vatpic *vatpic; struct atpic *atpic; @@ -727,8 +709,8 @@ vatpic_master_handler(struct vm *vm, int vcpuid, bool in, int port, int bytes, } int -vatpic_slave_handler(struct vm *vm, int vcpuid, bool in, int port, int bytes, - uint32_t *eax) +vatpic_slave_handler(struct vm *vm, UNUSED int vcpuid, bool in, int port, + int bytes, uint32_t *eax) { struct vatpic *vatpic; struct atpic *atpic; @@ -747,8 +729,8 @@ vatpic_slave_handler(struct vm *vm, int vcpuid, bool in, int port, int bytes, } int -vatpic_elc_handler(struct vm *vm, int vcpuid, bool in, int port, int bytes, - uint32_t *eax) +vatpic_elc_handler(struct vm *vm, UNUSED int vcpuid, bool in, int port, + int bytes, uint32_t *eax) { struct vatpic *vatpic; bool is_master; @@ -793,10 +775,12 @@ vatpic_init(struct vm *vm) { struct vatpic *vatpic; - vatpic = malloc(sizeof(struct vatpic), M_VATPIC, M_WAITOK | M_ZERO); + vatpic = malloc(sizeof(struct vatpic)); + assert(vatpic); + bzero(vatpic, sizeof(struct vatpic)); vatpic->vm = vm; - mtx_init(&vatpic->mtx, "vatpic lock", NULL, MTX_SPIN); + VATPIC_LOCK_INIT(vatpic); return (vatpic); } @@ -804,5 +788,5 @@ vatpic_init(struct vm *vm) void vatpic_cleanup(struct vatpic *vatpic) { - free(vatpic, M_VATPIC); + free(vatpic); } diff --git a/vmm/io/vatpit.c b/src/vmm/io/vatpit.c similarity index 83% rename from vmm/io/vatpit.c rename to src/vmm/io/vatpit.c index 173ef1f..5c59425 100644 --- a/vmm/io/vatpit.c +++ b/src/vmm/io/vatpit.c @@ -1,6 +1,7 @@ /*- * Copyright (c) 2014 Tycho Nightingale * Copyright (c) 2011 NetApp, Inc. + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -25,30 +26,20 @@ * SUCH DAMAGE. */ -#include -__FBSDID("$FreeBSD$"); +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include "vmm_ktr.h" -#include "vatpic.h" -#include "vioapic.h" -#include "vatpit.h" - -static MALLOC_DEFINE(M_VATPIT, "atpit", "bhyve virtual atpit (8254)"); - -#define VATPIT_LOCK(vatpit) mtx_lock_spin(&((vatpit)->mtx)) -#define VATPIT_UNLOCK(vatpit) mtx_unlock_spin(&((vatpit)->mtx)) -#define VATPIT_LOCKED(vatpit) mtx_owned(&((vatpit)->mtx)) +#define VATPIT_LOCK_INIT(v) (v)->lock = OS_SPINLOCK_INIT; +#define VATPIT_LOCK(v) OSSpinLockLock(&(v)->lock) +#define VATPIT_UNLOCK(v) OSSpinLockUnlock(&(v)->lock) #define TIMER_SEL_MASK 0xc0 #define TIMER_RW_MASK 0x30 @@ -69,36 +60,36 @@ static MALLOC_DEFINE(M_VATPIT, "atpit", "bhyve virtual atpit (8254)"); #define PIT_8254_FREQ 1193182 #define TIMER_DIV(freq, hz) (((freq) + (hz) / 2) / (hz)) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" struct vatpit_callout_arg { - struct vatpit *vatpit; - int channel_num; + struct vatpit *vatpit; + int channel_num; }; - struct channel { - int mode; - uint16_t initial; /* initial counter value */ - sbintime_t now_sbt; /* uptime when counter was loaded */ - uint8_t cr[2]; - uint8_t ol[2]; - bool slatched; /* status latched */ - uint8_t status; - int crbyte; - int olbyte; - int frbyte; - struct callout callout; - sbintime_t callout_sbt; /* target time */ + int mode; + uint16_t initial; /* initial counter value */ + sbintime_t now_sbt; /* uptime when counter was loaded */ + uint8_t cr[2]; + uint8_t ol[2]; + bool slatched; /* status latched */ + uint8_t status; + int crbyte; + int olbyte; + int frbyte; + struct callout callout; + sbintime_t callout_sbt; /* target time */ struct vatpit_callout_arg callout_arg; }; struct vatpit { - struct vm *vm; - struct mtx mtx; - - sbintime_t freq_sbt; - - struct channel channel[3]; + struct vm *vm; + OSSpinLock lock; + sbintime_t freq_sbt; + struct channel channel[3]; }; +#pragma clang diagnostic pop static void pit_timer_start_cntr0(struct vatpit *vatpit); @@ -164,12 +155,11 @@ static void pit_timer_start_cntr0(struct vatpit *vatpit) { struct channel *c; - sbintime_t now, delta, precision; + sbintime_t now, delta; c = &vatpit->channel[0]; if (c->initial != 0) { delta = c->initial * vatpit->freq_sbt; - precision = delta >> tc_precexp; c->callout_sbt = c->callout_sbt + delta; /* @@ -182,7 +172,7 @@ pit_timer_start_cntr0(struct vatpit *vatpit) c->callout_sbt = now + delta; callout_reset_sbt(&c->callout, c->callout_sbt, - precision, vatpit_callout_handler, &c->callout_arg, + 0, vatpit_callout_handler, &c->callout_arg, C_ABSOLUTE); } } @@ -217,8 +207,8 @@ pit_update_counter(struct vatpit *vatpit, struct channel *c, bool latch) if (latch) { c->olbyte = 2; - c->ol[1] = lval; /* LSB */ - c->ol[0] = lval >> 8; /* MSB */ + c->ol[1] = (uint8_t) lval; /* LSB */ + c->ol[0] = (uint8_t) (lval >> 8); /* MSB */ } return (lval); @@ -316,7 +306,7 @@ vatpit_update_mode(struct vatpit *vatpit, uint8_t val) } int -vatpit_handler(struct vm *vm, int vcpuid, bool in, int port, int bytes, +vatpit_handler(struct vm *vm, UNUSED int vcpuid, bool in, int port, int bytes, uint32_t *eax) { struct vatpit *vatpit; @@ -329,7 +319,7 @@ vatpit_handler(struct vm *vm, int vcpuid, bool in, int port, int bytes, if (bytes != 1) return (-1); - val = *eax; + val = (uint8_t) *eax; if (port == TIMER_MODE) { if (in) { @@ -346,7 +336,7 @@ vatpit_handler(struct vm *vm, int vcpuid, bool in, int port, int bytes, /* counter ports */ KASSERT(port >= TIMER_CNTR0 && port <= TIMER_CNTR2, - ("invalid port 0x%x", port)); + ("invalid port 0x%x\n", port)); c = &vatpit->channel[port - TIMER_CNTR0]; VATPIT_LOCK(vatpit); @@ -377,12 +367,13 @@ vatpit_handler(struct vm *vm, int vcpuid, bool in, int port, int bytes, } else *eax = c->ol[--c->olbyte]; } else { - c->cr[c->crbyte++] = *eax; + c->cr[c->crbyte++] = (uint8_t) *eax; if (c->crbyte == 2) { c->status &= ~TIMER_STS_NULLCNT; c->frbyte = 0; c->crbyte = 0; - c->initial = c->cr[0] | (uint16_t)c->cr[1] << 8; + c->initial = (uint16_t) c->cr[0]; + c->initial |= (((uint16_t) c->cr[1]) << 8); c->now_sbt = sbinuptime(); /* Start an interval timer for channel 0 */ if (port == TIMER_CNTR0) { @@ -399,8 +390,8 @@ vatpit_handler(struct vm *vm, int vcpuid, bool in, int port, int bytes, } int -vatpit_nmisc_handler(struct vm *vm, int vcpuid, bool in, int port, int bytes, - uint32_t *eax) +vatpit_nmisc_handler(struct vm *vm, UNUSED int vcpuid, bool in, UNUSED int port, + UNUSED int bytes, uint32_t *eax) { struct vatpit *vatpit; @@ -427,10 +418,12 @@ vatpit_init(struct vm *vm) struct vatpit_callout_arg *arg; int i; - vatpit = malloc(sizeof(struct vatpit), M_VATPIT, M_WAITOK | M_ZERO); + vatpit = malloc(sizeof(struct vatpit)); + assert(vatpit); + bzero(vatpit, sizeof(struct vatpit)); vatpit->vm = vm; - mtx_init(&vatpit->mtx, "vatpit lock", NULL, MTX_SPIN); + VATPIT_LOCK_INIT(vatpit) FREQ2BT(PIT_8254_FREQ, &bt); vatpit->freq_sbt = bttosbt(bt); @@ -453,5 +446,5 @@ vatpit_cleanup(struct vatpit *vatpit) for (i = 0; i < 3; i++) callout_drain(&vatpit->channel[i].callout); - free(vatpit, M_VATPIT); + free(vatpit); } diff --git a/vmm/io/vhpet.c b/src/vmm/io/vhpet.c similarity index 86% rename from vmm/io/vhpet.c rename to src/vmm/io/vhpet.c index 1db1c51..1d81861 100644 --- a/vmm/io/vhpet.c +++ b/src/vmm/io/vhpet.c @@ -1,6 +1,7 @@ /*- * Copyright (c) 2013 Tycho Nightingale * Copyright (c) 2013 Neel Natu + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -27,29 +28,18 @@ * $FreeBSD$ */ -#include -__FBSDID("$FreeBSD$"); - -#include -#include -#include -#include -#include -#include - -#include - -#include -#include - -#include "vmm_lapic.h" -#include "vatpic.h" -#include "vioapic.h" -#include "vhpet.h" - -#include "vmm_ktr.h" - -static MALLOC_DEFINE(M_VHPET, "vhpet", "bhyve virtual hpet"); +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #define HPET_FREQ 10000000 /* 10.0 Mhz */ #define FS_PER_S 1000000000000000ul @@ -65,34 +55,35 @@ static MALLOC_DEFINE(M_VHPET, "vhpet", "bhyve virtual hpet"); #define VHPET_NUM_TIMERS 8 CTASSERT(VHPET_NUM_TIMERS >= 3 && VHPET_NUM_TIMERS <= 32); +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" struct vhpet_callout_arg { struct vhpet *vhpet; int timer_num; }; struct vhpet { - struct vm *vm; - struct mtx mtx; - sbintime_t freq_sbt; - - uint64_t config; /* Configuration */ - uint64_t isr; /* Interrupt Status */ - uint32_t countbase; /* HPET counter base value */ - sbintime_t countbase_sbt; /* uptime corresponding to base value */ - + struct vm *vm; + pthread_mutex_t mtx; + sbintime_t freq_sbt; + uint64_t config; /* Configuration */ + uint64_t isr; /* Interrupt Status */ + uint32_t countbase; /* HPET counter base value */ + sbintime_t countbase_sbt; /* uptime corresponding to base value */ struct { - uint64_t cap_config; /* Configuration */ - uint64_t msireg; /* FSB interrupt routing */ - uint32_t compval; /* Comparator */ - uint32_t comprate; - struct callout callout; - sbintime_t callout_sbt; /* time when counter==compval */ + uint64_t cap_config; /* Configuration */ + uint64_t msireg; /* FSB interrupt routing */ + uint32_t compval; /* Comparator */ + uint32_t comprate; + struct callout callout; + sbintime_t callout_sbt; /* time when counter==compval */ struct vhpet_callout_arg arg; } timer[VHPET_NUM_TIMERS]; }; +#pragma clang diagnostic pop -#define VHPET_LOCK(vhp) mtx_lock(&((vhp)->mtx)) -#define VHPET_UNLOCK(vhp) mtx_unlock(&((vhp)->mtx)) +#define VHPET_LOCK(vhp) pthread_mutex_lock(&((vhp)->mtx)) +#define VHPET_UNLOCK(vhp) pthread_mutex_unlock(&((vhp)->mtx)) static void vhpet_start_timer(struct vhpet *vhpet, int n, uint32_t counter, sbintime_t now); @@ -102,13 +93,12 @@ vhpet_capabilities(void) { uint64_t cap = 0; - cap |= 0x8086 << 16; /* vendor id */ - cap |= (VHPET_NUM_TIMERS - 1) << 8; /* number of timers */ - cap |= 1; /* revision */ - cap &= ~HPET_CAP_COUNT_SIZE; /* 32-bit timer */ - - cap &= 0xffffffff; - cap |= (FS_PER_S / HPET_FREQ) << 32; /* tick period in fs */ + cap |= ((uint64_t) 0x8086) << 16; /* vendor id */ + cap |= ((uint64_t) (VHPET_NUM_TIMERS - 1)) << 8; /* number of timers */ + cap |= (uint64_t) 1; /* revision */ + cap &= ~((uint64_t) HPET_CAP_COUNT_SIZE); /* 32-bit timer */ + cap &= (uint64_t) 0xffffffff; + cap |= ((uint64_t) (FS_PER_S / HPET_FREQ)) << 32; /* tick period in fs */ return (cap); } @@ -155,7 +145,7 @@ vhpet_counter(struct vhpet *vhpet, sbintime_t *nowptr) now = sbinuptime(); delta = now - vhpet->countbase_sbt; KASSERT(delta >= 0, ("vhpet_counter: uptime went backwards: " - "%#lx to %#lx", vhpet->countbase_sbt, now)); + "%#llx to %#llx", vhpet->countbase_sbt, now)); val += delta / vhpet->freq_sbt; if (nowptr != NULL) *nowptr = now; @@ -301,7 +291,7 @@ vhpet_handler(void *a) callout_deactivate(callout); if (!vhpet_counter_enabled(vhpet)) - panic("vhpet(%p) callout with counter disabled", vhpet); + xhyve_abort("vhpet(%p) callout with counter disabled\n", vhpet); counter = vhpet_counter(vhpet, &now); vhpet_start_timer(vhpet, n, counter, now); @@ -335,7 +325,7 @@ vhpet_stop_timer(struct vhpet *vhpet, int n, sbintime_t now) static void vhpet_start_timer(struct vhpet *vhpet, int n, uint32_t counter, sbintime_t now) { - sbintime_t delta, precision; + sbintime_t delta; if (vhpet->timer[n].comprate != 0) vhpet_adjust_compval(vhpet, n, counter); @@ -349,10 +339,9 @@ vhpet_start_timer(struct vhpet *vhpet, int n, uint32_t counter, sbintime_t now) } delta = (vhpet->timer[n].compval - counter) * vhpet->freq_sbt; - precision = delta >> tc_precexp; vhpet->timer[n].callout_sbt = now + delta; callout_reset_sbt(&vhpet->timer[n].callout, vhpet->timer[n].callout_sbt, - precision, vhpet_handler, &vhpet->timer[n].arg, C_ABSOLUTE); + 0, vhpet_handler, &vhpet->timer[n].arg, C_ABSOLUTE); } static void @@ -401,7 +390,7 @@ vhpet_timer_update_config(struct vhpet *vhpet, int n, uint64_t data, if (vhpet_timer_msi_enabled(vhpet, n) || vhpet_timer_edge_trig(vhpet, n)) { if (vhpet->isr & (1 << n)) - panic("vhpet timer %d isr should not be asserted", n); + xhyve_abort("vhpet timer %d isr should not be asserted\n", n); } old_pin = vhpet_timer_ioapic_pin(vhpet, n); oldval = vhpet->timer[n].cap_config; @@ -415,7 +404,7 @@ vhpet_timer_update_config(struct vhpet *vhpet, int n, uint64_t data, return; vhpet->timer[n].cap_config = newval; - VM_CTR2(vhpet->vm, "hpet t%d cap_config set to 0x%016x", n, newval); + VM_CTR2(vhpet->vm, "hpet t%d cap_config set to 0x%016llx", n, newval); /* * Validate the interrupt routing in the HPET_TCNF_INT_ROUTE field. @@ -428,7 +417,7 @@ vhpet_timer_update_config(struct vhpet *vhpet, int n, uint64_t data, VM_CTR3(vhpet->vm, "hpet t%d configured invalid irq %d, " "allowed_irqs 0x%08x", n, new_pin, allowed_irqs); new_pin = 0; - vhpet->timer[n].cap_config &= ~HPET_TCNF_INT_ROUTE; + vhpet->timer[n].cap_config &= ~((uint64_t) HPET_TCNF_INT_ROUTE); } if (!vhpet_periodic_timer(vhpet, n)) @@ -467,8 +456,8 @@ vhpet_timer_update_config(struct vhpet *vhpet, int n, uint64_t data, } int -vhpet_mmio_write(void *vm, int vcpuid, uint64_t gpa, uint64_t val, int size, - void *arg) +vhpet_mmio_write(void *vm, UNUSED int vcpuid, uint64_t gpa, uint64_t val, int size, + UNUSED void *arg) { struct vhpet *vhpet; uint64_t data, mask, oldval, val64; @@ -476,8 +465,9 @@ vhpet_mmio_write(void *vm, int vcpuid, uint64_t gpa, uint64_t val, int size, sbintime_t now, *nowptr; int i, offset; + now = 0; vhpet = vm_hpet(vm); - offset = gpa - VHPET_BASE; + offset = (int) (gpa - VHPET_BASE); VHPET_LOCK(vhpet); @@ -524,7 +514,7 @@ vhpet_mmio_write(void *vm, int vcpuid, uint64_t gpa, uint64_t val, int size, * LegacyReplacement Routing is not supported so clear the * bit explicitly. */ - vhpet->config &= ~HPET_CNF_LEG_RT; + vhpet->config &= ~((uint64_t) HPET_CNF_LEG_RT); if ((oldval ^ vhpet->config) & HPET_CNF_ENABLE) { if (vhpet_counter_enabled(vhpet)) { @@ -539,7 +529,7 @@ vhpet_mmio_write(void *vm, int vcpuid, uint64_t gpa, uint64_t val, int size, } if (offset == HPET_ISR || offset == HPET_ISR + 4) { - isr_clear_mask = vhpet->isr & data; + isr_clear_mask = (uint32_t) (vhpet->isr & data); for (i = 0; i < VHPET_NUM_TIMERS; i++) { if ((isr_clear_mask & (1 << i)) != 0) { VM_CTR1(vhpet->vm, "hpet t%d isr cleared", i); @@ -553,7 +543,7 @@ vhpet_mmio_write(void *vm, int vcpuid, uint64_t gpa, uint64_t val, int size, /* Zero-extend the counter to 64-bits before updating it */ val64 = vhpet_counter(vhpet, NULL); update_register(&val64, data, mask); - vhpet->countbase = val64; + vhpet->countbase = (uint32_t) val64; if (vhpet_counter_enabled(vhpet)) vhpet_start_counting(vhpet); goto done; @@ -579,10 +569,10 @@ vhpet_mmio_write(void *vm, int vcpuid, uint64_t gpa, uint64_t val, int size, */ val64 = vhpet->timer[i].comprate; update_register(&val64, data, mask); - vhpet->timer[i].comprate = val64; + vhpet->timer[i].comprate = (uint32_t) val64; if ((vhpet->timer[i].cap_config & HPET_TCNF_VAL_SET) != 0) { - vhpet->timer[i].compval = val64; + vhpet->timer[i].compval = (uint32_t) val64; } } else { KASSERT(vhpet->timer[i].comprate == 0, @@ -590,9 +580,9 @@ vhpet_mmio_write(void *vm, int vcpuid, uint64_t gpa, uint64_t val, int size, "rate %u", i, vhpet->timer[i].comprate)); val64 = vhpet->timer[i].compval; update_register(&val64, data, mask); - vhpet->timer[i].compval = val64; + vhpet->timer[i].compval = (uint32_t) val64; } - vhpet->timer[i].cap_config &= ~HPET_TCNF_VAL_SET; + vhpet->timer[i].cap_config &= ~((uint64_t) HPET_TCNF_VAL_SET); if (vhpet->timer[i].compval != old_compval || vhpet->timer[i].comprate != old_comprate) { @@ -617,15 +607,16 @@ done: } int -vhpet_mmio_read(void *vm, int vcpuid, uint64_t gpa, uint64_t *rval, int size, - void *arg) +vhpet_mmio_read(void *vm, UNUSED int vcpuid, uint64_t gpa, uint64_t *rval, int size, + UNUSED void *arg) { int i, offset; struct vhpet *vhpet; uint64_t data; + data = 0; vhpet = vm_hpet(vm); - offset = gpa - VHPET_BASE; + offset = (int) (gpa - VHPET_BASE); VHPET_LOCK(vhpet); @@ -707,9 +698,12 @@ vhpet_init(struct vm *vm) struct vhpet_callout_arg *arg; struct bintime bt; - vhpet = malloc(sizeof(struct vhpet), M_VHPET, M_WAITOK | M_ZERO); - vhpet->vm = vm; - mtx_init(&vhpet->mtx, "vhpet lock", NULL, MTX_DEF); + vhpet = malloc(sizeof(struct vhpet)); + assert(vhpet); + bzero(vhpet, sizeof(struct vhpet)); + vhpet->vm = vm; + + pthread_mutex_init(&vhpet->mtx, NULL); FREQ2BT(HPET_FREQ, &bt); vhpet->freq_sbt = bttosbt(bt); @@ -747,13 +741,12 @@ vhpet_cleanup(struct vhpet *vhpet) for (i = 0; i < VHPET_NUM_TIMERS; i++) callout_drain(&vhpet->timer[i].callout); - free(vhpet, M_VHPET); + free(vhpet); } int -vhpet_getcap(struct vm_hpet_cap *cap) +vhpet_getcap(uint32_t *cap) { - - cap->capabilities = vhpet_capabilities(); + *cap = (uint32_t) vhpet_capabilities(); return (0); } diff --git a/vmm/io/vioapic.c b/src/vmm/io/vioapic.c similarity index 82% rename from vmm/io/vioapic.c rename to src/vmm/io/vioapic.c index e6b8b5a..55005c4 100644 --- a/vmm/io/vioapic.c +++ b/src/vmm/io/vioapic.c @@ -1,6 +1,7 @@ /*- * Copyright (c) 2013 Tycho Nightingale * Copyright (c) 2013 Neel Natu + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -27,24 +28,16 @@ * $FreeBSD$ */ -#include -__FBSDID("$FreeBSD$"); - -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include "vmm_ktr.h" -#include "vmm_lapic.h" -#include "vlapic.h" -#include "vioapic.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #define IOREGSEL 0x00 #define IOWIN 0x10 @@ -52,36 +45,36 @@ __FBSDID("$FreeBSD$"); #define REDIR_ENTRIES 24 #define RTBL_RO_BITS ((uint64_t)(IOART_REM_IRR | IOART_DELIVS)) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" struct vioapic { - struct vm *vm; - struct mtx mtx; - uint32_t id; - uint32_t ioregsel; + struct vm *vm; + OSSpinLock lock; + uint32_t id; + uint32_t ioregsel; struct { uint64_t reg; - int acnt; /* sum of pin asserts (+1) and deasserts (-1) */ + int acnt; /* sum of pin asserts (+1) and deasserts (-1) */ } rtbl[REDIR_ENTRIES]; }; +#pragma clang diagnostic pop -#define VIOAPIC_LOCK(vioapic) mtx_lock_spin(&((vioapic)->mtx)) -#define VIOAPIC_UNLOCK(vioapic) mtx_unlock_spin(&((vioapic)->mtx)) -#define VIOAPIC_LOCKED(vioapic) mtx_owned(&((vioapic)->mtx)) +#define VIOAPIC_LOCK_INIT(v) (v)->lock = OS_SPINLOCK_INIT; +#define VIOAPIC_LOCK(v) OSSpinLockLock(&(v)->lock) +#define VIOAPIC_UNLOCK(v) OSSpinLockUnlock(&(v)->lock) -static MALLOC_DEFINE(M_VIOAPIC, "vioapic", "bhyve virtual ioapic"); - -#define VIOAPIC_CTR1(vioapic, fmt, a1) \ +#define VIOAPIC_CTR1(vioapic, fmt, a1) \ VM_CTR1((vioapic)->vm, fmt, a1) -#define VIOAPIC_CTR2(vioapic, fmt, a1, a2) \ +#define VIOAPIC_CTR2(vioapic, fmt, a1, a2) \ VM_CTR2((vioapic)->vm, fmt, a1, a2) -#define VIOAPIC_CTR3(vioapic, fmt, a1, a2, a3) \ +#ifdef XHYVE_CONFIG_TRACE +#define VIOAPIC_CTR3(vioapic, fmt, a1, a2, a3) \ VM_CTR3((vioapic)->vm, fmt, a1, a2, a3) +#endif -#define VIOAPIC_CTR4(vioapic, fmt, a1, a2, a3, a4) \ - VM_CTR4((vioapic)->vm, fmt, a1, a2, a3, a4) - -#ifdef KTR +#ifdef XHYVE_CONFIG_TRACE static const char * pinstate_str(bool asserted) { @@ -103,11 +96,8 @@ vioapic_send_intr(struct vioapic *vioapic, int pin) KASSERT(pin >= 0 && pin < REDIR_ENTRIES, ("vioapic_set_pinstate: invalid pin number %d", pin)); - KASSERT(VIOAPIC_LOCKED(vioapic), - ("vioapic_set_pinstate: vioapic is not locked")); - - low = vioapic->rtbl[pin].reg; - high = vioapic->rtbl[pin].reg >> 32; + low = (uint32_t) vioapic->rtbl[pin].reg; + high = (uint32_t) (vioapic->rtbl[pin].reg >> 32); if ((low & IOART_INTMASK) == IOART_INTMSET) { VIOAPIC_CTR1(vioapic, "ioapic pin%d: masked", pin); @@ -134,9 +124,6 @@ vioapic_set_pinstate(struct vioapic *vioapic, int pin, bool newstate) KASSERT(pin >= 0 && pin < REDIR_ENTRIES, ("vioapic_set_pinstate: invalid pin number %d", pin)); - KASSERT(VIOAPIC_LOCKED(vioapic), - ("vioapic_set_pinstate: vioapic is not locked")); - oldcnt = vioapic->rtbl[pin].acnt; if (newstate) vioapic->rtbl[pin].acnt++; @@ -156,10 +143,11 @@ vioapic_set_pinstate(struct vioapic *vioapic, int pin, bool newstate) } else if (oldcnt == 1 && newcnt == 0) { VIOAPIC_CTR1(vioapic, "ioapic pin%d: deasserted", pin); } else { +#ifdef XHYVE_CONFIG_TRACE VIOAPIC_CTR3(vioapic, "ioapic pin%d: %s, ignored, acnt %d", pin, pinstate_str(newstate), newcnt); +#endif } - if (needintr) vioapic_send_intr(vioapic, pin); } @@ -192,8 +180,6 @@ vioapic_set_irqstate(struct vm *vm, int irq, enum irqstate irqstate) vioapic_set_pinstate(vioapic, irq, true); vioapic_set_pinstate(vioapic, irq, false); break; - default: - panic("vioapic_set_irqstate: invalid irqstate %d", irqstate); } VIOAPIC_UNLOCK(vioapic); @@ -226,7 +212,7 @@ vioapic_pulse_irq(struct vm *vm, int irq) * configuration. */ static void -vioapic_update_tmr(struct vm *vm, int vcpuid, void *arg) +vioapic_update_tmr(struct vm *vm, int vcpuid, UNUSED void *arg) { struct vioapic *vioapic; struct vlapic *vlapic; @@ -243,8 +229,8 @@ vioapic_update_tmr(struct vm *vm, int vcpuid, void *arg) */ vlapic_reset_tmr(vlapic); for (pin = 0; pin < REDIR_ENTRIES; pin++) { - low = vioapic->rtbl[pin].reg; - high = vioapic->rtbl[pin].reg >> 32; + low = (uint32_t) vioapic->rtbl[pin].reg; + high = (uint32_t) (vioapic->rtbl[pin].reg >> 32); level = low & IOART_TRGRLVL ? true : false; if (!level) @@ -266,7 +252,7 @@ vioapic_update_tmr(struct vm *vm, int vcpuid, void *arg) } static uint32_t -vioapic_read(struct vioapic *vioapic, int vcpuid, uint32_t addr) +vioapic_read(struct vioapic *vioapic, UNUSED int vcpuid, uint32_t addr) { int regnum, pin, rshift; @@ -274,13 +260,10 @@ vioapic_read(struct vioapic *vioapic, int vcpuid, uint32_t addr) switch (regnum) { case IOAPIC_ID: return (vioapic->id); - break; case IOAPIC_VER: return (((REDIR_ENTRIES - 1) << MAXREDIRSHIFT) | 0x11); - break; case IOAPIC_ARB: return (vioapic->id); - break; default: break; } @@ -294,7 +277,7 @@ vioapic_read(struct vioapic *vioapic, int vcpuid, uint32_t addr) else rshift = 0; - return (vioapic->rtbl[pin].reg >> rshift); + return ((uint32_t) (vioapic->rtbl[pin].reg >> rshift)); } return (0); @@ -337,7 +320,7 @@ vioapic_write(struct vioapic *vioapic, int vcpuid, uint32_t addr, uint32_t data) vioapic->rtbl[pin].reg &= ~mask64 | RTBL_RO_BITS; vioapic->rtbl[pin].reg |= data64 & ~RTBL_RO_BITS; - VIOAPIC_CTR2(vioapic, "ioapic pin%d: redir table entry %#lx", + VIOAPIC_CTR2(vioapic, "ioapic pin%d: redir table entry %#llx", pin, vioapic->rtbl[pin].reg); /* @@ -346,7 +329,7 @@ vioapic_write(struct vioapic *vioapic, int vcpuid, uint32_t addr, uint32_t data) * to update their vlapic trigger-mode registers. */ changed = last ^ vioapic->rtbl[pin].reg; - if (changed & ~(IOART_INTMASK | IOART_INTPOL)) { + if (changed & ~((uint64_t) (IOART_INTMASK | IOART_INTPOL))) { VIOAPIC_CTR1(vioapic, "ioapic pin%d: recalculate " "vlapic trigger-mode register", pin); VIOAPIC_UNLOCK(vioapic); @@ -395,14 +378,14 @@ vioapic_mmio_rw(struct vioapic *vioapic, int vcpuid, uint64_t gpa, if (doread) *data = vioapic->ioregsel; else - vioapic->ioregsel = *data; + vioapic->ioregsel = (uint32_t) *data; } else { if (doread) { *data = vioapic_read(vioapic, vcpuid, vioapic->ioregsel); } else { vioapic_write(vioapic, vcpuid, vioapic->ioregsel, - *data); + ((uint32_t) *data)); } } VIOAPIC_UNLOCK(vioapic); @@ -412,19 +395,20 @@ vioapic_mmio_rw(struct vioapic *vioapic, int vcpuid, uint64_t gpa, int vioapic_mmio_read(void *vm, int vcpuid, uint64_t gpa, uint64_t *rval, - int size, void *arg) + int size, UNUSED void *arg) { int error; struct vioapic *vioapic; vioapic = vm_ioapic(vm); error = vioapic_mmio_rw(vioapic, vcpuid, gpa, rval, size, true); + return (error); } int vioapic_mmio_write(void *vm, int vcpuid, uint64_t gpa, uint64_t wval, - int size, void *arg) + int size, UNUSED void *arg) { int error; struct vioapic *vioapic; @@ -435,7 +419,7 @@ vioapic_mmio_write(void *vm, int vcpuid, uint64_t gpa, uint64_t wval, } void -vioapic_process_eoi(struct vm *vm, int vcpuid, int vector) +vioapic_process_eoi(struct vm *vm, UNUSED int vcpuid, int vector) { struct vioapic *vioapic; int pin; @@ -456,7 +440,7 @@ vioapic_process_eoi(struct vm *vm, int vcpuid, int vector) continue; if ((vioapic->rtbl[pin].reg & IOART_INTVEC) != vector) continue; - vioapic->rtbl[pin].reg &= ~IOART_REM_IRR; + vioapic->rtbl[pin].reg &= ~((uint64_t) IOART_REM_IRR); if (vioapic->rtbl[pin].acnt > 0) { VIOAPIC_CTR2(vioapic, "ioapic pin%d: asserted at eoi, " "acnt %d", pin, vioapic->rtbl[pin].acnt); @@ -472,10 +456,12 @@ vioapic_init(struct vm *vm) int i; struct vioapic *vioapic; - vioapic = malloc(sizeof(struct vioapic), M_VIOAPIC, M_WAITOK | M_ZERO); - + vioapic = malloc(sizeof(struct vioapic)); + assert(vioapic); + bzero(vioapic, sizeof(struct vioapic)); vioapic->vm = vm; - mtx_init(&vioapic->mtx, "vioapic lock", NULL, MTX_SPIN); + + VIOAPIC_LOCK_INIT(vioapic); /* Initialize all redirection entries to mask all interrupts */ for (i = 0; i < REDIR_ENTRIES; i++) @@ -487,13 +473,11 @@ vioapic_init(struct vm *vm) void vioapic_cleanup(struct vioapic *vioapic) { - - free(vioapic, M_VIOAPIC); + free(vioapic); } int -vioapic_pincount(struct vm *vm) +vioapic_pincount(UNUSED struct vm *vm) { - return (REDIR_ENTRIES); } diff --git a/vmm/io/vlapic.c b/src/vmm/io/vlapic.c similarity index 84% rename from vmm/io/vlapic.c rename to src/vmm/io/vlapic.c index 3451e1e..62cf730 100644 --- a/vmm/io/vlapic.c +++ b/src/vmm/io/vlapic.c @@ -1,5 +1,6 @@ /*- * Copyright (c) 2011 NetApp, Inc. + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,32 +27,22 @@ * $FreeBSD$ */ -#include -__FBSDID("$FreeBSD$"); - -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include -#include - -#include - -#include "vmm_lapic.h" -#include "vmm_ktr.h" -#include "vmm_stat.h" - -#include "vlapic.h" -#include "vlapic_priv.h" -#include "vioapic.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #define PRIO(x) ((x) >> 4) @@ -60,14 +51,14 @@ __FBSDID("$FreeBSD$"); #define x2apic(vlapic) (((vlapic)->msr_apicbase & APICBASE_X2APIC) ? 1 : 0) /* - * The 'vlapic->timer_mtx' is used to provide mutual exclusion between the + * The 'vlapic->timer_lock' is used to provide mutual exclusion between the * vlapic_callout_handler() and vcpu accesses to: * - timer_freq_bt, timer_period_bt, timer_fire_bt * - timer LVT register */ -#define VLAPIC_TIMER_LOCK(vlapic) mtx_lock_spin(&((vlapic)->timer_mtx)) -#define VLAPIC_TIMER_UNLOCK(vlapic) mtx_unlock_spin(&((vlapic)->timer_mtx)) -#define VLAPIC_TIMER_LOCKED(vlapic) mtx_owned(&((vlapic)->timer_mtx)) +#define VLAPIC_TIMER_LOCK_INIT(v) (v)->timer_lock = OS_SPINLOCK_INIT; +#define VLAPIC_TIMER_LOCK(v) OSSpinLockLock(&(v)->timer_lock) +#define VLAPIC_TIMER_UNLOCK(v) OSSpinLockUnlock(&(v)->timer_lock) /* * APIC timer frequency: @@ -81,9 +72,9 @@ vlapic_get_id(struct vlapic *vlapic) { if (x2apic(vlapic)) - return (vlapic->vcpuid); + return ((uint32_t) vlapic->vcpuid); else - return (vlapic->vcpuid << 24); + return ((uint32_t) (vlapic->vcpuid << 24)); } static uint32_t @@ -92,9 +83,9 @@ x2apic_ldr(struct vlapic *vlapic) int apicid; uint32_t ldr; - apicid = vlapic_get_id(vlapic); + apicid = (int) vlapic_get_id(vlapic); ldr = 1 << (apicid & 0xf); - ldr |= (apicid & 0xffff0) << 12; + ldr |= (uint32_t) ((apicid & 0xffff0) << 12); return (ldr); } @@ -114,12 +105,13 @@ vlapic_dfr_write_handler(struct vlapic *vlapic) lapic->dfr &= APIC_DFR_MODEL_MASK; lapic->dfr |= APIC_DFR_RESERVED; - if ((lapic->dfr & APIC_DFR_MODEL_MASK) == APIC_DFR_MODEL_FLAT) + if ((lapic->dfr & APIC_DFR_MODEL_MASK) == APIC_DFR_MODEL_FLAT) { VLAPIC_CTR0(vlapic, "vlapic DFR in Flat Model"); - else if ((lapic->dfr & APIC_DFR_MODEL_MASK) == APIC_DFR_MODEL_CLUSTER) + } else if ((lapic->dfr & APIC_DFR_MODEL_MASK) == APIC_DFR_MODEL_CLUSTER) { VLAPIC_CTR0(vlapic, "vlapic DFR in Cluster Model"); - else + } else { VLAPIC_CTR1(vlapic, "DFR in Unknown Model %#x", lapic->dfr); + } } void @@ -135,7 +127,7 @@ vlapic_ldr_write_handler(struct vlapic *vlapic) lapic->ldr); lapic->ldr = x2apic_ldr(vlapic); } else { - lapic->ldr &= ~APIC_LDR_RESERVED; + lapic->ldr &= ~((unsigned) APIC_LDR_RESERVED); VLAPIC_CTR1(vlapic, "vlapic LDR set to %#x", lapic->ldr); } } @@ -174,7 +166,7 @@ vlapic_timer_divisor(uint32_t dcr) case APIC_TDCR_128: return (128); default: - panic("vlapic_timer_divisor: invalid dcr 0x%08x", dcr); + xhyve_abort("vlapic_timer_divisor: invalid dcr 0x%08x\n", dcr); } } @@ -239,7 +231,7 @@ vlapic_dcr_write_handler(struct vlapic *vlapic) * XXX changes to the frequency divider will not take effect until * the timer is reloaded. */ - FREQ2BT(VLAPIC_BUS_FREQ / divisor, &vlapic->timer_freq_bt); + FREQ2BT(((unsigned) (VLAPIC_BUS_FREQ / divisor)), &vlapic->timer_freq_bt); vlapic->timer_period_bt = vlapic->timer_freq_bt; bintime_mul(&vlapic->timer_period_bt, lapic->icr_timer); @@ -312,11 +304,16 @@ vlapic_get_lvtptr(struct vlapic *vlapic, uint32_t offset) switch (offset) { case APIC_OFFSET_CMCI_LVT: return (&lapic->lvt_cmci); - case APIC_OFFSET_TIMER_LVT ... APIC_OFFSET_ERROR_LVT: + case APIC_OFFSET_TIMER_LVT: + case APIC_OFFSET_THERM_LVT: + case APIC_OFFSET_PERF_LVT: + case APIC_OFFSET_LINT0_LVT: + case APIC_OFFSET_LINT1_LVT: + case APIC_OFFSET_ERROR_LVT: i = (offset - APIC_OFFSET_TIMER_LVT) >> 2; return ((&lapic->lvt_timer) + i);; default: - panic("vlapic_get_lvt: invalid LVT\n"); + xhyve_abort("vlapic_get_lvt: invalid LVT\n"); } } @@ -446,7 +443,7 @@ vlapic_fire_lvt(struct vlapic *vlapic, uint32_t lvt) vlapic_set_error(vlapic, APIC_ESR_SEND_ILLEGAL_VECTOR); return (0); } - if (vlapic_set_intr_ready(vlapic, vec, false)) + if (vlapic_set_intr_ready(vlapic, ((int) vec), false)) vcpu_notify_event(vlapic->vm, vlapic->vcpuid, true); break; case APIC_LVT_DM_NMI: @@ -494,7 +491,7 @@ vlapic_update_ppr(struct vlapic *vlapic) * bits is set in the ISRx registers. */ isrvec = vlapic->isrvec_stk[vlapic->isrvec_stk_top]; - tpr = vlapic->apic_page->tpr; + tpr = (int) vlapic->apic_page->tpr; #if 1 { @@ -502,7 +499,7 @@ vlapic_update_ppr(struct vlapic *vlapic) uint32_t *isrptr; if (vlapic->isrvec_stk_top == 0 && isrvec != 0) - panic("isrvec_stk is corrupted: %d", isrvec); + xhyve_abort("isrvec_stk is corrupted: %d\n", isrvec); /* * Make sure that the priority of the nested interrupts is @@ -513,7 +510,7 @@ vlapic_update_ppr(struct vlapic *vlapic) curprio = PRIO(vlapic->isrvec_stk[i]); if (curprio <= lastprio) { dump_isrvec_stk(vlapic); - panic("isrvec_stk does not satisfy invariant"); + xhyve_abort("isrvec_stk does not satisfy invariant\n"); } lastprio = curprio; } @@ -530,7 +527,7 @@ vlapic_update_ppr(struct vlapic *vlapic) if (i > vlapic->isrvec_stk_top || vlapic->isrvec_stk[i] != vector) { dump_isrvec_stk(vlapic); - panic("ISR and isrvec_stk out of sync"); + xhyve_abort("ISR and isrvec_stk out of sync\n"); } i++; } @@ -543,7 +540,7 @@ vlapic_update_ppr(struct vlapic *vlapic) else ppr = isrvec & 0xf0; - vlapic->apic_page->ppr = ppr; + vlapic->apic_page->ppr = (uint32_t) ppr; VLAPIC_CTR1(vlapic, "vlapic_update_ppr 0x%02x", ppr); } @@ -561,10 +558,10 @@ vlapic_process_eoi(struct vlapic *vlapic) for (i = 7; i >= 0; i--) { idx = i * 4; - bitpos = fls(isrptr[idx]); + bitpos = fls((int) isrptr[idx]); if (bitpos-- != 0) { if (vlapic->isrvec_stk_top <= 0) { - panic("invalid vlapic isrvec_stk_top %d", + xhyve_abort("invalid vlapic isrvec_stk_top %d\n", vlapic->isrvec_stk_top); } isrptr[idx] &= ~(1 << bitpos); @@ -589,7 +586,7 @@ static __inline int vlapic_get_lvt_field(uint32_t lvt, uint32_t mask) { - return (lvt & mask); + return ((int) (lvt & mask)); } static __inline int @@ -628,8 +625,6 @@ static void vlapic_fire_timer(struct vlapic *vlapic) { uint32_t lvt; - - KASSERT(VLAPIC_TIMER_LOCKED(vlapic), ("vlapic_fire_timer not locked")); // The timer LVT always uses the fixed delivery mode. lvt = vlapic_get_lvt(vlapic, APIC_OFFSET_TIMER_LVT); @@ -736,8 +731,10 @@ vlapic_callout_handler(void *arg) if (vlapic_periodic_timer(vlapic)) { binuptime(&btnow); - KASSERT(bintime_cmp(&btnow, &vlapic->timer_fire_bt, >=), - ("vlapic callout at %#lx.%#lx, expected at %#lx.#%lx", + /* FIXME */ + KWARN(bintime_cmp(&btnow, &vlapic->timer_fire_bt, >=), + ("XHYVE: vlapic callout at %#llx.%#llx, expected at " + "%#llx.#%llx\r\n", btnow.sec, btnow.frac, vlapic->timer_fire_bt.sec, vlapic->timer_fire_bt.frac)); @@ -762,8 +759,8 @@ vlapic_callout_handler(void *arg) * up. */ vlapic->timer_fire_bt = btnow; - VLAPIC_CTR2(vlapic, "vlapic timer lagging by %lu " - "usecs, period is %lu usecs - resetting time base", + VLAPIC_CTR2(vlapic, "vlapic timer lagging by %llu " + "usecs, period is %llu usecs - resetting time base", bttosbt(bt) / SBT_1US, bttosbt(vlapic->timer_period_bt) / SBT_1US); } @@ -835,9 +832,9 @@ vlapic_calcdest(struct vm *vm, cpuset_t *dmask, uint32_t dest, bool phys, * Physical mode: destination is APIC ID. */ CPU_ZERO(dmask); - vcpuid = vm_apicid2vcpuid(vm, dest); + vcpuid = vm_apicid2vcpuid(vm, ((int) dest)); if (vcpuid < VM_MAXCPU) - CPU_SET(vcpuid, dmask); + CPU_SET(((unsigned) vcpuid), dmask); } else { /* * In the "Flat Model" the MDA is interpreted as an 8-bit wide @@ -865,7 +862,7 @@ vlapic_calcdest(struct vm *vm, cpuset_t *dmask, uint32_t dest, bool phys, amask = vm_active_cpus(vm); while ((vcpuid = CPU_FFS(&amask)) != 0) { vcpuid--; - CPU_CLR(vcpuid, &amask); + CPU_CLR(((unsigned) vcpuid), &amask); vlapic = vm_lapic(vm, vcpuid); dfr = vlapic->apic_page->dfr; @@ -898,7 +895,7 @@ vlapic_calcdest(struct vm *vm, cpuset_t *dmask, uint32_t dest, bool phys, } if ((mda_ldest & ldest) != 0) { - CPU_SET(vcpuid, dmask); + CPU_SET(((unsigned) vcpuid), dmask); if (lowprio) break; } @@ -926,7 +923,7 @@ vlapic_get_tpr(struct vlapic *vlapic) { struct LAPIC *lapic = vlapic->apic_page; - return (lapic->tpr); + return ((uint8_t) lapic->tpr); } void @@ -934,12 +931,12 @@ vlapic_set_cr8(struct vlapic *vlapic, uint64_t val) { uint8_t tpr; - if (val & ~0xf) { + if (val & ~((uint64_t) 0xf)) { vm_inject_gp(vlapic->vm, vlapic->vcpuid); return; } - tpr = val << 4; + tpr = (uint8_t) (val << 4); vlapic_set_tpr(vlapic, tpr); } @@ -965,7 +962,7 @@ vlapic_icrlo_write_handler(struct vlapic *vlapic, bool *retu) struct LAPIC *lapic; lapic = vlapic->apic_page; - lapic->icr_lo &= ~APIC_DELSTAT_PEND; + lapic->icr_lo &= ~((unsigned) APIC_DELSTAT_PEND); icrval = ((uint64_t)lapic->icr_hi << 32) | lapic->icr_lo; if (x2apic(vlapic)) @@ -981,7 +978,7 @@ vlapic_icrlo_write_handler(struct vlapic *vlapic, bool *retu) return (0); } - VLAPIC_CTR2(vlapic, "icrlo 0x%016lx triggered ipi %d", icrval, vec); + VLAPIC_CTR2(vlapic, "icrlo 0x%016llx triggered ipi %d", icrval, vec); if (mode == APIC_DELMODE_FIXED || mode == APIC_DELMODE_NMI) { switch (icrval & APIC_DEST_MASK) { @@ -991,14 +988,14 @@ vlapic_icrlo_write_handler(struct vlapic *vlapic, bool *retu) x2apic(vlapic)); break; case APIC_DEST_SELF: - CPU_SETOF(vlapic->vcpuid, &dmask); + CPU_SETOF(((unsigned) vlapic->vcpuid), &dmask); break; case APIC_DEST_ALLISELF: dmask = vm_active_cpus(vlapic->vm); break; case APIC_DEST_ALLESELF: dmask = vm_active_cpus(vlapic->vm); - CPU_CLR(vlapic->vcpuid, &dmask); + CPU_CLR(((unsigned) vlapic->vcpuid), &dmask); break; default: CPU_ZERO(&dmask); /* satisfy gcc */ @@ -1007,9 +1004,9 @@ vlapic_icrlo_write_handler(struct vlapic *vlapic, bool *retu) while ((i = CPU_FFS(&dmask)) != 0) { i--; - CPU_CLR(i, &dmask); + CPU_CLR(((unsigned) i), &dmask); if (mode == APIC_DELMODE_FIXED) { - lapic_intr_edge(vlapic->vm, i, vec); + lapic_intr_edge(vlapic->vm, i, ((int) vec)); vmm_stat_array_incr(vlapic->vm, vlapic->vcpuid, IPIS_SENT, i, 1); VLAPIC_CTR2(vlapic, "vlapic sending ipi %d " @@ -1029,7 +1026,7 @@ vlapic_icrlo_write_handler(struct vlapic *vlapic, bool *retu) return (0); if (vlapic->vcpuid == 0 && dest != 0 && dest < VM_MAXCPU) { - vlapic2 = vm_lapic(vlapic->vm, dest); + vlapic2 = vm_lapic(vlapic->vm, ((int) dest)); /* move from INIT to waiting-for-SIPI state */ if (vlapic2->boot_state == BS_INIT) { @@ -1042,7 +1039,7 @@ vlapic_icrlo_write_handler(struct vlapic *vlapic, bool *retu) if (mode == APIC_DELMODE_STARTUP) { if (vlapic->vcpuid == 0 && dest != 0 && dest < VM_MAXCPU) { - vlapic2 = vm_lapic(vlapic->vm, dest); + vlapic2 = vm_lapic(vlapic->vm, ((int) dest)); /* * Ignore SIPIs in any state other than wait-for-SIPI @@ -1055,8 +1052,8 @@ vlapic_icrlo_write_handler(struct vlapic *vlapic, bool *retu) *retu = true; vmexit = vm_exitinfo(vlapic->vm, vlapic->vcpuid); vmexit->exitcode = VM_EXITCODE_SPINUP_AP; - vmexit->u.spinup_ap.vcpu = dest; - vmexit->u.spinup_ap.rip = vec << PAGE_SHIFT; + vmexit->u.spinup_ap.vcpu = (int) dest; + vmexit->u.spinup_ap.rip = vec << XHYVE_PAGE_SHIFT; return (0); } @@ -1097,10 +1094,10 @@ vlapic_pending_intr(struct vlapic *vlapic, int *vecptr) for (i = 7; i >= 0; i--) { idx = i * 4; val = atomic_load_acq_int(&irrptr[idx]); - bitpos = fls(val); + bitpos = fls((int) val); if (bitpos != 0) { vector = i * 32 + (bitpos - 1); - if (PRIO(vector) > PRIO(lapic->ppr)) { + if (((unsigned) PRIO(vector)) > PRIO(lapic->ppr)) { VLAPIC_CTR1(vlapic, "pending intr %d", vector); if (vecptr != NULL) *vecptr = vector; @@ -1119,8 +1116,10 @@ vlapic_intr_accepted(struct vlapic *vlapic, int vector) uint32_t *irrptr, *isrptr; int idx, stk_top; - if (vlapic->ops.intr_accepted) - return ((*vlapic->ops.intr_accepted)(vlapic, vector)); + if (vlapic->ops.intr_accepted) { + (*vlapic->ops.intr_accepted)(vlapic, vector); + return; + } /* * clear the ready bit for vector being accepted in irr @@ -1143,9 +1142,9 @@ vlapic_intr_accepted(struct vlapic *vlapic, int vector) stk_top = vlapic->isrvec_stk_top; if (stk_top >= ISRVEC_STK_SIZE) - panic("isrvec_stk_top overflow %d", stk_top); + xhyve_abort("isrvec_stk_top overflow %d\n", stk_top); - vlapic->isrvec_stk[stk_top] = vector; + vlapic->isrvec_stk[stk_top] = (uint8_t) vector; vlapic_update_ppr(vlapic); } @@ -1187,7 +1186,7 @@ vlapic_svr_write_handler(struct vlapic *vlapic) int vlapic_read(struct vlapic *vlapic, int mmio_access, uint64_t offset, - uint64_t *data, bool *retu) + uint64_t *data, UNUSED bool *retu) { struct LAPIC *lapic = vlapic->apic_page; uint32_t *reg; @@ -1195,7 +1194,7 @@ vlapic_read(struct vlapic *vlapic, int mmio_access, uint64_t offset, /* Ignore MMIO accesses in x2APIC mode */ if (x2apic(vlapic) && mmio_access) { - VLAPIC_CTR1(vlapic, "MMIO read from offset %#lx in x2APIC mode", + VLAPIC_CTR1(vlapic, "MMIO read from offset %#llx in x2APIC mode", offset); *data = 0; goto done; @@ -1205,7 +1204,7 @@ vlapic_read(struct vlapic *vlapic, int mmio_access, uint64_t offset, /* * XXX Generate GP fault for MSR accesses in xAPIC mode */ - VLAPIC_CTR1(vlapic, "x2APIC MSR read from offset %#lx in " + VLAPIC_CTR1(vlapic, "x2APIC MSR read from offset %#llx in " "xAPIC mode", offset); *data = 0; goto done; @@ -1216,7 +1215,7 @@ vlapic_read(struct vlapic *vlapic, int mmio_access, uint64_t offset, goto done; } - offset &= ~3; + offset &= ~((uint64_t) 3); switch(offset) { case APIC_OFFSET_ID: @@ -1246,18 +1245,39 @@ vlapic_read(struct vlapic *vlapic, int mmio_access, uint64_t offset, case APIC_OFFSET_SVR: *data = lapic->svr; break; - case APIC_OFFSET_ISR0 ... APIC_OFFSET_ISR7: - i = (offset - APIC_OFFSET_ISR0) >> 2; + case APIC_OFFSET_ISR0: + case APIC_OFFSET_ISR1: + case APIC_OFFSET_ISR2: + case APIC_OFFSET_ISR3: + case APIC_OFFSET_ISR4: + case APIC_OFFSET_ISR5: + case APIC_OFFSET_ISR6: + case APIC_OFFSET_ISR7: + i = (int) ((offset - APIC_OFFSET_ISR0) >> 2); reg = &lapic->isr0; *data = *(reg + i); break; - case APIC_OFFSET_TMR0 ... APIC_OFFSET_TMR7: - i = (offset - APIC_OFFSET_TMR0) >> 2; + case APIC_OFFSET_TMR0: + case APIC_OFFSET_TMR1: + case APIC_OFFSET_TMR2: + case APIC_OFFSET_TMR3: + case APIC_OFFSET_TMR4: + case APIC_OFFSET_TMR5: + case APIC_OFFSET_TMR6: + case APIC_OFFSET_TMR7: + i = (int) ((offset - APIC_OFFSET_TMR0) >> 2); reg = &lapic->tmr0; *data = *(reg + i); break; - case APIC_OFFSET_IRR0 ... APIC_OFFSET_IRR7: - i = (offset - APIC_OFFSET_IRR0) >> 2; + case APIC_OFFSET_IRR0: + case APIC_OFFSET_IRR1: + case APIC_OFFSET_IRR2: + case APIC_OFFSET_IRR3: + case APIC_OFFSET_IRR4: + case APIC_OFFSET_IRR5: + case APIC_OFFSET_IRR6: + case APIC_OFFSET_IRR7: + i = (int) ((offset - APIC_OFFSET_IRR0) >> 2); reg = &lapic->irr0; *data = atomic_load_acq_int(reg + i); break; @@ -1273,8 +1293,13 @@ vlapic_read(struct vlapic *vlapic, int mmio_access, uint64_t offset, *data = lapic->icr_hi; break; case APIC_OFFSET_CMCI_LVT: - case APIC_OFFSET_TIMER_LVT ... APIC_OFFSET_ERROR_LVT: - *data = vlapic_get_lvt(vlapic, offset); + case APIC_OFFSET_TIMER_LVT: + case APIC_OFFSET_THERM_LVT: + case APIC_OFFSET_PERF_LVT: + case APIC_OFFSET_LINT0_LVT: + case APIC_OFFSET_LINT1_LVT: + case APIC_OFFSET_ERROR_LVT: + *data = vlapic_get_lvt(vlapic, ((uint32_t) offset)); #ifdef INVARIANTS reg = vlapic_get_lvtptr(vlapic, offset); KASSERT(*data == *reg, ("inconsistent lvt value at " @@ -1302,7 +1327,7 @@ vlapic_read(struct vlapic *vlapic, int mmio_access, uint64_t offset, break; } done: - VLAPIC_CTR2(vlapic, "vlapic read offset %#x, data %#lx", offset, *data); + VLAPIC_CTR2(vlapic, "vlapic read offset %#llx, data %#llx", offset, *data); return 0; } @@ -1314,10 +1339,10 @@ vlapic_write(struct vlapic *vlapic, int mmio_access, uint64_t offset, uint32_t *regptr; int retval; - KASSERT((offset & 0xf) == 0 && offset < PAGE_SIZE, - ("vlapic_write: invalid offset %#lx", offset)); + KASSERT((offset & 0xf) == 0 && offset < XHYVE_PAGE_SIZE, + ("vlapic_write: invalid offset %#llx", offset)); - VLAPIC_CTR2(vlapic, "vlapic write offset %#lx, data %#lx", + VLAPIC_CTR2(vlapic, "vlapic write offset %#llx, data %#llx", offset, data); if (offset > sizeof(*lapic)) @@ -1325,7 +1350,7 @@ vlapic_write(struct vlapic *vlapic, int mmio_access, uint64_t offset, /* Ignore MMIO accesses in x2APIC mode */ if (x2apic(vlapic) && mmio_access) { - VLAPIC_CTR2(vlapic, "MMIO write of %#lx to offset %#lx " + VLAPIC_CTR2(vlapic, "MMIO write of %#llx to offset %#llx " "in x2APIC mode", data, offset); return (0); } @@ -1334,7 +1359,7 @@ vlapic_write(struct vlapic *vlapic, int mmio_access, uint64_t offset, * XXX Generate GP fault for MSR accesses in xAPIC mode */ if (!x2apic(vlapic) && !mmio_access) { - VLAPIC_CTR2(vlapic, "x2APIC MSR write of %#lx to offset %#lx " + VLAPIC_CTR2(vlapic, "x2APIC MSR write of %#llx to offset %#llx " "in xAPIC mode", data, offset); return (0); } @@ -1343,7 +1368,7 @@ vlapic_write(struct vlapic *vlapic, int mmio_access, uint64_t offset, switch(offset) { case APIC_OFFSET_ID: - lapic->id = data; + lapic->id = (uint32_t) data; vlapic_id_write_handler(vlapic); break; case APIC_OFFSET_TPR: @@ -1353,39 +1378,44 @@ vlapic_write(struct vlapic *vlapic, int mmio_access, uint64_t offset, vlapic_process_eoi(vlapic); break; case APIC_OFFSET_LDR: - lapic->ldr = data; + lapic->ldr = (uint32_t) data; vlapic_ldr_write_handler(vlapic); break; case APIC_OFFSET_DFR: - lapic->dfr = data; + lapic->dfr = (uint32_t) data; vlapic_dfr_write_handler(vlapic); break; case APIC_OFFSET_SVR: - lapic->svr = data; + lapic->svr = (uint32_t) data; vlapic_svr_write_handler(vlapic); break; case APIC_OFFSET_ICR_LOW: - lapic->icr_lo = data; + lapic->icr_lo = (uint32_t) data; if (x2apic(vlapic)) lapic->icr_hi = data >> 32; retval = vlapic_icrlo_write_handler(vlapic, retu); break; case APIC_OFFSET_ICR_HI: - lapic->icr_hi = data; + lapic->icr_hi = (uint32_t) data; break; case APIC_OFFSET_CMCI_LVT: - case APIC_OFFSET_TIMER_LVT ... APIC_OFFSET_ERROR_LVT: - regptr = vlapic_get_lvtptr(vlapic, offset); - *regptr = data; - vlapic_lvt_write_handler(vlapic, offset); + case APIC_OFFSET_TIMER_LVT: + case APIC_OFFSET_THERM_LVT: + case APIC_OFFSET_PERF_LVT: + case APIC_OFFSET_LINT0_LVT: + case APIC_OFFSET_LINT1_LVT: + case APIC_OFFSET_ERROR_LVT: + regptr = vlapic_get_lvtptr(vlapic, ((uint32_t) offset)); + *regptr = (uint32_t) data; + vlapic_lvt_write_handler(vlapic, ((uint32_t) offset)); break; case APIC_OFFSET_TIMER_ICR: - lapic->icr_timer = data; + lapic->icr_timer = (uint32_t) data; vlapic_icrtmr_write_handler(vlapic); break; case APIC_OFFSET_TIMER_DCR: - lapic->dcr_timer = data; + lapic->dcr_timer = (uint32_t) data; vlapic_dcr_write_handler(vlapic); break; @@ -1402,9 +1432,30 @@ vlapic_write(struct vlapic *vlapic, int mmio_access, uint64_t offset, case APIC_OFFSET_APR: case APIC_OFFSET_PPR: case APIC_OFFSET_RRR: - case APIC_OFFSET_ISR0 ... APIC_OFFSET_ISR7: - case APIC_OFFSET_TMR0 ... APIC_OFFSET_TMR7: - case APIC_OFFSET_IRR0 ... APIC_OFFSET_IRR7: + case APIC_OFFSET_ISR0: + case APIC_OFFSET_ISR1: + case APIC_OFFSET_ISR2: + case APIC_OFFSET_ISR3: + case APIC_OFFSET_ISR4: + case APIC_OFFSET_ISR5: + case APIC_OFFSET_ISR6: + case APIC_OFFSET_ISR7: + case APIC_OFFSET_TMR0: + case APIC_OFFSET_TMR1: + case APIC_OFFSET_TMR2: + case APIC_OFFSET_TMR3: + case APIC_OFFSET_TMR4: + case APIC_OFFSET_TMR5: + case APIC_OFFSET_TMR6: + case APIC_OFFSET_TMR7: + case APIC_OFFSET_IRR0: + case APIC_OFFSET_IRR1: + case APIC_OFFSET_IRR2: + case APIC_OFFSET_IRR3: + case APIC_OFFSET_IRR4: + case APIC_OFFSET_IRR5: + case APIC_OFFSET_IRR6: + case APIC_OFFSET_IRR7: case APIC_OFFSET_TIMER_CCR: default: // Read only. @@ -1457,7 +1508,7 @@ vlapic_init(struct vlapic *vlapic) * Therefore the timer mutex must be a spinlock because blockable * mutexes cannot be acquired in a critical section. */ - mtx_init(&vlapic->timer_mtx, "vlapic timer mtx", NULL, MTX_SPIN); + VLAPIC_TIMER_LOCK_INIT(vlapic); callout_init(&vlapic->callout, 1); vlapic->msr_apicbase = DEFAULT_APIC_BASE | APICBASE_ENABLED; @@ -1487,7 +1538,7 @@ vlapic_set_apicbase(struct vlapic *vlapic, uint64_t new) { if (vlapic->msr_apicbase != new) { - VLAPIC_CTR2(vlapic, "Changing APIC_BASE MSR from %#lx to %#lx " + VLAPIC_CTR2(vlapic, "Changing APIC_BASE MSR from %#llx to %#llx " "not supported", vlapic->msr_apicbase, new); return (-1); } @@ -1504,7 +1555,7 @@ vlapic_set_x2apic_state(struct vm *vm, int vcpuid, enum x2apic_state state) vlapic = vm_lapic(vm, vcpuid); if (state == X2APIC_DISABLED) - vlapic->msr_apicbase &= ~APICBASE_X2APIC; + vlapic->msr_apicbase &= ~((uint64_t) APICBASE_X2APIC); else vlapic->msr_apicbase |= APICBASE_X2APIC; @@ -1555,7 +1606,7 @@ vlapic_deliver_intr(struct vm *vm, bool level, uint32_t dest, bool phys, while ((vcpuid = CPU_FFS(&dmask)) != 0) { vcpuid--; - CPU_CLR(vcpuid, &dmask); + CPU_CLR(((unsigned) vcpuid), &dmask); if (delmode == IOART_DELEXINT) { vm_inject_extint(vm, vcpuid); } else { @@ -1565,7 +1616,7 @@ vlapic_deliver_intr(struct vm *vm, bool level, uint32_t dest, bool phys, } void -vlapic_post_intr(struct vlapic *vlapic, int hostcpu, int ipinum) +vlapic_post_intr(struct vlapic *vlapic, int hostcpu, UNUSED int ipinum) { /* * Post an interrupt to the vcpu currently running on 'hostcpu'. @@ -1579,7 +1630,8 @@ vlapic_post_intr(struct vlapic *vlapic, int hostcpu, int ipinum) if (vlapic->ops.post_intr) (*vlapic->ops.post_intr)(vlapic, hostcpu); else - ipi_cpu(hostcpu, ipinum); + xhyve_abort("hv_vcpu_interrupt\n"); /* FIXME */ + //ipi_cpu(hostcpu, ipinum); } bool @@ -1646,7 +1698,7 @@ vlapic_set_tmr_level(struct vlapic *vlapic, uint32_t dest, bool phys, lowprio = (delmode == APIC_DELMODE_LOWPRIO); vlapic_calcdest(vlapic->vm, &dmask, dest, phys, lowprio, false); - if (!CPU_ISSET(vlapic->vcpuid, &dmask)) + if (!CPU_ISSET(((unsigned) vlapic->vcpuid), &dmask)) return; VLAPIC_CTR1(vlapic, "vector %d set to level-triggered", vector); diff --git a/vmm/io/vpmtmr.c b/src/vmm/io/vpmtmr.c similarity index 76% rename from vmm/io/vpmtmr.c rename to src/vmm/io/vpmtmr.c index 1e7bb93..4f237e4 100644 --- a/vmm/io/vpmtmr.c +++ b/src/vmm/io/vpmtmr.c @@ -1,5 +1,6 @@ /*- * Copyright (c) 2014, Neel Natu (neel@freebsd.org) + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -24,18 +25,13 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include -__FBSDID("$FreeBSD$"); - -#include -#include -#include -#include -#include - -#include - -#include "vpmtmr.h" +#include +#include +#include +#include +#include +#include +#include /* * The ACPI Power Management timer is a free-running 24- or 32-bit @@ -46,21 +42,24 @@ __FBSDID("$FreeBSD$"); #define PMTMR_FREQ 3579545 /* 3.579545MHz */ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" struct vpmtmr { sbintime_t freq_sbt; sbintime_t baseuptime; uint32_t baseval; }; - -static MALLOC_DEFINE(M_VPMTMR, "vpmtmr", "bhyve virtual acpi timer"); +#pragma clang diagnostic pop struct vpmtmr * -vpmtmr_init(struct vm *vm) +vpmtmr_init(UNUSED struct vm *vm) { struct vpmtmr *vpmtmr; struct bintime bt; - vpmtmr = malloc(sizeof(struct vpmtmr), M_VPMTMR, M_WAITOK | M_ZERO); + vpmtmr = malloc(sizeof(struct vpmtmr)); + assert(vpmtmr); + bzero(vpmtmr, sizeof(struct vpmtmr)); vpmtmr->baseuptime = sbinuptime(); vpmtmr->baseval = 0; @@ -74,12 +73,12 @@ void vpmtmr_cleanup(struct vpmtmr *vpmtmr) { - free(vpmtmr, M_VPMTMR); + free(vpmtmr); } int -vpmtmr_handler(struct vm *vm, int vcpuid, bool in, int port, int bytes, - uint32_t *val) +vpmtmr_handler(struct vm *vm, UNUSED int vcpuid, bool in, UNUSED int port, + int bytes, uint32_t *val) { struct vpmtmr *vpmtmr; sbintime_t now, delta; @@ -96,8 +95,8 @@ vpmtmr_handler(struct vm *vm, int vcpuid, bool in, int port, int bytes, now = sbinuptime(); delta = now - vpmtmr->baseuptime; KASSERT(delta >= 0, ("vpmtmr_handler: uptime went backwards: " - "%#lx to %#lx", vpmtmr->baseuptime, now)); - *val = vpmtmr->baseval + delta / vpmtmr->freq_sbt; + "%#llx to %#llx", vpmtmr->baseuptime, now)); + *val = (uint32_t) (vpmtmr->baseval + (delta / vpmtmr->freq_sbt)); return (0); } diff --git a/vmm/io/vrtc.c b/src/vmm/io/vrtc.c similarity index 78% rename from vmm/io/vrtc.c rename to src/vmm/io/vrtc.c index 18ebc4b..2519744 100644 --- a/vmm/io/vrtc.c +++ b/src/vmm/io/vrtc.c @@ -1,5 +1,6 @@ /*- * Copyright (c) 2014, Neel Natu (neel@freebsd.org) + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -24,65 +25,86 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include -__FBSDID("$FreeBSD$"); +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include - -#include "vmm_ktr.h" -#include "vatpic.h" -#include "vioapic.h" -#include "vrtc.h" +static const u_char bin2bcd_data[] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99 +}; /* Register layout of the RTC */ struct rtcdev { - uint8_t sec; - uint8_t alarm_sec; - uint8_t min; - uint8_t alarm_min; - uint8_t hour; - uint8_t alarm_hour; - uint8_t day_of_week; - uint8_t day_of_month; - uint8_t month; - uint8_t year; - uint8_t reg_a; - uint8_t reg_b; - uint8_t reg_c; - uint8_t reg_d; - uint8_t nvram[36]; - uint8_t century; - uint8_t nvram2[128 - 51]; + uint8_t sec; + uint8_t alarm_sec; + uint8_t min; + uint8_t alarm_min; + uint8_t hour; + uint8_t alarm_hour; + uint8_t day_of_week; + uint8_t day_of_month; + uint8_t month; + uint8_t year; + uint8_t reg_a; + uint8_t reg_b; + uint8_t reg_c; + uint8_t reg_d; + uint8_t nvram[36]; + uint8_t century; + uint8_t nvram2[128 - 51]; } __packed; CTASSERT(sizeof(struct rtcdev) == 128); CTASSERT(offsetof(struct rtcdev, century) == RTC_CENTURY); +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" struct vrtc { - struct vm *vm; - struct mtx mtx; - struct callout callout; - u_int addr; /* RTC register to read or write */ - sbintime_t base_uptime; - time_t base_rtctime; - struct rtcdev rtcdev; + struct vm *vm; + pthread_mutex_t mtx; + struct callout callout; + u_int addr; /* RTC register to read or write */ + sbintime_t base_uptime; + time_t base_rtctime; + struct rtcdev rtcdev; }; -#define VRTC_LOCK(vrtc) mtx_lock(&((vrtc)->mtx)) -#define VRTC_UNLOCK(vrtc) mtx_unlock(&((vrtc)->mtx)) -#define VRTC_LOCKED(vrtc) mtx_owned(&((vrtc)->mtx)) +struct clocktime { + int year; /* year (4 digit year) */ + int mon; /* month (1 - 12) */ + int day; /* day (1 - 31) */ + int hour; /* hour (0 - 23) */ + int min; /* minute (0 - 59) */ + int sec; /* second (0 - 59) */ + int dow; /* day of week (0 - 6; 0 = Sunday) */ + long nsec; /* nano seconds */ +}; +#pragma clang diagnostic pop +#define VRTC_LOCK(vrtc) pthread_mutex_lock(&((vrtc)->mtx)) +#define VRTC_UNLOCK(vrtc) pthread_mutex_unlock(&((vrtc)->mtx)) /* * RTC time is considered "broken" if: * - RTC updates are halted by the guest @@ -101,14 +123,106 @@ struct vrtc { static void vrtc_callout_handler(void *arg); static void vrtc_set_reg_c(struct vrtc *vrtc, uint8_t newval); -static MALLOC_DEFINE(M_VRTC, "vrtc", "bhyve virtual rtc"); - -SYSCTL_DECL(_hw_vmm); -SYSCTL_NODE(_hw_vmm, OID_AUTO, vrtc, CTLFLAG_RW, NULL, NULL); - static int rtc_flag_broken_time = 1; -SYSCTL_INT(_hw_vmm_vrtc, OID_AUTO, flag_broken_time, CTLFLAG_RDTUN, - &rtc_flag_broken_time, 0, "Stop guest when invalid RTC time is detected"); +static clock_serv_t mach_clock; + +#define POSIX_BASE_YEAR 1970 +#define FEBRUARY 2 +#define SECDAY (24 * 60 * 60) +#define days_in_year(y) (leapyear(y) ? 366 : 365) +#define days_in_month(y, m) \ + (month_days[(m) - 1] + (m == FEBRUARY ? leapyear(y) : 0)) +#define day_of_week(days) (((days) + 4) % 7) + +static const int month_days[12] = { + 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 +}; + +static __inline int +leapyear(int year) +{ + int rv = 0; + + if ((year & 3) == 0) { + rv = 1; + if ((year % 100) == 0) { + rv = 0; + if ((year % 400) == 0) + rv = 1; + } + } + return (rv); +} + +static int +clock_ct_to_ts(struct clocktime *ct, struct timespec *ts) +{ + int i, year, days; + + year = ct->year; + + /* Sanity checks. */ + if (ct->mon < 1 || ct->mon > 12 || ct->day < 1 || + ct->day > days_in_month(year, ct->mon) || + ct->hour > 23 || ct->min > 59 || ct->sec > 59 || + (sizeof(time_t) == 4 && year > 2037)) { /* time_t overflow */ + return (EINVAL); + } + + /* + * Compute days since start of time + * First from years, then from months. + */ + days = 0; + for (i = POSIX_BASE_YEAR; i < year; i++) + days += days_in_year(i); + + /* Months */ + for (i = 1; i < ct->mon; i++) + days += days_in_month(year, i); + days += (ct->day - 1); + + ts->tv_sec = (((time_t)days * 24 + ct->hour) * 60 + ct->min) * 60 + + ct->sec; + ts->tv_nsec = ct->nsec; + + return (0); +} + +static void +clock_ts_to_ct(struct timespec *ts, struct clocktime *ct) +{ + int i, year, days; + time_t rsec; /* remainder seconds */ + time_t secs; + + secs = ts->tv_sec; + days = (int) (secs / SECDAY); + rsec = secs % SECDAY; + + ct->dow = day_of_week(days); + + /* Subtract out whole years, counting them in i. */ + for (year = POSIX_BASE_YEAR; days >= days_in_year(year); year++) + days -= days_in_year(year); + ct->year = year; + + /* Subtract out whole months, counting them in i. */ + for (i = 1; days >= days_in_month(year, i); i++) + days -= days_in_month(year, i); + ct->mon = i; + + /* Days are what is left over (+1) from all that. */ + ct->day = days + 1; + + /* Hours, minutes, seconds are easy */ + ct->hour = (int) (rsec / 3600); + rsec = rsec % 3600; + ct->min = (int) (rsec / 60); + rsec = rsec % 60; + ct->sec = (int) rsec; + ct->nsec = ts->tv_nsec; +} static __inline bool divider_enabled(int reg_a) @@ -146,15 +260,13 @@ vrtc_curtime(struct vrtc *vrtc, sbintime_t *basetime) sbintime_t now, delta; time_t t, secs; - KASSERT(VRTC_LOCKED(vrtc), ("%s: vrtc not locked", __func__)); - t = vrtc->base_rtctime; *basetime = vrtc->base_uptime; if (update_enabled(vrtc)) { now = sbinuptime(); delta = now - vrtc->base_uptime; KASSERT(delta >= 0, ("vrtc_curtime: uptime went backwards: " - "%#lx to %#lx", vrtc->base_uptime, now)); + "%#llx to %#llx", vrtc->base_uptime, now)); secs = delta / SBT_1S; t += secs; *basetime += secs * SBT_1S; @@ -169,19 +281,18 @@ rtcset(struct rtcdev *rtc, int val) KASSERT(val >= 0 && val < 100, ("%s: invalid bin2bcd index %d", __func__, val)); - return ((rtc->reg_b & RTCSB_BIN) ? val : bin2bcd_data[val]); + return ((uint8_t) ((rtc->reg_b & RTCSB_BIN) ? val : bin2bcd_data[val])); } static void secs_to_rtc(time_t rtctime, struct vrtc *vrtc, int force_update) { + mach_timespec_t mts; struct clocktime ct; struct timespec ts; struct rtcdev *rtc; int hour; - KASSERT(VRTC_LOCKED(vrtc), ("%s: vrtc not locked", __func__)); - if (rtctime < 0) { KASSERT(rtctime == VRTC_BROKEN_TIME, ("%s: invalid vrtc time %#lx", __func__, rtctime)); @@ -196,8 +307,10 @@ secs_to_rtc(time_t rtctime, struct vrtc *vrtc, int force_update) if (rtc_halted(vrtc) && !force_update) return; - ts.tv_sec = rtctime; - ts.tv_nsec = 0; + clock_get_time(mach_clock, &mts); + ts.tv_sec = mts.tv_sec; + ts.tv_nsec = mts.tv_nsec; + clock_ts_to_ct(&ts, &ct); KASSERT(ct.sec >= 0 && ct.sec <= 59, ("invalid clocktime sec %d", @@ -212,8 +325,7 @@ secs_to_rtc(time_t rtctime, struct vrtc *vrtc, int force_update) ct.day)); KASSERT(ct.mon >= 1 && ct.mon <= 12, ("invalid clocktime month %d", ct.mon)); - KASSERT(ct.year >= POSIX_BASE_YEAR, ("invalid clocktime year %d", - ct.year)); + KASSERT(ct.year >= 1900, ("invalid clocktime year %d", ct.year)); rtc = &vrtc->rtcdev; rtc->sec = rtcset(rtc, ct.sec); @@ -282,8 +394,6 @@ rtc_to_secs(struct vrtc *vrtc) struct vm *vm; int century, error, hour, pm, year; - KASSERT(VRTC_LOCKED(vrtc), ("%s: vrtc not locked", __func__)); - vm = vrtc->vm; rtc = &vrtc->rtcdev; @@ -367,7 +477,7 @@ rtc_to_secs(struct vrtc *vrtc) error = rtcget(rtc, rtc->century, ¢ury); ct.year = century * 100 + year; - if (error || ct.year < POSIX_BASE_YEAR) { + if (error || ct.year < 1900) { VM_CTR2(vm, "Invalid RTC century %#x/%d", rtc->century, ct.year); goto fail; @@ -399,8 +509,6 @@ vrtc_time_update(struct vrtc *vrtc, time_t newtime, sbintime_t newbase) time_t oldtime; uint8_t alarm_sec, alarm_min, alarm_hour; - KASSERT(VRTC_LOCKED(vrtc), ("%s: vrtc not locked", __func__)); - rtc = &vrtc->rtcdev; alarm_sec = rtc->alarm_sec; alarm_min = rtc->alarm_min; @@ -411,7 +519,7 @@ vrtc_time_update(struct vrtc *vrtc, time_t newtime, sbintime_t newbase) oldtime, newtime); oldbase = vrtc->base_uptime; - VM_CTR2(vrtc->vm, "Updating RTC base uptime from %#lx to %#lx", + VM_CTR2(vrtc->vm, "Updating RTC base uptime from %#llx to %#llx", oldbase, newbase); vrtc->base_uptime = newbase; @@ -494,8 +602,6 @@ vrtc_freq(struct vrtc *vrtc) SBT_1S / 2, }; - KASSERT(VRTC_LOCKED(vrtc), ("%s: vrtc not locked", __func__)); - /* * If both periodic and alarm interrupts are enabled then use the * periodic frequency to drive the callout. The minimum periodic @@ -518,9 +624,6 @@ vrtc_freq(struct vrtc *vrtc) static void vrtc_callout_reset(struct vrtc *vrtc, sbintime_t freqsbt) { - - KASSERT(VRTC_LOCKED(vrtc), ("%s: vrtc not locked", __func__)); - if (freqsbt == 0) { if (callout_active(&vrtc->callout)) { VM_CTR0(vrtc->vm, "RTC callout stopped"); @@ -528,7 +631,7 @@ vrtc_callout_reset(struct vrtc *vrtc, sbintime_t freqsbt) } return; } - VM_CTR1(vrtc->vm, "RTC callout frequency %d hz", SBT_1S / freqsbt); + VM_CTR1(vrtc->vm, "RTC callout frequency %lld hz", SBT_1S / freqsbt); callout_reset_sbt(&vrtc->callout, freqsbt, 0, vrtc_callout_handler, vrtc, 0); } @@ -579,7 +682,7 @@ vrtc_callout_check(struct vrtc *vrtc, sbintime_t freq) active = callout_active(&vrtc->callout) ? 1 : 0; KASSERT((freq == 0 && !active) || (freq != 0 && active), - ("vrtc callout %s with frequency %#lx", + ("vrtc callout %s with frequency %#llx", active ? "active" : "inactive", freq)); } @@ -590,8 +693,6 @@ vrtc_set_reg_c(struct vrtc *vrtc, uint8_t newval) int oldirqf, newirqf; uint8_t oldval, changed; - KASSERT(VRTC_LOCKED(vrtc), ("%s: vrtc not locked", __func__)); - rtc = &vrtc->rtcdev; newval &= RTCIR_ALARM | RTCIR_PERIOD | RTCIR_UPDATE; @@ -605,7 +706,7 @@ vrtc_set_reg_c(struct vrtc *vrtc, uint8_t newval) } oldval = rtc->reg_c; - rtc->reg_c = newirqf | newval; + rtc->reg_c = (uint8_t) (newirqf | newval); changed = oldval ^ rtc->reg_c; if (changed) { VM_CTR2(vrtc->vm, "RTC reg_c changed from %#x to %#x", @@ -630,8 +731,6 @@ vrtc_set_reg_b(struct vrtc *vrtc, uint8_t newval) int error; uint8_t oldval, changed; - KASSERT(VRTC_LOCKED(vrtc), ("%s: vrtc not locked", __func__)); - rtc = &vrtc->rtcdev; oldval = rtc->reg_b; oldfreq = vrtc_freq(vrtc); @@ -703,14 +802,12 @@ vrtc_set_reg_a(struct vrtc *vrtc, uint8_t newval) sbintime_t oldfreq, newfreq; uint8_t oldval, changed; - KASSERT(VRTC_LOCKED(vrtc), ("%s: vrtc not locked", __func__)); - newval &= ~RTCSA_TUP; oldval = vrtc->rtcdev.reg_a; oldfreq = vrtc_freq(vrtc); if (divider_enabled(oldval) && !divider_enabled(newval)) { - VM_CTR2(vrtc->vm, "RTC divider held in reset at %#lx/%#lx", + VM_CTR2(vrtc->vm, "RTC divider held in reset at %#lx/%#llx", vrtc->base_rtctime, vrtc->base_uptime); } else if (!divider_enabled(oldval) && divider_enabled(newval)) { /* @@ -720,7 +817,7 @@ vrtc_set_reg_a(struct vrtc *vrtc, uint8_t newval) * while the dividers were disabled. */ vrtc->base_uptime = sbinuptime(); - VM_CTR2(vrtc->vm, "RTC divider out of reset at %#lx/%#lx", + VM_CTR2(vrtc->vm, "RTC divider out of reset at %#lx/%#llx", vrtc->base_rtctime, vrtc->base_uptime); } else { /* NOTHING */ @@ -790,8 +887,10 @@ vrtc_nvram_write(struct vm *vm, int offset, uint8_t value) /* * Don't allow writes to RTC control registers or the date/time fields. */ - if (offset < offsetof(struct rtcdev, nvram[0]) || - offset == RTC_CENTURY || offset >= sizeof(struct rtcdev)) { + if (((unsigned long) offset) < offsetof(struct rtcdev, nvram) || + offset == RTC_CENTURY || + ((unsigned long) offset) >= sizeof(struct rtcdev)) + { VM_CTR1(vrtc->vm, "RTC nvram write to invalid offset %d", offset); return (EINVAL); @@ -817,7 +916,7 @@ vrtc_nvram_read(struct vm *vm, int offset, uint8_t *retval) /* * Allow all offsets in the RTC to be read. */ - if (offset < 0 || offset >= sizeof(struct rtcdev)) + if (offset < 0 || ((unsigned long) offset) >= sizeof(struct rtcdev)) return (EINVAL); vrtc = vm_rtc(vm); @@ -839,8 +938,8 @@ vrtc_nvram_read(struct vm *vm, int offset, uint8_t *retval) } int -vrtc_addr_handler(struct vm *vm, int vcpuid, bool in, int port, int bytes, - uint32_t *val) +vrtc_addr_handler(struct vm *vm, UNUSED int vcpuid, bool in, UNUSED int port, + int bytes, uint32_t *val) { struct vrtc *vrtc; @@ -862,8 +961,8 @@ vrtc_addr_handler(struct vm *vm, int vcpuid, bool in, int port, int bytes, } int -vrtc_data_handler(struct vm *vm, int vcpuid, bool in, int port, int bytes, - uint32_t *val) +vrtc_data_handler(struct vm *vm, int vcpuid, bool in, UNUSED int port, + int bytes, uint32_t *val) { struct vrtc *vrtc; struct rtcdev *rtc; @@ -878,8 +977,8 @@ vrtc_data_handler(struct vm *vm, int vcpuid, bool in, int port, int bytes, return (-1); VRTC_LOCK(vrtc); - offset = vrtc->addr; - if (offset >= sizeof(struct rtcdev)) { + offset = (int) vrtc->addr; + if (((unsigned long) offset) >= sizeof(struct rtcdev)) { VRTC_UNLOCK(vrtc); return (-1); } @@ -916,11 +1015,11 @@ vrtc_data_handler(struct vm *vm, int vcpuid, bool in, int port, int bytes, switch (offset) { case 10: VCPU_CTR1(vm, vcpuid, "RTC reg_a set to %#x", *val); - vrtc_set_reg_a(vrtc, *val); + vrtc_set_reg_a(vrtc, ((uint8_t) *val)); break; case 11: VCPU_CTR1(vm, vcpuid, "RTC reg_b set to %#x", *val); - error = vrtc_set_reg_b(vrtc, *val); + error = vrtc_set_reg_b(vrtc, ((uint8_t) *val)); break; case 12: VCPU_CTR1(vm, vcpuid, "RTC reg_c set to %#x (ignored)", @@ -939,7 +1038,7 @@ vrtc_data_handler(struct vm *vm, int vcpuid, bool in, int port, int bytes, default: VCPU_CTR2(vm, vcpuid, "RTC offset %#x set to %#x", offset, *val); - *((uint8_t *)rtc + offset) = *val; + *((uint8_t *)rtc + offset) = ((uint8_t) *val); break; } @@ -981,9 +1080,15 @@ vrtc_init(struct vm *vm) struct rtcdev *rtc; time_t curtime; - vrtc = malloc(sizeof(struct vrtc), M_VRTC, M_WAITOK | M_ZERO); + vrtc = malloc(sizeof(struct vrtc)); + assert(vrtc); + bzero(vrtc, sizeof(struct vrtc)); vrtc->vm = vm; - mtx_init(&vrtc->mtx, "vrtc lock", NULL, MTX_DEF); + + pthread_mutex_init(&vrtc->mtx, NULL); + + host_get_clock_service(mach_host_self(), CALENDAR_CLOCK, &mach_clock); + callout_init(&vrtc->callout, 1); /* Allow dividers to keep time but disable everything else */ @@ -1013,7 +1118,7 @@ vrtc_init(struct vm *vm) void vrtc_cleanup(struct vrtc *vrtc) { - callout_drain(&vrtc->callout); - free(vrtc, M_VRTC); + mach_port_deallocate(mach_task_self(), mach_clock); + free(vrtc); } diff --git a/vmm/vmm.c b/src/vmm/vmm.c similarity index 56% rename from vmm/vmm.c rename to src/vmm/vmm.c index 51c63f5..bf25c3b 100644 --- a/vmm/vmm.c +++ b/src/vmm/vmm.c @@ -1,5 +1,6 @@ /*- * Copyright (c) 2011 NetApp, Inc. + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,64 +27,40 @@ * $FreeBSD$ */ -#include -__FBSDID("$FreeBSD$"); - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include "vmm_ioport.h" -#include "vmm_ktr.h" -#include "vmm_host.h" -#include "vmm_mem.h" -#include "vmm_util.h" -#include "vatpic.h" -#include "vatpit.h" -#include "vhpet.h" -#include "vioapic.h" -#include "vlapic.h" -#include "vpmtmr.h" -#include "vrtc.h" -#include "vmm_stat.h" -#include "vmm_lapic.h" - -#include "io/ppt.h" -#include "io/iommu.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include struct vlapic; +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" /* * Initialization: * (a) allocated when vcpu is created @@ -92,37 +69,37 @@ struct vlapic; * (x) initialized before use */ struct vcpu { - struct mtx mtx; /* (o) protects 'state' and 'hostcpu' */ - enum vcpu_state state; /* (o) vcpu state */ - int hostcpu; /* (o) vcpu's host cpu */ - struct vlapic *vlapic; /* (i) APIC device model */ - enum x2apic_state x2apic_state; /* (i) APIC mode */ - uint64_t exitintinfo; /* (i) events pending at VM exit */ - int nmi_pending; /* (i) NMI pending */ - int extint_pending; /* (i) INTR pending */ - int exception_pending; /* (i) exception pending */ - int exc_vector; /* (x) exception collateral */ - int exc_errcode_valid; + OSSpinLock lock; /* (o) protects 'state' */ + pthread_mutex_t state_sleep_mtx; + pthread_cond_t state_sleep_cnd; + pthread_mutex_t vcpu_sleep_mtx; + pthread_cond_t vcpu_sleep_cnd; + enum vcpu_state state; /* (o) vcpu state */ + struct vlapic *vlapic; /* (i) APIC device model */ + enum x2apic_state x2apic_state; /* (i) APIC mode */ + uint64_t exitintinfo; /* (i) events pending at VM exit */ + int nmi_pending; /* (i) NMI pending */ + int extint_pending; /* (i) INTR pending */ + int exception_pending; /* (i) exception pending */ + int exc_vector; /* (x) exception collateral */ + int exc_errcode_valid; uint32_t exc_errcode; - struct savefpu *guestfpu; /* (a,i) guest fpu state */ - uint64_t guest_xcr0; /* (i) guest %xcr0 register */ - void *stats; /* (a,i) statistics */ - struct vm_exit exitinfo; /* (x) exit reason and collateral */ - uint64_t nextrip; /* (x) next instruction to execute */ + uint64_t guest_xcr0; /* (i) guest %xcr0 register */ + void *stats; /* (a,i) statistics */ + struct vm_exit exitinfo; /* (x) exit reason and collateral */ + uint64_t nextrip; /* (x) next instruction to execute */ }; -#define vcpu_lock_initialized(v) mtx_initialized(&((v)->mtx)) -#define vcpu_lock_init(v) mtx_init(&((v)->mtx), "vcpu lock", 0, MTX_SPIN) -#define vcpu_lock(v) mtx_lock_spin(&((v)->mtx)) -#define vcpu_unlock(v) mtx_unlock_spin(&((v)->mtx)) -#define vcpu_assert_locked(v) mtx_assert(&((v)->mtx), MA_OWNED) +#define vcpu_lock_init(v) (v)->lock = OS_SPINLOCK_INIT; +#define vcpu_lock(v) OSSpinLockLock(&(v)->lock) +#define vcpu_unlock(v) OSSpinLockUnlock(&(v)->lock) struct mem_seg { - vm_paddr_t gpa; - size_t len; - boolean_t wired; - vm_object_t object; + uint64_t gpa; + size_t len; + void *object; }; + #define VM_MAX_MEMORY_SEGMENTS 2 /* @@ -132,94 +109,75 @@ struct mem_seg { * (x) initialized before use */ struct vm { - void *cookie; /* (i) cpu-specific data */ - void *iommu; /* (x) iommu-specific data */ - struct vhpet *vhpet; /* (i) virtual HPET */ - struct vioapic *vioapic; /* (i) virtual ioapic */ - struct vatpic *vatpic; /* (i) virtual atpic */ - struct vatpit *vatpit; /* (i) virtual atpit */ - struct vpmtmr *vpmtmr; /* (i) virtual ACPI PM timer */ - struct vrtc *vrtc; /* (o) virtual RTC */ - volatile cpuset_t active_cpus; /* (i) active vcpus */ - int suspend; /* (i) stop VM execution */ - volatile cpuset_t suspended_cpus; /* (i) suspended vcpus */ - volatile cpuset_t halted_cpus; /* (x) cpus in a hard halt */ - cpuset_t rendezvous_req_cpus; /* (x) rendezvous requested */ - cpuset_t rendezvous_done_cpus; /* (x) rendezvous finished */ - void *rendezvous_arg; /* (x) rendezvous func/arg */ + void *cookie; /* (i) cpu-specific data */ + struct vhpet *vhpet; /* (i) virtual HPET */ + struct vioapic *vioapic; /* (i) virtual ioapic */ + struct vatpic *vatpic; /* (i) virtual atpic */ + struct vatpit *vatpit; /* (i) virtual atpit */ + struct vpmtmr *vpmtmr; /* (i) virtual ACPI PM timer */ + struct vrtc *vrtc; /* (o) virtual RTC */ + volatile cpuset_t active_cpus; /* (i) active vcpus */ + int suspend; /* (i) stop VM execution */ + volatile cpuset_t suspended_cpus; /* (i) suspended vcpus */ + volatile cpuset_t halted_cpus; /* (x) cpus in a hard halt */ + cpuset_t rendezvous_req_cpus; /* (x) rendezvous requested */ + cpuset_t rendezvous_done_cpus; /* (x) rendezvous finished */ + void *rendezvous_arg; /* (x) rendezvous func/arg */ vm_rendezvous_func_t rendezvous_func; - struct mtx rendezvous_mtx; /* (o) rendezvous lock */ - int num_mem_segs; /* (o) guest memory segments */ - struct mem_seg mem_segs[VM_MAX_MEMORY_SEGMENTS]; - struct vmspace *vmspace; /* (o) guest's address space */ - char name[VM_MAX_NAMELEN]; /* (o) virtual machine name */ - struct vcpu vcpu[VM_MAXCPU]; /* (i) guest vcpus */ + pthread_mutex_t rendezvous_mtx; /* (o) rendezvous lock */ + pthread_cond_t rendezvous_sleep_cnd; + int num_mem_segs; /* (o) guest memory segments */ + struct mem_seg mem_segs[VM_MAX_MEMORY_SEGMENTS]; + struct vcpu vcpu[VM_MAXCPU]; /* (i) guest vcpus */ }; +#pragma clang diagnostic pop static int vmm_initialized; static struct vmm_ops *ops; -#define VMM_INIT(num) (ops != NULL ? (*ops->init)(num) : 0) -#define VMM_CLEANUP() (ops != NULL ? (*ops->cleanup)() : 0) -#define VMM_RESUME() (ops != NULL ? (*ops->resume)() : 0) -#define VMINIT(vm, pmap) (ops != NULL ? (*ops->vminit)(vm, pmap): NULL) -#define VMRUN(vmi, vcpu, rip, pmap, rptr, sptr) \ - (ops != NULL ? (*ops->vmrun)(vmi, vcpu, rip, pmap, rptr, sptr) : ENXIO) -#define VMCLEANUP(vmi) (ops != NULL ? (*ops->vmcleanup)(vmi) : NULL) -#define VMSPACE_ALLOC(min, max) \ - (ops != NULL ? (*ops->vmspace_alloc)(min, max) : NULL) -#define VMSPACE_FREE(vmspace) \ - (ops != NULL ? (*ops->vmspace_free)(vmspace) : ENXIO) -#define VMGETREG(vmi, vcpu, num, retval) \ - (ops != NULL ? (*ops->vmgetreg)(vmi, vcpu, num, retval) : ENXIO) -#define VMSETREG(vmi, vcpu, num, val) \ - (ops != NULL ? (*ops->vmsetreg)(vmi, vcpu, num, val) : ENXIO) -#define VMGETDESC(vmi, vcpu, num, desc) \ - (ops != NULL ? (*ops->vmgetdesc)(vmi, vcpu, num, desc) : ENXIO) -#define VMSETDESC(vmi, vcpu, num, desc) \ - (ops != NULL ? (*ops->vmsetdesc)(vmi, vcpu, num, desc) : ENXIO) -#define VMGETCAP(vmi, vcpu, num, retval) \ - (ops != NULL ? (*ops->vmgetcap)(vmi, vcpu, num, retval) : ENXIO) -#define VMSETCAP(vmi, vcpu, num, val) \ - (ops != NULL ? (*ops->vmsetcap)(vmi, vcpu, num, val) : ENXIO) -#define VLAPIC_INIT(vmi, vcpu) \ - (ops != NULL ? (*ops->vlapic_init)(vmi, vcpu) : NULL) -#define VLAPIC_CLEANUP(vmi, vlapic) \ - (ops != NULL ? (*ops->vlapic_cleanup)(vmi, vlapic) : NULL) - -#define fpu_start_emulating() load_cr0(rcr0() | CR0_TS) -#define fpu_stop_emulating() clts() - -static MALLOC_DEFINE(M_VM, "vm", "vm"); +#define VMM_INIT() \ + (*ops->init)() +#define VMM_CLEANUP() \ + (*ops->cleanup)() +#define VM_INIT(vmi) \ + (*ops->vm_init)(vmi) +#define VCPU_INIT(vmi, vcpu) \ + (*ops->vcpu_init)(vmi, vcpu) +#define VMRUN(vmi, vcpu, rip, rptr, sptr) \ + (*ops->vmrun)(vmi, vcpu, rip, rptr, sptr) +#define VM_CLEANUP(vmi) \ + (*ops->vm_cleanup)(vmi) +#define VCPU_CLEANUP(vmi, vcpu) \ + (*ops->vcpu_cleanup)(vmi, vcpu) +#define VMGETREG(vmi, vcpu, num, retval) \ + (*ops->vmgetreg)(vmi, vcpu, num, retval) +#define VMSETREG(vmi, vcpu, num, val) \ + (*ops->vmsetreg)(vmi, vcpu, num, val) +#define VMGETDESC(vmi, vcpu, num, desc) \ + (*ops->vmgetdesc)(vmi, vcpu, num, desc) +#define VMSETDESC(vmi, vcpu, num, desc) \ + (*ops->vmsetdesc)(vmi, vcpu, num, desc) +#define VMGETCAP(vmi, vcpu, num, retval) \ + (*ops->vmgetcap)(vmi, vcpu, num, retval) +#define VMSETCAP(vmi, vcpu, num, val) \ + (*ops->vmsetcap)(vmi, vcpu, num, val) +#define VLAPIC_INIT(vmi, vcpu) \ + (*ops->vlapic_init)(vmi, vcpu) +#define VLAPIC_CLEANUP(vmi, vlapic) \ + (*ops->vlapic_cleanup)(vmi, vlapic) +#define VCPU_INTERRUPT(vcpu) \ + (*ops->vcpu_interrupt)(vcpu) /* statistics */ -static VMM_STAT(VCPU_TOTAL_RUNTIME, "vcpu total runtime"); - -SYSCTL_NODE(_hw, OID_AUTO, vmm, CTLFLAG_RW, NULL, NULL); +//static VMM_STAT(VCPU_TOTAL_RUNTIME, "vcpu total runtime"); /* * Halt the guest if all vcpus are executing a HLT instruction with * interrupts disabled. */ static int halt_detection_enabled = 1; -SYSCTL_INT(_hw_vmm, OID_AUTO, halt_detection, CTLFLAG_RDTUN, - &halt_detection_enabled, 0, - "Halt VM if all vcpus execute HLT with interrupts disabled"); - -static int vmm_ipinum; -SYSCTL_INT(_hw_vmm, OID_AUTO, ipinum, CTLFLAG_RD, &vmm_ipinum, 0, - "IPI vector used for vcpu notifications"); - -static int trace_guest_exceptions; -SYSCTL_INT(_hw_vmm, OID_AUTO, trace_guest_exceptions, CTLFLAG_RDTUN, - &trace_guest_exceptions, 0, - "Trap into hypervisor on all guest exceptions and reflect them back"); - -static int vmm_force_iommu = 0; -TUNABLE_INT("hw.vmm.force_iommu", &vmm_force_iommu); -SYSCTL_INT(_hw_vmm, OID_AUTO, force_iommu, CTLFLAG_RDTUN, &vmm_force_iommu, 0, - "Force use of I/O MMU even if no passthrough devices were found."); +static int trace_guest_exceptions = 0; static void vcpu_cleanup(struct vm *vm, int i, bool destroy) @@ -229,7 +187,6 @@ vcpu_cleanup(struct vm *vm, int i, bool destroy) VLAPIC_CLEANUP(vm->cookie, vcpu->vlapic); if (destroy) { vmm_stat_free(vcpu->stats); - fpu_save_area_free(vcpu->guestfpu); } } @@ -244,12 +201,12 @@ vcpu_init(struct vm *vm, int vcpu_id, bool create) vcpu = &vm->vcpu[vcpu_id]; if (create) { - KASSERT(!vcpu_lock_initialized(vcpu), ("vcpu %d already " - "initialized", vcpu_id)); vcpu_lock_init(vcpu); + pthread_mutex_init(&vcpu->state_sleep_mtx, NULL); + pthread_cond_init(&vcpu->state_sleep_cnd, NULL); + pthread_mutex_init(&vcpu->vcpu_sleep_mtx, NULL); + pthread_cond_init(&vcpu->vcpu_sleep_cnd, NULL); vcpu->state = VCPU_IDLE; - vcpu->hostcpu = NOCPU; - vcpu->guestfpu = fpu_save_area_alloc(); vcpu->stats = vmm_stat_alloc(); } @@ -260,14 +217,26 @@ vcpu_init(struct vm *vm, int vcpu_id, bool create) vcpu->extint_pending = 0; vcpu->exception_pending = 0; vcpu->guest_xcr0 = XFEATURE_ENABLED_X87; - fpu_save_area_reset(vcpu->guestfpu); vmm_stat_init(vcpu->stats); } -int -vcpu_trace_exceptions(struct vm *vm, int vcpuid) -{ +int vcpu_create(struct vm *vm, int vcpu) { + if (vcpu < 0 || vcpu >= VM_MAXCPU) + xhyve_abort("vcpu_create: invalid cpuid %d\n", vcpu); + return VCPU_INIT(vm->cookie, vcpu); +} + +void vcpu_destroy(struct vm *vm, int vcpu) { + if (vcpu < 0 || vcpu >= VM_MAXCPU) + xhyve_abort("vcpu_destroy: invalid cpuid %d\n", vcpu); + + VCPU_CLEANUP(vm, vcpu); +} + +int +vcpu_trace_exceptions(void) +{ return (trace_guest_exceptions); } @@ -277,150 +246,91 @@ vm_exitinfo(struct vm *vm, int cpuid) struct vcpu *vcpu; if (cpuid < 0 || cpuid >= VM_MAXCPU) - panic("vm_exitinfo: invalid cpuid %d", cpuid); + xhyve_abort("vm_exitinfo: invalid cpuid %d\n", cpuid); vcpu = &vm->vcpu[cpuid]; return (&vcpu->exitinfo); } -static void -vmm_resume(void) -{ - VMM_RESUME(); -} - -static int +int vmm_init(void) { int error; vmm_host_state_init(); - vmm_ipinum = lapic_ipi_alloc(&IDTVEC(justreturn)); - if (vmm_ipinum < 0) - vmm_ipinum = IPI_AST; - error = vmm_mem_init(); if (error) return (error); - if (vmm_is_intel()) - ops = &vmm_ops_intel; - else if (vmm_is_amd()) - ops = &vmm_ops_amd; - else - return (ENXIO); + ops = &vmm_ops_intel; - vmm_resume_p = vmm_resume; + error = VMM_INIT(); - return (VMM_INIT(vmm_ipinum)); -} + if (error == 0) + vmm_initialized = 1; -static int -vmm_handler(module_t mod, int what, void *arg) -{ - int error; - - switch (what) { - case MOD_LOAD: - vmmdev_init(); - if (vmm_force_iommu || ppt_avail_devices() > 0) - iommu_init(); - error = vmm_init(); - if (error == 0) - vmm_initialized = 1; - break; - case MOD_UNLOAD: - error = vmmdev_cleanup(); - if (error == 0) { - vmm_resume_p = NULL; - iommu_cleanup(); - if (vmm_ipinum != IPI_AST) - lapic_ipi_free(vmm_ipinum); - error = VMM_CLEANUP(); - /* - * Something bad happened - prevent new - * VMs from being created - */ - if (error) - vmm_initialized = 0; - } - break; - default: - error = 0; - break; - } return (error); } -static moduledata_t vmm_kmod = { - "vmm", - vmm_handler, - NULL -}; -/* - * vmm initialization has the following dependencies: - * - * - iommu initialization must happen after the pci passthru driver has had - * a chance to attach to any passthru devices (after SI_SUB_CONFIGURE). - * - * - VT-x initialization requires smp_rendezvous() and therefore must happen - * after SMP is fully functional (after SI_SUB_SMP). - */ -DECLARE_MODULE(vmm, vmm_kmod, SI_SUB_SMP + 1, SI_ORDER_ANY); -MODULE_VERSION(vmm, 1); +int +vmm_cleanup(void) { + int error; + + error = VMM_CLEANUP(); + + if (error == 0) + vmm_initialized = 0; + + return error; +} static void vm_init(struct vm *vm, bool create) { - int i; + int vcpu; - vm->cookie = VMINIT(vm, vmspace_pmap(vm->vmspace)); - vm->iommu = NULL; + if (create) { + callout_system_init(); + } + + vm->cookie = VM_INIT(vm); vm->vioapic = vioapic_init(vm); vm->vhpet = vhpet_init(vm); vm->vatpic = vatpic_init(vm); vm->vatpit = vatpit_init(vm); vm->vpmtmr = vpmtmr_init(vm); - if (create) + + if (create) { vm->vrtc = vrtc_init(vm); + } CPU_ZERO(&vm->active_cpus); vm->suspend = 0; CPU_ZERO(&vm->suspended_cpus); - for (i = 0; i < VM_MAXCPU; i++) - vcpu_init(vm, i, create); + for (vcpu = 0; vcpu < VM_MAXCPU; vcpu++) { + vcpu_init(vm, vcpu, create); + } } int -vm_create(const char *name, struct vm **retvm) +vm_create(struct vm **retvm) { struct vm *vm; - struct vmspace *vmspace; - /* - * If vmm.ko could not be successfully initialized then don't attempt - * to create the virtual machine. - */ if (!vmm_initialized) return (ENXIO); - if (name == NULL || strlen(name) >= VM_MAX_NAMELEN) - return (EINVAL); - - vmspace = VMSPACE_ALLOC(0, VM_MAXUSER_ADDRESS); - if (vmspace == NULL) - return (ENOMEM); - - vm = malloc(sizeof(struct vm), M_VM, M_WAITOK | M_ZERO); - strcpy(vm->name, name); + vm = malloc(sizeof(struct vm)); + assert(vm); + bzero(vm, sizeof(struct vm)); vm->num_mem_segs = 0; - vm->vmspace = vmspace; - mtx_init(&vm->rendezvous_mtx, "vm rendezvous lock", 0, MTX_DEF); + pthread_mutex_init(&vm->rendezvous_mtx, NULL); + pthread_cond_init(&vm->rendezvous_sleep_cnd, NULL); vm_init(vm, true); @@ -429,11 +339,11 @@ vm_create(const char *name, struct vm **retvm) } static void -vm_free_mem_seg(struct vm *vm, struct mem_seg *seg) +vm_free_mem_seg(struct mem_seg *seg) { - - if (seg->object != NULL) - vmm_mem_free(vm->vmspace, seg->gpa, seg->len); + if (seg->object != NULL) { + vmm_mem_free(seg->gpa, seg->len, seg->object); + } bzero(seg, sizeof(*seg)); } @@ -441,36 +351,31 @@ vm_free_mem_seg(struct vm *vm, struct mem_seg *seg) static void vm_cleanup(struct vm *vm, bool destroy) { - int i; + int i, vcpu; - ppt_unassign_all(vm); + for (vcpu = 0; vcpu < VM_MAXCPU; vcpu++) { + vcpu_cleanup(vm, vcpu, destroy); + } - if (vm->iommu != NULL) - iommu_destroy_domain(vm->iommu); - - if (destroy) + if (destroy) { vrtc_cleanup(vm->vrtc); - else + } else { vrtc_reset(vm->vrtc); + } vpmtmr_cleanup(vm->vpmtmr); vatpit_cleanup(vm->vatpit); vhpet_cleanup(vm->vhpet); vatpic_cleanup(vm->vatpic); vioapic_cleanup(vm->vioapic); - for (i = 0; i < VM_MAXCPU; i++) - vcpu_cleanup(vm, i, destroy); - - VMCLEANUP(vm->cookie); + VM_CLEANUP(vm->cookie); if (destroy) { - for (i = 0; i < vm->num_mem_segs; i++) - vm_free_mem_seg(vm, &vm->mem_segs[i]); + for (i = 0; i < vm->num_mem_segs; i++) { + vm_free_mem_seg(&vm->mem_segs[i]); + } vm->num_mem_segs = 0; - - VMSPACE_FREE(vm->vmspace); - vm->vmspace = NULL; } } @@ -478,7 +383,7 @@ void vm_destroy(struct vm *vm) { vm_cleanup(vm, true); - free(vm, M_VM); + free(vm); } int @@ -501,35 +406,16 @@ vm_reinit(struct vm *vm) } const char * -vm_name(struct vm *vm) +vm_name(UNUSED struct vm *vm) { - return (vm->name); + return "VM"; } -int -vm_map_mmio(struct vm *vm, vm_paddr_t gpa, size_t len, vm_paddr_t hpa) -{ - vm_object_t obj; - - if ((obj = vmm_mmio_alloc(vm->vmspace, gpa, len, hpa)) == NULL) - return (ENOMEM); - else - return (0); -} - -int -vm_unmap_mmio(struct vm *vm, vm_paddr_t gpa, size_t len) -{ - - vmm_mmio_free(vm->vmspace, gpa, len); - return (0); -} - -boolean_t -vm_mem_allocated(struct vm *vm, vm_paddr_t gpa) +bool +vm_mem_allocated(struct vm *vm, uint64_t gpa) { int i; - vm_paddr_t gpabase, gpalimit; + uint64_t gpabase, gpalimit; for (i = 0; i < vm->num_mem_segs; i++) { gpabase = vm->mem_segs[i].gpa; @@ -538,21 +424,18 @@ vm_mem_allocated(struct vm *vm, vm_paddr_t gpa) return (TRUE); /* 'gpa' is regular memory */ } - if (ppt_is_mmio(vm, gpa)) - return (TRUE); /* 'gpa' is pci passthru mmio */ - return (FALSE); } int -vm_malloc(struct vm *vm, vm_paddr_t gpa, size_t len) +vm_malloc(struct vm *vm, uint64_t gpa, size_t len) { int available, allocated; struct mem_seg *seg; - vm_object_t object; - vm_paddr_t g; + void *object; + uint64_t g; - if ((gpa & PAGE_MASK) || (len & PAGE_MASK) || len == 0) + if ((gpa & XHYVE_PAGE_MASK) || (len & XHYVE_PAGE_MASK) || len == 0) return (EINVAL); available = allocated = 0; @@ -563,7 +446,7 @@ vm_malloc(struct vm *vm, vm_paddr_t gpa, size_t len) else available++; - g += PAGE_SIZE; + g += XHYVE_PAGE_SIZE; } /* @@ -585,220 +468,32 @@ vm_malloc(struct vm *vm, vm_paddr_t gpa, size_t len) seg = &vm->mem_segs[vm->num_mem_segs]; - if ((object = vmm_mem_alloc(vm->vmspace, gpa, len)) == NULL) + if ((object = vmm_mem_alloc(gpa, len)) == NULL) return (ENOMEM); seg->gpa = gpa; seg->len = len; seg->object = object; - seg->wired = FALSE; vm->num_mem_segs++; return (0); } -static vm_paddr_t -vm_maxmem(struct vm *vm) -{ - int i; - vm_paddr_t gpa, maxmem; - - maxmem = 0; - for (i = 0; i < vm->num_mem_segs; i++) { - gpa = vm->mem_segs[i].gpa + vm->mem_segs[i].len; - if (gpa > maxmem) - maxmem = gpa; - } - return (maxmem); -} - -static void -vm_gpa_unwire(struct vm *vm) -{ - int i, rv; - struct mem_seg *seg; - - for (i = 0; i < vm->num_mem_segs; i++) { - seg = &vm->mem_segs[i]; - if (!seg->wired) - continue; - - rv = vm_map_unwire(&vm->vmspace->vm_map, - seg->gpa, seg->gpa + seg->len, - VM_MAP_WIRE_USER | VM_MAP_WIRE_NOHOLES); - KASSERT(rv == KERN_SUCCESS, ("vm(%s) memory segment " - "%#lx/%ld could not be unwired: %d", - vm_name(vm), seg->gpa, seg->len, rv)); - - seg->wired = FALSE; - } -} - -static int -vm_gpa_wire(struct vm *vm) -{ - int i, rv; - struct mem_seg *seg; - - for (i = 0; i < vm->num_mem_segs; i++) { - seg = &vm->mem_segs[i]; - if (seg->wired) - continue; - - /* XXX rlimits? */ - rv = vm_map_wire(&vm->vmspace->vm_map, - seg->gpa, seg->gpa + seg->len, - VM_MAP_WIRE_USER | VM_MAP_WIRE_NOHOLES); - if (rv != KERN_SUCCESS) - break; - - seg->wired = TRUE; - } - - if (i < vm->num_mem_segs) { - /* - * Undo the wiring before returning an error. - */ - vm_gpa_unwire(vm); - return (EAGAIN); - } - - return (0); -} - -static void -vm_iommu_modify(struct vm *vm, boolean_t map) -{ - int i, sz; - vm_paddr_t gpa, hpa; - struct mem_seg *seg; - void *vp, *cookie, *host_domain; - - sz = PAGE_SIZE; - host_domain = iommu_host_domain(); - - for (i = 0; i < vm->num_mem_segs; i++) { - seg = &vm->mem_segs[i]; - KASSERT(seg->wired, ("vm(%s) memory segment %#lx/%ld not wired", - vm_name(vm), seg->gpa, seg->len)); - - gpa = seg->gpa; - while (gpa < seg->gpa + seg->len) { - vp = vm_gpa_hold(vm, gpa, PAGE_SIZE, VM_PROT_WRITE, - &cookie); - KASSERT(vp != NULL, ("vm(%s) could not map gpa %#lx", - vm_name(vm), gpa)); - - vm_gpa_release(cookie); - - hpa = DMAP_TO_PHYS((uintptr_t)vp); - if (map) { - iommu_create_mapping(vm->iommu, gpa, hpa, sz); - iommu_remove_mapping(host_domain, hpa, sz); - } else { - iommu_remove_mapping(vm->iommu, gpa, sz); - iommu_create_mapping(host_domain, hpa, hpa, sz); - } - - gpa += PAGE_SIZE; - } - } - - /* - * Invalidate the cached translations associated with the domain - * from which pages were removed. - */ - if (map) - iommu_invalidate_tlb(host_domain); - else - iommu_invalidate_tlb(vm->iommu); -} - -#define vm_iommu_unmap(vm) vm_iommu_modify((vm), FALSE) -#define vm_iommu_map(vm) vm_iommu_modify((vm), TRUE) - -int -vm_unassign_pptdev(struct vm *vm, int bus, int slot, int func) -{ - int error; - - error = ppt_unassign_device(vm, bus, slot, func); - if (error) - return (error); - - if (ppt_assigned_devices(vm) == 0) { - vm_iommu_unmap(vm); - vm_gpa_unwire(vm); - } - return (0); -} - -int -vm_assign_pptdev(struct vm *vm, int bus, int slot, int func) -{ - int error; - vm_paddr_t maxaddr; - - /* - * Virtual machines with pci passthru devices get special treatment: - * - the guest physical memory is wired - * - the iommu is programmed to do the 'gpa' to 'hpa' translation - * - * We need to do this before the first pci passthru device is attached. - */ - if (ppt_assigned_devices(vm) == 0) { - KASSERT(vm->iommu == NULL, - ("vm_assign_pptdev: iommu must be NULL")); - maxaddr = vm_maxmem(vm); - vm->iommu = iommu_create_domain(maxaddr); - - error = vm_gpa_wire(vm); - if (error) - return (error); - - vm_iommu_map(vm); - } - - error = ppt_assign_device(vm, bus, slot, func); - return (error); -} - void * -vm_gpa_hold(struct vm *vm, vm_paddr_t gpa, size_t len, int reqprot, - void **cookie) -{ - int count, pageoff; - vm_page_t m; +vm_gpa2hva(struct vm *vm, uint64_t gpa, uint64_t len) { + void *base; + uint64_t offset; - pageoff = gpa & PAGE_MASK; - if (len > PAGE_SIZE - pageoff) - panic("vm_gpa_hold: invalid gpa/len: 0x%016lx/%lu", gpa, len); - - count = vm_fault_quick_hold_pages(&vm->vmspace->vm_map, - trunc_page(gpa), PAGE_SIZE, reqprot, &m, 1); - - if (count == 1) { - *cookie = m; - return ((void *)(PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m)) + pageoff)); - } else { - *cookie = NULL; - return (NULL); + if (vm_get_memobj(vm, gpa, len, &offset, &base)) { + return NULL; } -} -void -vm_gpa_release(void *cookie) -{ - vm_page_t m = cookie; - - vm_page_lock(m); - vm_page_unhold(m); - vm_page_unlock(m); + return (void *) (((uintptr_t) base) + offset); } int -vm_gpabase2memseg(struct vm *vm, vm_paddr_t gpabase, +vm_gpabase2memseg(struct vm *vm, uint64_t gpabase, struct vm_memory_segment *seg) { int i; @@ -807,7 +502,6 @@ vm_gpabase2memseg(struct vm *vm, vm_paddr_t gpabase, if (gpabase == vm->mem_segs[i].gpa) { seg->gpa = vm->mem_segs[i].gpa; seg->len = vm->mem_segs[i].len; - seg->wired = vm->mem_segs[i].wired; return (0); } } @@ -815,13 +509,13 @@ vm_gpabase2memseg(struct vm *vm, vm_paddr_t gpabase, } int -vm_get_memobj(struct vm *vm, vm_paddr_t gpa, size_t len, - vm_offset_t *offset, struct vm_object **object) +vm_get_memobj(struct vm *vm, uint64_t gpa, size_t len, + uint64_t *offset, void **object) { int i; size_t seg_len; - vm_paddr_t seg_gpa; - vm_object_t seg_obj; + uint64_t seg_gpa; + void *seg_obj; for (i = 0; i < vm->num_mem_segs; i++) { if ((seg_obj = vm->mem_segs[i].object) == NULL) @@ -830,10 +524,9 @@ vm_get_memobj(struct vm *vm, vm_paddr_t gpa, size_t len, seg_gpa = vm->mem_segs[i].gpa; seg_len = vm->mem_segs[i].len; - if (gpa >= seg_gpa && gpa < seg_gpa + seg_len) { + if ((gpa >= seg_gpa) && ((gpa + len) <= (seg_gpa + seg_len))) { *offset = gpa - seg_gpa; *object = seg_obj; - vm_object_reference(seg_obj); return (0); } } @@ -871,16 +564,15 @@ vm_set_register(struct vm *vm, int vcpuid, int reg, uint64_t val) return (error); /* Set 'nextrip' to match the value of %rip */ - VCPU_CTR1(vm, vcpuid, "Setting nextrip to %#lx", val); + VCPU_CTR1(vm, vcpuid, "Setting nextrip to %#llx", val); vcpu = &vm->vcpu[vcpuid]; vcpu->nextrip = val; return (0); } -static boolean_t +static bool is_descriptor_table(int reg) { - switch (reg) { case VM_REG_GUEST_IDTR: case VM_REG_GUEST_GDTR: @@ -890,10 +582,9 @@ is_descriptor_table(int reg) } } -static boolean_t +static bool is_segment_register(int reg) { - switch (reg) { case VM_REG_GUEST_ES: case VM_REG_GUEST_CS: @@ -913,7 +604,6 @@ int vm_get_seg_desc(struct vm *vm, int vcpu, int reg, struct seg_desc *desc) { - if (vcpu < 0 || vcpu >= VM_MAXCPU) return (EINVAL); @@ -936,56 +626,14 @@ vm_set_seg_desc(struct vm *vm, int vcpu, int reg, return (VMSETDESC(vm->cookie, vcpu, reg, desc)); } -static void -restore_guest_fpustate(struct vcpu *vcpu) -{ - - /* flush host state to the pcb */ - fpuexit(curthread); - - /* restore guest FPU state */ - fpu_stop_emulating(); - fpurestore(vcpu->guestfpu); - - /* restore guest XCR0 if XSAVE is enabled in the host */ - if (rcr4() & CR4_XSAVE) - load_xcr(0, vcpu->guest_xcr0); - - /* - * The FPU is now "dirty" with the guest's state so turn on emulation - * to trap any access to the FPU by the host. - */ - fpu_start_emulating(); -} - -static void -save_guest_fpustate(struct vcpu *vcpu) -{ - - if ((rcr0() & CR0_TS) == 0) - panic("fpu emulation not enabled in host!"); - - /* save guest XCR0 and restore host XCR0 */ - if (rcr4() & CR4_XSAVE) { - vcpu->guest_xcr0 = rxcr(0); - load_xcr(0, vmm_get_host_xcr0()); - } - - /* save guest FPU state */ - fpu_stop_emulating(); - fpusave(vcpu->guestfpu); - fpu_start_emulating(); -} - -static VMM_STAT(VCPU_IDLE_TICKS, "number of ticks vcpu was idle"); +// static VMM_STAT(VCPU_IDLE_TICKS, "number of ticks vcpu was idle"); static int vcpu_set_state_locked(struct vcpu *vcpu, enum vcpu_state newstate, bool from_idle) { int error; - - vcpu_assert_locked(vcpu); + const struct timespec ts = {.tv_sec = 1, .tv_nsec = 0}; /* 1 second */ /* * State transitions from the vmmdev_ioctl() must always begin from @@ -993,21 +641,20 @@ vcpu_set_state_locked(struct vcpu *vcpu, enum vcpu_state newstate, * ioctl() operating on a vcpu at any point. */ if (from_idle) { - while (vcpu->state != VCPU_IDLE) - msleep_spin(&vcpu->state, &vcpu->mtx, "vmstat", hz); + while (vcpu->state != VCPU_IDLE) { + pthread_mutex_lock(&vcpu->state_sleep_mtx); + vcpu_unlock(vcpu); + pthread_cond_timedwait_relative_np(&vcpu->state_sleep_cnd, + &vcpu->state_sleep_mtx, &ts); + vcpu_lock(vcpu); + pthread_mutex_unlock(&vcpu->state_sleep_mtx); + //msleep_spin(&vcpu->state, &vcpu->mtx, "vmstat", hz); + } } else { KASSERT(vcpu->state != VCPU_IDLE, ("invalid transition from " "vcpu idle state")); } - if (vcpu->state == VCPU_RUNNING) { - KASSERT(vcpu->hostcpu == curcpu, ("curcpu %d and hostcpu %d " - "mismatch for running vcpu", curcpu, vcpu->hostcpu)); - } else { - KASSERT(vcpu->hostcpu == NOCPU, ("Invalid hostcpu %d for a " - "vcpu that is not running", vcpu->hostcpu)); - } - /* * The following state transitions are allowed: * IDLE -> FROZEN -> IDLE @@ -1023,22 +670,16 @@ vcpu_set_state_locked(struct vcpu *vcpu, enum vcpu_state newstate, case VCPU_FROZEN: error = (newstate == VCPU_FROZEN); break; - default: - error = 1; - break; } if (error) return (EBUSY); vcpu->state = newstate; - if (newstate == VCPU_RUNNING) - vcpu->hostcpu = curcpu; - else - vcpu->hostcpu = NOCPU; if (newstate == VCPU_IDLE) - wakeup(&vcpu->state); + pthread_cond_broadcast(&vcpu->state_sleep_cnd); + //wakeup(&vcpu->state); return (0); } @@ -1049,7 +690,7 @@ vcpu_require_state(struct vm *vm, int vcpuid, enum vcpu_state newstate) int error; if ((error = vcpu_set_state(vm, vcpuid, newstate, false)) != 0) - panic("Error %d setting state to %d\n", error, newstate); + xhyve_abort("Error %d setting state to %d\n", error, newstate); } static void @@ -1058,15 +699,12 @@ vcpu_require_state_locked(struct vcpu *vcpu, enum vcpu_state newstate) int error; if ((error = vcpu_set_state_locked(vcpu, newstate, false)) != 0) - panic("Error %d setting state to %d", error, newstate); + xhyve_abort("Error %d setting state to %d", error, newstate); } static void vm_set_rendezvous_func(struct vm *vm, vm_rendezvous_func_t func) { - - KASSERT(mtx_owned(&vm->rendezvous_mtx), ("rendezvous_mtx not locked")); - /* * Update 'rendezvous_func' and execute a write memory barrier to * ensure that it is visible across all host cpus. This is not needed @@ -1077,12 +715,13 @@ vm_set_rendezvous_func(struct vm *vm, vm_rendezvous_func_t func) wmb(); } -#define RENDEZVOUS_CTR0(vm, vcpuid, fmt) \ - do { \ - if (vcpuid >= 0) \ - VCPU_CTR0(vm, vcpuid, fmt); \ - else \ - VM_CTR0(vm, fmt); \ +#define RENDEZVOUS_CTR0(vm, vcpuid, fmt) \ + do { \ + if (vcpuid >= 0) {\ + VCPU_CTR0(vm, vcpuid, fmt); \ + } else {\ + VM_CTR0(vm, fmt); \ + } \ } while (0) static void @@ -1092,43 +731,46 @@ vm_handle_rendezvous(struct vm *vm, int vcpuid) KASSERT(vcpuid == -1 || (vcpuid >= 0 && vcpuid < VM_MAXCPU), ("vm_handle_rendezvous: invalid vcpuid %d", vcpuid)); - mtx_lock(&vm->rendezvous_mtx); + pthread_mutex_lock(&vm->rendezvous_mtx); while (vm->rendezvous_func != NULL) { /* 'rendezvous_req_cpus' must be a subset of 'active_cpus' */ CPU_AND(&vm->rendezvous_req_cpus, &vm->active_cpus); if (vcpuid != -1 && - CPU_ISSET(vcpuid, &vm->rendezvous_req_cpus) && - !CPU_ISSET(vcpuid, &vm->rendezvous_done_cpus)) { + CPU_ISSET(((unsigned) vcpuid), &vm->rendezvous_req_cpus) && + !CPU_ISSET(((unsigned) vcpuid), &vm->rendezvous_done_cpus)) { VCPU_CTR0(vm, vcpuid, "Calling rendezvous func"); (*vm->rendezvous_func)(vm, vcpuid, vm->rendezvous_arg); - CPU_SET(vcpuid, &vm->rendezvous_done_cpus); + CPU_SET(((unsigned) vcpuid), &vm->rendezvous_done_cpus); } if (CPU_CMP(&vm->rendezvous_req_cpus, &vm->rendezvous_done_cpus) == 0) { VCPU_CTR0(vm, vcpuid, "Rendezvous completed"); vm_set_rendezvous_func(vm, NULL); - wakeup(&vm->rendezvous_func); + pthread_cond_broadcast(&vm->rendezvous_sleep_cnd); + //wakeup(&vm->rendezvous_func); break; } RENDEZVOUS_CTR0(vm, vcpuid, "Wait for rendezvous completion"); - mtx_sleep(&vm->rendezvous_func, &vm->rendezvous_mtx, 0, - "vmrndv", 0); + pthread_cond_wait(&vm->rendezvous_sleep_cnd, &vm->rendezvous_mtx); + //mtx_sleep(&vm->rendezvous_func, &vm->rendezvous_mtx, 0, "vmrndv", 0); } - mtx_unlock(&vm->rendezvous_mtx); + pthread_mutex_unlock(&vm->rendezvous_mtx); } /* * Emulate a guest 'hlt' by sleeping until the vcpu is ready to run. */ static int -vm_handle_hlt(struct vm *vm, int vcpuid, bool intr_disabled, bool *retu) +vm_handle_hlt(struct vm *vm, int vcpuid, bool intr_disabled) { struct vcpu *vcpu; const char *wmesg; - int t, vcpu_halted, vm_halted; + int vcpu_halted, vm_halted; + const struct timespec ts = {.tv_sec = 1, .tv_nsec = 0}; /* 1 second */ - KASSERT(!CPU_ISSET(vcpuid, &vm->halted_cpus), ("vcpu already halted")); + KASSERT(!CPU_ISSET(((unsigned) vcpuid), &vm->halted_cpus), + ("vcpu already halted")); vcpu = &vm->vcpu[vcpuid]; vcpu_halted = 0; @@ -1156,10 +798,6 @@ vm_handle_hlt(struct vm *vm, int vcpuid, bool intr_disabled, bool *retu) } } - /* Don't go to sleep if the vcpu thread needs to yield */ - if (vcpu_should_yield(vm, vcpuid)) - break; - /* * Some Linux guests implement "halt" by having all vcpus * execute HLT with interrupts disabled. 'halted_cpus' keeps @@ -1171,7 +809,7 @@ vm_handle_hlt(struct vm *vm, int vcpuid, bool intr_disabled, bool *retu) VCPU_CTR0(vm, vcpuid, "Halted"); if (!vcpu_halted && halt_detection_enabled) { vcpu_halted = 1; - CPU_SET_ATOMIC(vcpuid, &vm->halted_cpus); + CPU_SET_ATOMIC(((unsigned) vcpuid), &vm->halted_cpus); } if (CPU_CMP(&vm->halted_cpus, &vm->active_cpus) == 0) { vm_halted = 1; @@ -1181,19 +819,25 @@ vm_handle_hlt(struct vm *vm, int vcpuid, bool intr_disabled, bool *retu) wmesg = "vmidle"; } - t = ticks; + //t = ticks; vcpu_require_state_locked(vcpu, VCPU_SLEEPING); /* * XXX msleep_spin() cannot be interrupted by signals so * wake up periodically to check pending signals. */ - msleep_spin(vcpu, &vcpu->mtx, wmesg, hz); + pthread_mutex_lock(&vcpu->vcpu_sleep_mtx); + vcpu_unlock(vcpu); + pthread_cond_timedwait_relative_np(&vcpu->vcpu_sleep_cnd, + &vcpu->vcpu_sleep_mtx, &ts); + vcpu_lock(vcpu); + pthread_mutex_unlock(&vcpu->vcpu_sleep_mtx); + //msleep_spin(vcpu, &vcpu->mtx, wmesg, hz); vcpu_require_state_locked(vcpu, VCPU_FROZEN); - vmm_stat_incr(vm, vcpuid, VCPU_IDLE_TICKS, ticks - t); + //vmm_stat_incr(vm, vcpuid, VCPU_IDLE_TICKS, ticks - t); } if (vcpu_halted) - CPU_CLR_ATOMIC(vcpuid, &vm->halted_cpus); + CPU_CLR_ATOMIC(((unsigned) vcpuid), &vm->halted_cpus); vcpu_unlock(vcpu); @@ -1203,48 +847,6 @@ vm_handle_hlt(struct vm *vm, int vcpuid, bool intr_disabled, bool *retu) return (0); } -static int -vm_handle_paging(struct vm *vm, int vcpuid, bool *retu) -{ - int rv, ftype; - struct vm_map *map; - struct vcpu *vcpu; - struct vm_exit *vme; - - vcpu = &vm->vcpu[vcpuid]; - vme = &vcpu->exitinfo; - - KASSERT(vme->inst_length == 0, ("%s: invalid inst_length %d", - __func__, vme->inst_length)); - - ftype = vme->u.paging.fault_type; - KASSERT(ftype == VM_PROT_READ || - ftype == VM_PROT_WRITE || ftype == VM_PROT_EXECUTE, - ("vm_handle_paging: invalid fault_type %d", ftype)); - - if (ftype == VM_PROT_READ || ftype == VM_PROT_WRITE) { - rv = pmap_emulate_accessed_dirty(vmspace_pmap(vm->vmspace), - vme->u.paging.gpa, ftype); - if (rv == 0) { - VCPU_CTR2(vm, vcpuid, "%s bit emulation for gpa %#lx", - ftype == VM_PROT_READ ? "accessed" : "dirty", - vme->u.paging.gpa); - goto done; - } - } - - map = &vm->vmspace->vm_map; - rv = vm_fault(map, vme->u.paging.gpa, ftype, VM_FAULT_NORMAL); - - VCPU_CTR3(vm, vcpuid, "vm_handle_paging rv = %d, gpa = %#lx, " - "ftype = %d", rv, vme->u.paging.gpa, ftype); - - if (rv != KERN_SUCCESS) - return (EFAULT); -done: - return (0); -} - static int vm_handle_inst_emul(struct vm *vm, int vcpuid, bool *retu) { @@ -1269,7 +871,7 @@ vm_handle_inst_emul(struct vm *vm, int vcpuid, bool *retu) paging = &vme->u.inst_emul.paging; cpu_mode = paging->cpu_mode; - VCPU_CTR1(vm, vcpuid, "inst_emul fault accessing gpa %#lx", gpa); + VCPU_CTR1(vm, vcpuid, "inst_emul fault accessing gpa %#llx", gpa); /* Fetch, decode and emulate the faulting instruction */ if (vie->num_valid == 0) { @@ -1290,7 +892,7 @@ vm_handle_inst_emul(struct vm *vm, int vcpuid, bool *retu) return (error); if (vmm_decode_instruction(vm, vcpuid, gla, cpu_mode, cs_d, vie) != 0) { - VCPU_CTR1(vm, vcpuid, "Error decoding instruction at %#lx", + VCPU_CTR1(vm, vcpuid, "Error decoding instruction at %#llx", vme->rip + cs_base); *retu = true; /* dump instruction bytes in userspace */ return (0); @@ -1306,7 +908,7 @@ vm_handle_inst_emul(struct vm *vm, int vcpuid, bool *retu) } /* return to userland unless this is an in-kernel emulated device */ - if (gpa >= DEFAULT_APIC_BASE && gpa < DEFAULT_APIC_BASE + PAGE_SIZE) { + if (gpa >= DEFAULT_APIC_BASE && gpa < DEFAULT_APIC_BASE + XHYVE_PAGE_SIZE) { mread = lapic_mmio_read; mwrite = lapic_mmio_write; } else if (gpa >= VIOAPIC_BASE && gpa < VIOAPIC_BASE + VIOAPIC_SIZE) { @@ -1331,11 +933,12 @@ vm_handle_suspend(struct vm *vm, int vcpuid, bool *retu) { int i, done; struct vcpu *vcpu; + const struct timespec ts = {.tv_sec = 1, .tv_nsec = 0}; /* 1 second */ done = 0; vcpu = &vm->vcpu[vcpuid]; - CPU_SET_ATOMIC(vcpuid, &vm->suspended_cpus); + CPU_SET_ATOMIC(((unsigned) vcpuid), &vm->suspended_cpus); /* * Wait until all 'active_cpus' have suspended themselves. @@ -1354,7 +957,15 @@ vm_handle_suspend(struct vm *vm, int vcpuid, bool *retu) if (vm->rendezvous_func == NULL) { VCPU_CTR0(vm, vcpuid, "Sleeping during suspend"); vcpu_require_state_locked(vcpu, VCPU_SLEEPING); - msleep_spin(vcpu, &vcpu->mtx, "vmsusp", hz); + + pthread_mutex_lock(&vcpu->vcpu_sleep_mtx); + vcpu_unlock(vcpu); + pthread_cond_timedwait_relative_np(&vcpu->vcpu_sleep_cnd, + &vcpu->vcpu_sleep_mtx, &ts); + vcpu_lock(vcpu); + pthread_mutex_unlock(&vcpu->vcpu_sleep_mtx); + //msleep_spin(vcpu, &vcpu->mtx, "vmsusp", hz); + vcpu_require_state_locked(vcpu, VCPU_FROZEN); } else { VCPU_CTR0(vm, vcpuid, "Rendezvous during suspend"); @@ -1369,7 +980,7 @@ vm_handle_suspend(struct vm *vm, int vcpuid, bool *retu) * Wakeup the other sleeping vcpus and return to userspace. */ for (i = 0; i < VM_MAXCPU; i++) { - if (CPU_ISSET(i, &vm->suspended_cpus)) { + if (CPU_ISSET(((unsigned) i), &vm->suspended_cpus)) { vcpu_notify_event(vm, i, false); } } @@ -1386,7 +997,7 @@ vm_suspend(struct vm *vm, enum vm_suspend_how how) if (how <= VM_SUSPEND_NONE || how >= VM_SUSPEND_LAST) return (EINVAL); - if (atomic_cmpset_int(&vm->suspend, 0, how) == 0) { + if (atomic_cmpset_int(((volatile u_int *) &vm->suspend), 0, how) == 0) { VM_CTR2(vm, "virtual machine already suspended %d/%d", vm->suspend, how); return (EALREADY); @@ -1398,7 +1009,7 @@ vm_suspend(struct vm *vm, enum vm_suspend_how how) * Notify all active vcpus that they are now suspended. */ for (i = 0; i < VM_MAXCPU; i++) { - if (CPU_ISSET(i, &vm->active_cpus)) + if (CPU_ISSET(((unsigned) i), &vm->active_cpus)) vcpu_notify_event(vm, i, false); } @@ -1417,7 +1028,7 @@ vm_exit_suspended(struct vm *vm, int vcpuid, uint64_t rip) vmexit->rip = rip; vmexit->inst_length = 0; vmexit->exitcode = VM_EXITCODE_SUSPENDED; - vmexit->u.suspended.how = vm->suspend; + vmexit->u.suspended.how = (enum vm_suspend_how) vm->suspend; } void @@ -1434,73 +1045,47 @@ vm_exit_rendezvous(struct vm *vm, int vcpuid, uint64_t rip) vmm_stat_incr(vm, vcpuid, VMEXIT_RENDEZVOUS, 1); } -void -vm_exit_astpending(struct vm *vm, int vcpuid, uint64_t rip) -{ - struct vm_exit *vmexit; - - vmexit = vm_exitinfo(vm, vcpuid); - vmexit->rip = rip; - vmexit->inst_length = 0; - vmexit->exitcode = VM_EXITCODE_BOGUS; - vmm_stat_incr(vm, vcpuid, VMEXIT_ASTPENDING, 1); -} +void pittest(struct vm *thevm); int -vm_run(struct vm *vm, struct vm_run *vmrun) +vm_run(struct vm *vm, int vcpuid, struct vm_exit *vm_exit) { - int error, vcpuid; + int error; struct vcpu *vcpu; - struct pcb *pcb; - uint64_t tscval; + // uint64_t tscval; struct vm_exit *vme; bool retu, intr_disabled; - pmap_t pmap; void *rptr, *sptr; - vcpuid = vmrun->cpuid; - if (vcpuid < 0 || vcpuid >= VM_MAXCPU) return (EINVAL); - if (!CPU_ISSET(vcpuid, &vm->active_cpus)) + if (!CPU_ISSET(((unsigned) vcpuid), &vm->active_cpus)) return (EINVAL); - if (CPU_ISSET(vcpuid, &vm->suspended_cpus)) + if (CPU_ISSET(((unsigned) vcpuid), &vm->suspended_cpus)) return (EINVAL); rptr = &vm->rendezvous_func; sptr = &vm->suspend; - pmap = vmspace_pmap(vm->vmspace); vcpu = &vm->vcpu[vcpuid]; vme = &vcpu->exitinfo; + retu = false; + restart: - critical_enter(); - - KASSERT(!CPU_ISSET(curcpu, &pmap->pm_active), - ("vm_run: absurd pm_active")); - - tscval = rdtsc(); - - pcb = PCPU_GET(curpcb); - set_pcb_flags(pcb, PCB_FULL_IRET); - - restore_guest_fpustate(vcpu); + // tscval = rdtsc(); vcpu_require_state(vm, vcpuid, VCPU_RUNNING); - error = VMRUN(vm->cookie, vcpuid, vcpu->nextrip, pmap, rptr, sptr); + error = VMRUN(vm->cookie, vcpuid, (register_t) vcpu->nextrip, rptr, sptr); vcpu_require_state(vm, vcpuid, VCPU_FROZEN); - save_guest_fpustate(vcpu); - vmm_stat_incr(vm, vcpuid, VCPU_TOTAL_RUNTIME, rdtsc() - tscval); - - critical_exit(); + // vmm_stat_incr(vm, vcpuid, VCPU_TOTAL_RUNTIME, rdtsc() - tscval); if (error == 0) { retu = false; - vcpu->nextrip = vme->rip + vme->inst_length; - switch (vme->exitcode) { + vcpu->nextrip = vme->rip + ((unsigned) vme->inst_length); + switch (((int) (vme->exitcode))) { case VM_EXITCODE_SUSPENDED: error = vm_handle_suspend(vm, vcpuid, &retu); break; @@ -1514,10 +1099,10 @@ restart: break; case VM_EXITCODE_HLT: intr_disabled = ((vme->u.hlt.rflags & PSL_I) == 0); - error = vm_handle_hlt(vm, vcpuid, intr_disabled, &retu); + error = vm_handle_hlt(vm, vcpuid, intr_disabled); break; case VM_EXITCODE_PAGING: - error = vm_handle_paging(vm, vcpuid, &retu); + error = 0; break; case VM_EXITCODE_INST_EMUL: error = vm_handle_inst_emul(vm, vcpuid, &retu); @@ -1539,8 +1124,8 @@ restart: if (error == 0 && retu == false) goto restart; - /* copy the exit information */ - bcopy(vme, &vmrun->vm_exit, sizeof(struct vm_exit)); + /* copy the exit information (FIXME: zero copy) */ + bcopy(vme, vm_exit, sizeof(struct vm_exit)); return (error); } @@ -1558,7 +1143,7 @@ vm_restart_instruction(void *arg, int vcpuid) return (EINVAL); vcpu = &vm->vcpu[vcpuid]; - state = vcpu_get_state(vm, vcpuid, NULL); + state = vcpu_get_state(vm, vcpuid); if (state == VCPU_RUNNING) { /* * When a vcpu is "running" the next instruction is determined @@ -1567,7 +1152,7 @@ vm_restart_instruction(void *arg, int vcpuid) * instruction to be restarted. */ vcpu->exitinfo.inst_length = 0; - VCPU_CTR1(vm, vcpuid, "restarting instruction at %#lx by " + VCPU_CTR1(vm, vcpuid, "restarting instruction at %#llx by " "setting inst_length to zero", vcpu->exitinfo.rip); } else if (state == VCPU_FROZEN) { /* @@ -1579,10 +1164,10 @@ vm_restart_instruction(void *arg, int vcpuid) error = vm_get_register(vm, vcpuid, VM_REG_GUEST_RIP, &rip); KASSERT(!error, ("%s: error %d getting rip", __func__, error)); VCPU_CTR2(vm, vcpuid, "restarting instruction by updating " - "nextrip from %#lx to %#lx", vcpu->nextrip, rip); + "nextrip from %#llx to %#llx", vcpu->nextrip, rip); vcpu->nextrip = rip; } else { - panic("%s: invalid state %d", __func__, state); + xhyve_abort("%s: invalid state %d\n", __func__, state); } return (0); } @@ -1610,7 +1195,7 @@ vm_exit_intinfo(struct vm *vm, int vcpuid, uint64_t info) } else { info = 0; } - VCPU_CTR2(vm, vcpuid, "%s: info1(%#lx)", __func__, info); + VCPU_CTR2(vm, vcpuid, "%s: info1(%#llx)", __func__, info); vcpu->exitintinfo = info; return (0); } @@ -1628,7 +1213,7 @@ exception_class(uint64_t info) { int type, vector; - KASSERT(info & VM_INTINFO_VALID, ("intinfo must be valid: %#lx", info)); + KASSERT(info & VM_INTINFO_VALID, ("intinfo must be valid: %#llx", info)); type = info & VM_INTINFO_TYPE; vector = info & 0xff; @@ -1676,8 +1261,8 @@ nested_fault(struct vm *vm, int vcpuid, uint64_t info1, uint64_t info2, enum exc_class exc1, exc2; int type1, vector1; - KASSERT(info1 & VM_INTINFO_VALID, ("info1 %#lx is not valid", info1)); - KASSERT(info2 & VM_INTINFO_VALID, ("info2 %#lx is not valid", info2)); + KASSERT(info1 & VM_INTINFO_VALID, ("info1 %#llx is not valid", info1)); + KASSERT(info2 & VM_INTINFO_VALID, ("info2 %#llx is not valid", info2)); /* * If an exception occurs while attempting to call the double-fault @@ -1686,7 +1271,7 @@ nested_fault(struct vm *vm, int vcpuid, uint64_t info1, uint64_t info2, type1 = info1 & VM_INTINFO_TYPE; vector1 = info1 & 0xff; if (type1 == VM_INTINFO_HWEXCEPTION && vector1 == IDT_DF) { - VCPU_CTR2(vm, vcpuid, "triple fault: info1(%#lx), info2(%#lx)", + VCPU_CTR2(vm, vcpuid, "triple fault: info1(%#llx), info2(%#llx)", info1, info2); vm_suspend(vm, VM_SUSPEND_TRIPLEFAULT); *retinfo = 0; @@ -1745,7 +1330,7 @@ vm_entry_intinfo(struct vm *vm, int vcpuid, uint64_t *retinfo) if (vcpu->exception_pending) { info2 = vcpu_exception_intinfo(vcpu); vcpu->exception_pending = 0; - VCPU_CTR2(vm, vcpuid, "Exception %d delivered: %#lx", + VCPU_CTR2(vm, vcpuid, "Exception %d delivered: %#llx", vcpu->exc_vector, info2); } @@ -1762,8 +1347,8 @@ vm_entry_intinfo(struct vm *vm, int vcpuid, uint64_t *retinfo) } if (valid) { - VCPU_CTR4(vm, vcpuid, "%s: info1(%#lx), info2(%#lx), " - "retinfo(%#lx)", __func__, info1, info2, *retinfo); + VCPU_CTR4(vm, vcpuid, "%s: info1(%#llx), info2(%#llx), " + "retinfo(%#llx)", __func__, info1, info2, *retinfo); } return (valid); @@ -1844,7 +1429,7 @@ vm_inject_fault(void *vmarg, int vcpuid, int vector, int errcode_valid, restart_instruction = 1; error = vm_inject_exception(vm, vcpuid, vector, errcode_valid, - errcode, restart_instruction); + ((uint32_t) errcode), restart_instruction); KASSERT(error == 0, ("vm_inject_exception error %d", error)); } @@ -1855,7 +1440,7 @@ vm_inject_pf(void *vmarg, int vcpuid, int error_code, uint64_t cr2) int error; vm = vmarg; - VCPU_CTR2(vm, vcpuid, "Injecting page fault: error_code %#x, cr2 %#lx", + VCPU_CTR2(vm, vcpuid, "Injecting page fault: error_code %#x, cr2 %#llx", error_code, cr2); error = vm_set_register(vm, vcpuid, VM_REG_GUEST_CR2, cr2); @@ -1887,7 +1472,7 @@ vm_nmi_pending(struct vm *vm, int vcpuid) struct vcpu *vcpu; if (vcpuid < 0 || vcpuid >= VM_MAXCPU) - panic("vm_nmi_pending: invalid vcpuid %d", vcpuid); + xhyve_abort("vm_nmi_pending: invalid vcpuid %d\n", vcpuid); vcpu = &vm->vcpu[vcpuid]; @@ -1900,12 +1485,12 @@ vm_nmi_clear(struct vm *vm, int vcpuid) struct vcpu *vcpu; if (vcpuid < 0 || vcpuid >= VM_MAXCPU) - panic("vm_nmi_pending: invalid vcpuid %d", vcpuid); + xhyve_abort("vm_nmi_pending: invalid vcpuid %d\n", vcpuid); vcpu = &vm->vcpu[vcpuid]; if (vcpu->nmi_pending == 0) - panic("vm_nmi_clear: inconsistent nmi_pending state"); + xhyve_abort("vm_nmi_clear: inconsistent nmi_pending state\n"); vcpu->nmi_pending = 0; vmm_stat_incr(vm, vcpuid, VCPU_NMI_COUNT, 1); @@ -1934,7 +1519,7 @@ vm_extint_pending(struct vm *vm, int vcpuid) struct vcpu *vcpu; if (vcpuid < 0 || vcpuid >= VM_MAXCPU) - panic("vm_extint_pending: invalid vcpuid %d", vcpuid); + xhyve_abort("vm_extint_pending: invalid vcpuid %d\n", vcpuid); vcpu = &vm->vcpu[vcpuid]; @@ -1947,12 +1532,12 @@ vm_extint_clear(struct vm *vm, int vcpuid) struct vcpu *vcpu; if (vcpuid < 0 || vcpuid >= VM_MAXCPU) - panic("vm_extint_pending: invalid vcpuid %d", vcpuid); + xhyve_abort("vm_extint_pending: invalid vcpuid %d\n", vcpuid); vcpu = &vm->vcpu[vcpuid]; if (vcpu->extint_pending == 0) - panic("vm_extint_clear: inconsistent extint_pending state"); + xhyve_abort("vm_extint_clear: inconsistent extint_pending state\n"); vcpu->extint_pending = 0; vmm_stat_incr(vm, vcpuid, VCPU_EXTINT_COUNT, 1); @@ -2002,55 +1587,6 @@ vm_hpet(struct vm *vm) return (vm->vhpet); } -boolean_t -vmm_is_pptdev(int bus, int slot, int func) -{ - int found, i, n; - int b, s, f; - char *val, *cp, *cp2; - - /* - * XXX - * The length of an environment variable is limited to 128 bytes which - * puts an upper limit on the number of passthru devices that may be - * specified using a single environment variable. - * - * Work around this by scanning multiple environment variable - * names instead of a single one - yuck! - */ - const char *names[] = { "pptdevs", "pptdevs2", "pptdevs3", NULL }; - - /* set pptdevs="1/2/3 4/5/6 7/8/9 10/11/12" */ - found = 0; - for (i = 0; names[i] != NULL && !found; i++) { - cp = val = kern_getenv(names[i]); - while (cp != NULL && *cp != '\0') { - if ((cp2 = strchr(cp, ' ')) != NULL) - *cp2 = '\0'; - - n = sscanf(cp, "%d/%d/%d", &b, &s, &f); - if (n == 3 && bus == b && slot == s && func == f) { - found = 1; - break; - } - - if (cp2 != NULL) - *cp2++ = ' '; - - cp = cp2; - } - freeenv(val); - } - return (found); -} - -void * -vm_iommu_domain(struct vm *vm) -{ - - return (vm->iommu); -} - int vcpu_set_state(struct vm *vm, int vcpuid, enum vcpu_state newstate, bool from_idle) @@ -2059,32 +1595,29 @@ vcpu_set_state(struct vm *vm, int vcpuid, enum vcpu_state newstate, struct vcpu *vcpu; if (vcpuid < 0 || vcpuid >= VM_MAXCPU) - panic("vm_set_run_state: invalid vcpuid %d", vcpuid); + xhyve_abort("vm_set_run_state: invalid vcpuid %d\n", vcpuid); vcpu = &vm->vcpu[vcpuid]; vcpu_lock(vcpu); error = vcpu_set_state_locked(vcpu, newstate, from_idle); vcpu_unlock(vcpu); - return (error); } enum vcpu_state -vcpu_get_state(struct vm *vm, int vcpuid, int *hostcpu) +vcpu_get_state(struct vm *vm, int vcpuid) { struct vcpu *vcpu; enum vcpu_state state; if (vcpuid < 0 || vcpuid >= VM_MAXCPU) - panic("vm_get_run_state: invalid vcpuid %d", vcpuid); + xhyve_abort("vm_get_run_state: invalid vcpuid %d\n", vcpuid); vcpu = &vm->vcpu[vcpuid]; vcpu_lock(vcpu); state = vcpu->state; - if (hostcpu != NULL) - *hostcpu = vcpu->hostcpu; vcpu_unlock(vcpu); return (state); @@ -2097,11 +1630,11 @@ vm_activate_cpu(struct vm *vm, int vcpuid) if (vcpuid < 0 || vcpuid >= VM_MAXCPU) return (EINVAL); - if (CPU_ISSET(vcpuid, &vm->active_cpus)) + if (CPU_ISSET(((unsigned) vcpuid), &vm->active_cpus)) return (EBUSY); VCPU_CTR0(vm, vcpuid, "activated"); - CPU_SET_ATOMIC(vcpuid, &vm->active_cpus); + CPU_SET_ATOMIC(((unsigned) vcpuid), &vm->active_cpus); return (0); } @@ -2161,50 +1694,40 @@ vm_set_x2apic_state(struct vm *vm, int vcpuid, enum x2apic_state state) * to the host_cpu to cause the vcpu to trap into the hypervisor. */ void -vcpu_notify_event(struct vm *vm, int vcpuid, bool lapic_intr) +vcpu_notify_event(struct vm *vm, int vcpuid, UNUSED bool lapic_intr) { - int hostcpu; struct vcpu *vcpu; vcpu = &vm->vcpu[vcpuid]; - vcpu_lock(vcpu); - hostcpu = vcpu->hostcpu; if (vcpu->state == VCPU_RUNNING) { - KASSERT(hostcpu != NOCPU, ("vcpu running on invalid hostcpu")); - if (hostcpu != curcpu) { - if (lapic_intr) { - vlapic_post_intr(vcpu->vlapic, hostcpu, - vmm_ipinum); - } else { - ipi_cpu(hostcpu, vmm_ipinum); - } - } else { - /* - * If the 'vcpu' is running on 'curcpu' then it must - * be sending a notification to itself (e.g. SELF_IPI). - * The pending event will be picked up when the vcpu - * transitions back to guest context. - */ - } + VCPU_INTERRUPT(vcpuid); + /* FIXME */ + // if (hostcpu != curcpu) { + // if (lapic_intr) { + // vlapic_post_intr(vcpu->vlapic, hostcpu, + // vmm_ipinum); + // } else { + // ipi_cpu(hostcpu, vmm_ipinum); + // } + // } else { + // /* + // * If the 'vcpu' is running on 'curcpu' then it must + // * be sending a notification to itself (e.g. SELF_IPI). + // * The pending event will be picked up when the vcpu + // * transitions back to guest context. + // */ + // } } else { - KASSERT(hostcpu == NOCPU, ("vcpu state %d not consistent " - "with hostcpu %d", vcpu->state, hostcpu)); if (vcpu->state == VCPU_SLEEPING) - wakeup_one(vcpu); + pthread_cond_signal(&vcpu->vcpu_sleep_cnd); + //wakeup_one(vcpu); } vcpu_unlock(vcpu); } -struct vmspace * -vm_get_vmspace(struct vm *vm) -{ - - return (vm->vmspace); -} - int -vm_apicid2vcpuid(struct vm *vm, int apicid) +vm_apicid2vcpuid(UNUSED struct vm *vm, int apicid) { /* * XXX apic id is assumed to be numerically identical to vcpu id @@ -2218,15 +1741,11 @@ vm_smp_rendezvous(struct vm *vm, int vcpuid, cpuset_t dest, { int i; - /* - * Enforce that this function is called without any locks - */ - WITNESS_WARN(WARN_PANIC, NULL, "vm_smp_rendezvous"); KASSERT(vcpuid == -1 || (vcpuid >= 0 && vcpuid < VM_MAXCPU), ("vm_smp_rendezvous: invalid vcpuid %d", vcpuid)); restart: - mtx_lock(&vm->rendezvous_mtx); + pthread_mutex_lock(&vm->rendezvous_mtx); if (vm->rendezvous_func != NULL) { /* * If a rendezvous is already in progress then we need to @@ -2234,7 +1753,7 @@ restart: * of the targets of the rendezvous. */ RENDEZVOUS_CTR0(vm, vcpuid, "Rendezvous already in progress"); - mtx_unlock(&vm->rendezvous_mtx); + pthread_mutex_unlock(&vm->rendezvous_mtx); vm_handle_rendezvous(vm, vcpuid); goto restart; } @@ -2246,14 +1765,14 @@ restart: CPU_ZERO(&vm->rendezvous_done_cpus); vm->rendezvous_arg = arg; vm_set_rendezvous_func(vm, func); - mtx_unlock(&vm->rendezvous_mtx); + pthread_mutex_unlock(&vm->rendezvous_mtx); /* * Wake up any sleeping vcpus and trigger a VM-exit in any running * vcpus so they handle the rendezvous as soon as possible. */ for (i = 0; i < VM_MAXCPU; i++) { - if (CPU_ISSET(i, &dest)) + if (CPU_ISSET(((unsigned) i), &dest)) vcpu_notify_event(vm, i, false); } @@ -2298,22 +1817,16 @@ vm_segment_name(int seg) VM_REG_GUEST_GS }; - KASSERT(seg >= 0 && seg < nitems(seg_names), + KASSERT(seg >= 0 && seg < ((int) nitems(seg_names)), ("%s: invalid segment encoding %d", __func__, seg)); return (seg_names[seg]); } void -vm_copy_teardown(struct vm *vm, int vcpuid, struct vm_copyinfo *copyinfo, - int num_copyinfo) +vm_copy_teardown(UNUSED struct vm *vm, UNUSED int vcpuid, + struct vm_copyinfo *copyinfo, int num_copyinfo) { - int idx; - - for (idx = 0; idx < num_copyinfo; idx++) { - if (copyinfo[idx].cookie != NULL) - vm_gpa_release(copyinfo[idx].cookie); - } - bzero(copyinfo, num_copyinfo * sizeof(struct vm_copyinfo)); + bzero(copyinfo, ((unsigned) num_copyinfo) * sizeof(struct vm_copyinfo)); } int @@ -2323,10 +1836,10 @@ vm_copy_setup(struct vm *vm, int vcpuid, struct vm_guest_paging *paging, { int error, idx, nused; size_t n, off, remaining; - void *hva, *cookie; + void *hva; uint64_t gpa; - bzero(copyinfo, sizeof(struct vm_copyinfo) * num_copyinfo); + bzero(copyinfo, sizeof(struct vm_copyinfo) * ((unsigned) num_copyinfo)); nused = 0; remaining = len; @@ -2335,8 +1848,8 @@ vm_copy_setup(struct vm *vm, int vcpuid, struct vm_guest_paging *paging, error = vm_gla2gpa(vm, vcpuid, paging, gla, prot, &gpa, fault); if (error || *fault) return (error); - off = gpa & PAGE_MASK; - n = min(remaining, PAGE_SIZE - off); + off = gpa & XHYVE_PAGE_MASK; + n = min(remaining, XHYVE_PAGE_SIZE - off); copyinfo[nused].gpa = gpa; copyinfo[nused].len = n; remaining -= n; @@ -2345,12 +1858,10 @@ vm_copy_setup(struct vm *vm, int vcpuid, struct vm_guest_paging *paging, } for (idx = 0; idx < nused; idx++) { - hva = vm_gpa_hold(vm, copyinfo[idx].gpa, copyinfo[idx].len, - prot, &cookie); + hva = vm_gpa2hva(vm, copyinfo[idx].gpa, copyinfo[idx].len); if (hva == NULL) break; copyinfo[idx].hva = hva; - copyinfo[idx].cookie = cookie; } if (idx != nused) { @@ -2363,8 +1874,8 @@ vm_copy_setup(struct vm *vm, int vcpuid, struct vm_guest_paging *paging, } void -vm_copyin(struct vm *vm, int vcpuid, struct vm_copyinfo *copyinfo, void *kaddr, - size_t len) +vm_copyin(UNUSED struct vm *vm, UNUSED int vcpuid, struct vm_copyinfo *copyinfo, + void *kaddr, size_t len) { char *dst; int idx; @@ -2380,7 +1891,7 @@ vm_copyin(struct vm *vm, int vcpuid, struct vm_copyinfo *copyinfo, void *kaddr, } void -vm_copyout(struct vm *vm, int vcpuid, const void *kaddr, +vm_copyout(UNUSED struct vm *vm, UNUSED int vcpuid, const void *kaddr, struct vm_copyinfo *copyinfo, size_t len) { const char *src; @@ -2395,33 +1906,3 @@ vm_copyout(struct vm *vm, int vcpuid, const void *kaddr, idx++; } } - -/* - * Return the amount of in-use and wired memory for the VM. Since - * these are global stats, only return the values with for vCPU 0 - */ -VMM_STAT_DECLARE(VMM_MEM_RESIDENT); -VMM_STAT_DECLARE(VMM_MEM_WIRED); - -static void -vm_get_rescnt(struct vm *vm, int vcpu, struct vmm_stat_type *stat) -{ - - if (vcpu == 0) { - vmm_stat_set(vm, vcpu, VMM_MEM_RESIDENT, - PAGE_SIZE * vmspace_resident_count(vm->vmspace)); - } -} - -static void -vm_get_wiredcnt(struct vm *vm, int vcpu, struct vmm_stat_type *stat) -{ - - if (vcpu == 0) { - vmm_stat_set(vm, vcpu, VMM_MEM_WIRED, - PAGE_SIZE * pmap_wired_count(vmspace_pmap(vm->vmspace))); - } -} - -VMM_STAT_FUNC(VMM_MEM_RESIDENT, "Resident memory", vm_get_rescnt); -VMM_STAT_FUNC(VMM_MEM_WIRED, "Wired memory", vm_get_wiredcnt); diff --git a/src/vmm/vmm_api.c b/src/vmm/vmm_api.c new file mode 100644 index 0000000..062473e --- /dev/null +++ b/src/vmm/vmm_api.c @@ -0,0 +1,831 @@ +/*- + * Copyright (c) 2015 xhyve developers + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY NETAPP, INC ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL NETAPP, INC OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static struct vm *vm; +static int memflags; +static uint32_t lowmem_limit; +static enum vm_mmap_style mmap_style; +static size_t lowmem; +static void *lowmem_addr; +static size_t highmem; +static void *highmem_addr; + +static void +vcpu_freeze(int vcpu, bool freeze) +{ + enum vcpu_state state; + + state = (freeze) ? VCPU_FROZEN : VCPU_IDLE; + + if (vcpu_set_state(vm, vcpu, state, freeze)) { + xhyve_abort("vcpu_set_state failed\n"); + } +} + +static void +vcpu_freeze_all(bool freeze) +{ + enum vcpu_state state; + int vcpu; + + state = (freeze) ? VCPU_FROZEN : VCPU_IDLE; + + for (vcpu = 0; vcpu < VM_MAXCPU; vcpu++) { + if (vcpu_set_state(vm, vcpu, state, freeze)) { + xhyve_abort("vcpu_set_state failed\n"); + } + } +} + +int +xh_vm_create(void) +{ + int error; + + if (vm != NULL) { + return (EEXIST); + } + + error = vmm_init(); + + if (error != 0) { + return (error); + } + + memflags = 0; + lowmem_limit = (3ull << 30); + + return (vm_create(&vm)); +} + +void +xh_vm_destroy(void) +{ + assert(vm != NULL); + + vm_destroy(vm); + + if (vmm_cleanup() == 0) { + vm = NULL; + } +} + +int +xh_vcpu_create(int vcpu) +{ + assert(vm != NULL); + return (vcpu_create(vm, vcpu)); +} + +void +xh_vcpu_destroy(int vcpu) +{ + assert(vm != NULL); + vcpu_destroy(vm, vcpu); +} + +int +xh_vm_get_memory_seg(uint64_t gpa, size_t *ret_len) +{ + int error; + + struct vm_memory_segment seg; + + error = vm_gpabase2memseg(vm, gpa, &seg); + + if (error == 0) { + *ret_len = seg.len; + } + + return (error); +} + +static int +setup_memory_segment(uint64_t gpa, size_t len, void **addr) +{ + void *object; + uint64_t offset; + int error; + + vcpu_freeze_all(true); + error = vm_malloc(vm, gpa, len); + if (error == 0) { + error = vm_get_memobj(vm, gpa, len, &offset, &object); + if (error == 0) { + *addr = (void *) (((uintptr_t) object) + offset); + } + } + vcpu_freeze_all(false); + return (error); +} + +int +xh_vm_setup_memory(size_t len, enum vm_mmap_style vms) +{ + void **addr; + int error; + + /* XXX VM_MMAP_SPARSE not implemented yet */ + assert(vms == VM_MMAP_NONE || vms == VM_MMAP_ALL); + + mmap_style = vms; + + /* + * If 'len' cannot fit entirely in the 'lowmem' segment then + * create another 'highmem' segment above 4GB for the remainder. + */ + + lowmem = (len > lowmem_limit) ? lowmem_limit : len; + highmem = (len > lowmem_limit) ? (len - lowmem) : 0; + + if (lowmem > 0) { + addr = (vms == VM_MMAP_ALL) ? &lowmem_addr : NULL; + if ((error = setup_memory_segment(0, lowmem, addr))) { + return (error); + } + } + + if (highmem > 0) { + addr = (vms == VM_MMAP_ALL) ? &highmem_addr : NULL; + if ((error = setup_memory_segment((4ull << 30), highmem, addr))) { + return (error); + } + } + + return (0); +} + +void * +xh_vm_map_gpa(uint64_t gpa, size_t len) +{ + assert(mmap_style == VM_MMAP_ALL); + + if ((gpa < lowmem) && ((gpa + len) <= lowmem)) { + return ((void *) (((uintptr_t) lowmem_addr) + gpa)); + } + + if (gpa >= (4ull << 30)) { + gpa -= (4ull << 30); + if ((gpa < highmem) && ((gpa + len) <= highmem)) { + return ((void *) (((uintptr_t) highmem_addr) + gpa)); + } + } + + return (NULL); +} + +int +xh_vm_gla2gpa(int vcpu, struct vm_guest_paging *paging, uint64_t gla, + int prot, uint64_t *gpa, int *fault) +{ + int error; + + vcpu_freeze(vcpu, true); + error = vm_gla2gpa(vm, vcpu, paging, gla, prot, gpa, fault); + vcpu_freeze(vcpu, false); + + return (error); +} + +uint32_t +xh_vm_get_lowmem_limit(void) +{ + return (lowmem_limit); +} + +void +xh_vm_set_lowmem_limit(uint32_t limit) +{ + lowmem_limit = limit; +} + +void +xh_vm_set_memflags(int flags) +{ + memflags = flags; +} + +size_t +xh_vm_get_lowmem_size(void) +{ + return (lowmem); +} + +size_t +xh_vm_get_highmem_size(void) +{ + return (highmem); +} + +int +xh_vm_set_desc(int vcpu, int reg, uint64_t base, uint32_t limit, + uint32_t access) +{ + struct seg_desc sd; + int error; + + sd.base = base; + sd.limit = limit; + sd.access = access; + vcpu_freeze(vcpu, true); + error = vm_set_seg_desc(vm, vcpu, reg, &sd); + vcpu_freeze(vcpu, false); + + return (error); +} + +int +xh_vm_get_desc(int vcpu, int reg, uint64_t *base, uint32_t *limit, + uint32_t *access) +{ + struct seg_desc sd; + int error; + + vcpu_freeze(vcpu, true); + error = vm_get_seg_desc(vm, vcpu, reg, &sd); + if (error == 0) { + *base = sd.base; + *limit = sd.limit; + *access = sd.access; + } + vcpu_freeze(vcpu, false); + + return (error); +} + +int +xh_vm_get_seg_desc(int vcpu, int reg, struct seg_desc *seg_desc) +{ + int error; + + error = xh_vm_get_desc(vcpu, reg, &seg_desc->base, &seg_desc->limit, + &seg_desc->access); + + return (error); +} + +int +xh_vm_set_register(int vcpu, int reg, uint64_t val) +{ + int error; + + vcpu_freeze(vcpu, true); + error = vm_set_register(vm, vcpu, reg, val); + vcpu_freeze(vcpu, false); + + return (error); +} + +int +xh_vm_get_register(int vcpu, int reg, uint64_t *retval) +{ + int error; + + vcpu_freeze(vcpu, true); + error = vm_get_register(vm, vcpu, reg, retval); + vcpu_freeze(vcpu, false); + + return (error); +} + +int +xh_vm_run(int vcpu, struct vm_exit *ret_vmexit) +{ + int error; + + vcpu_freeze(vcpu, true); + error = vm_run(vm, vcpu, ret_vmexit); + vcpu_freeze(vcpu, false); + + return (error); +} + +int +xh_vm_suspend(enum vm_suspend_how how) +{ + return (vm_suspend(vm, how)); +} + +int +xh_vm_reinit(void) +{ + int error; + + vcpu_freeze_all(true); + error = vm_reinit(vm); + vcpu_freeze_all(false); + + return (error); +} + +int +xh_vm_apicid2vcpu(int apicid) +{ + return (apicid); +} + +int +xh_vm_inject_exception(int vcpu, int vector, int errcode_valid, + uint32_t errcode, int restart_instruction) +{ + int error; + + vcpu_freeze(vcpu, true); + error = vm_inject_exception(vm, vcpu, vector, errcode_valid, errcode, + restart_instruction); + vcpu_freeze(vcpu, false); + + return (error); +} + +int +xh_vm_lapic_irq(int vcpu, int vector) +{ + return (lapic_intr_edge(vm, vcpu, vector)); +} + +int +xh_vm_lapic_local_irq(int vcpu, int vector) +{ + return (lapic_set_local_intr(vm, vcpu, vector)); +} + +int +xh_vm_lapic_msi(uint64_t addr, uint64_t msg) +{ + return (lapic_intr_msi(vm, addr, msg)); +} + +int +xh_vm_ioapic_assert_irq(int irq) +{ + return (vioapic_assert_irq(vm, irq)); +} + +int +xh_vm_ioapic_deassert_irq(int irq) +{ + return (vioapic_deassert_irq(vm, irq)); +} + +int +xh_vm_ioapic_pulse_irq(int irq) +{ + return (vioapic_pulse_irq(vm, irq)); +} + +int +xh_vm_ioapic_pincount(int *pincount) +{ + *pincount = vioapic_pincount(vm); + return (0); +} + +int +xh_vm_isa_assert_irq(int atpic_irq, int ioapic_irq) +{ + int error; + + error = vatpic_assert_irq(vm, atpic_irq); + + if ((error == 0) && (ioapic_irq != -1)) { + error = vioapic_assert_irq(vm, ioapic_irq); + } + + return (error); +} + +int +xh_vm_isa_deassert_irq(int atpic_irq, int ioapic_irq) +{ + int error; + + error = vatpic_deassert_irq(vm, atpic_irq); + if ((error == 0) && (ioapic_irq != -1)) { + error = vioapic_deassert_irq(vm, ioapic_irq); + } + + return (error); +} + +int +xh_vm_isa_pulse_irq(int atpic_irq, int ioapic_irq) +{ + int error; + + error = vatpic_pulse_irq(vm, atpic_irq); + if ((error == 0) && (ioapic_irq != -1)) { + error = vioapic_pulse_irq(vm, ioapic_irq); + } + + return (error); +} + +int +xh_vm_isa_set_irq_trigger(int atpic_irq, enum vm_intr_trigger trigger) +{ + return (vatpic_set_irq_trigger(vm, atpic_irq, trigger)); +} + +int +xh_vm_inject_nmi(int vcpu) +{ + return (vm_inject_nmi(vm, vcpu)); +} + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" +static struct { + const char *name; + int type; +} capstrmap[] = { + { "hlt_exit", VM_CAP_HALT_EXIT }, + { "mtrap_exit", VM_CAP_MTRAP_EXIT }, + { "pause_exit", VM_CAP_PAUSE_EXIT }, + { NULL, 0 } +}; +#pragma clang diagnostic pop + +int +xh_vm_capability_name2type(const char *capname) +{ + int i; + + for (i = 0; (capstrmap[i].name != NULL) && (capname != NULL); i++) { + if (strcmp(capstrmap[i].name, capname) == 0) { + return (capstrmap[i].type); + } + } + + return (-1); +} + +const char * +xh_vm_capability_type2name(int type) +{ + int i; + + for (i = 0; (capstrmap[i].name != NULL); i++) { + if (capstrmap[i].type == type) { + return (capstrmap[i].name); + } + } + + return (NULL); +} + +int +xh_vm_get_capability(int vcpu, enum vm_cap_type cap, int *retval) +{ + int error; + + vcpu_freeze(vcpu, true); + error = vm_get_capability(vm, vcpu, cap, retval); + vcpu_freeze(vcpu, false); + + return (error); +} + +int +xh_vm_set_capability(int vcpu, enum vm_cap_type cap, int val) +{ + int error; + + vcpu_freeze(vcpu, true); + error = vm_set_capability(vm, vcpu, cap, val); + vcpu_freeze(vcpu, false); + + return (error); +} + +int +xh_vm_get_intinfo(int vcpu, uint64_t *i1, uint64_t *i2) +{ + int error; + + vcpu_freeze(vcpu, true); + error = vm_get_intinfo(vm, vcpu, i1, i2); + vcpu_freeze(vcpu, false); + + return (error); +} + +int +xh_vm_set_intinfo(int vcpu, uint64_t exit_intinfo) +{ + int error; + + vcpu_freeze(vcpu, true); + error = vm_exit_intinfo(vm, vcpu, exit_intinfo); + vcpu_freeze(vcpu, false); + + return (error); +} + +uint64_t * +xh_vm_get_stats(int vcpu, struct timeval *ret_tv, int *ret_entries) +{ + static uint64_t statbuf[64]; + struct timeval tv; + int re; + int error; + + getmicrotime(&tv); + error = vmm_stat_copy(vm, vcpu, &re, ((uint64_t *) &statbuf)); + + if (error == 0) { + if (ret_entries) { + *ret_entries = re; + } + if (ret_tv) { + *ret_tv = tv; + } + return (((uint64_t *) &statbuf)); + } else { + return (NULL); + } +} + +const char * +xh_vm_get_stat_desc(int index) +{ + static char desc[128]; + + if (vmm_stat_desc_copy(index, ((char *) &desc), sizeof(desc)) == 0) { + return (desc); + } else { + return (NULL); + } +} + +int +xh_vm_get_x2apic_state(int vcpu, enum x2apic_state *s) +{ + return (vm_get_x2apic_state(vm, vcpu, s)); +} + +int +xh_vm_set_x2apic_state(int vcpu, enum x2apic_state s) +{ + int error; + + vcpu_freeze(vcpu, true); + error = vm_set_x2apic_state(vm, vcpu, s); + vcpu_freeze(vcpu, false); + + return (error); +} + +int +xh_vm_get_hpet_capabilities(uint32_t *capabilities) +{ + return (vhpet_getcap(capabilities)); +} + +int +xh_vm_copy_setup(int vcpu, struct vm_guest_paging *pg, uint64_t gla, size_t len, + int prot, struct iovec *iov, int iovcnt, int *fault) +{ + void *va; + uint64_t gpa; + size_t n, off; + int i, error; + + for (i = 0; i < iovcnt; i++) { + iov[i].iov_base = 0; + iov[i].iov_len = 0; + } + + while (len) { + assert(iovcnt > 0); + + error = xh_vm_gla2gpa(vcpu, pg, gla, prot, &gpa, fault); + if ((error) || *fault) { + return (error); + } + + off = gpa & XHYVE_PAGE_MASK; + n = min(len, XHYVE_PAGE_SIZE - off); + + va = xh_vm_map_gpa(gpa, n); + if (va == NULL) { + return (EFAULT); + } + + iov->iov_base = va; + iov->iov_len = n; + iov++; + iovcnt--; + + gla += n; + len -= n; + } + + return (0); +} + +void +xh_vm_copyin(struct iovec *iov, void *dst, size_t len) +{ + const char *src; + char *d; + size_t n; + + d = dst; + while (len) { + assert(iov->iov_len); + n = min(len, iov->iov_len); + src = iov->iov_base; + bcopy(src, d, n); + iov++; + d += n; + len -= n; + } +} + +void +xh_vm_copyout(const void *src, struct iovec *iov, size_t len) +{ + const char *s; + char *dst; + size_t n; + + s = src; + while (len) { + assert(iov->iov_len); + n = min(len, iov->iov_len); + dst = iov->iov_base; + bcopy(s, dst, n); + iov++; + s += n; + len -= n; + } +} + +int +xh_vm_rtc_write(int offset, uint8_t value) +{ + return (vrtc_nvram_write(vm, offset, value)); +} + +int +xh_vm_rtc_read(int offset, uint8_t *retval) +{ + return (vrtc_nvram_read(vm, offset, retval)); +} + +int +xh_vm_rtc_settime(time_t secs) +{ + return (vrtc_set_time(vm, secs)); +} + +int +xh_vm_rtc_gettime(time_t *secs) +{ + *secs = vrtc_get_time(vm); + return (0); +} + +int +xh_vcpu_reset(int vcpu) +{ + int error; + +#define SET_REG(r, v) (error = xh_vm_set_register(vcpu, (r), (v))) +#define SET_DESC(d, b, l, a) (error = xh_vm_set_desc(vcpu, (d), (b), (l), (a))) + + if (SET_REG(VM_REG_GUEST_RFLAGS, 0x2) || + SET_REG(VM_REG_GUEST_RIP, 0xfff0) || + SET_REG(VM_REG_GUEST_CR0, CR0_NE) || + SET_REG(VM_REG_GUEST_CR3, 0) || + SET_REG(VM_REG_GUEST_CR4, 0) || + SET_REG(VM_REG_GUEST_CS, 0xf000) || + SET_REG(VM_REG_GUEST_SS, 0) || + SET_REG(VM_REG_GUEST_DS, 0) || + SET_REG(VM_REG_GUEST_ES, 0) || + SET_REG(VM_REG_GUEST_FS, 0) || + SET_REG(VM_REG_GUEST_GS, 0) || + SET_REG(VM_REG_GUEST_RAX, 0) || + SET_REG(VM_REG_GUEST_RBX, 0) || + SET_REG(VM_REG_GUEST_RCX, 0) || + SET_REG(VM_REG_GUEST_RDX, 0xf00) || + SET_REG(VM_REG_GUEST_RSI, 0) || + SET_REG(VM_REG_GUEST_RDI, 0) || + SET_REG(VM_REG_GUEST_RBP, 0) || + SET_REG(VM_REG_GUEST_RSP, 0) || + SET_REG(VM_REG_GUEST_TR, 0) || + SET_REG(VM_REG_GUEST_LDTR, 0) || + SET_DESC(VM_REG_GUEST_CS, 0xffff0000, 0xffff, 0x0093) || + SET_DESC(VM_REG_GUEST_SS, 0, 0xffff, 0x0093) || + SET_DESC(VM_REG_GUEST_DS, 0, 0xffff, 0x0093) || + SET_DESC(VM_REG_GUEST_ES, 0, 0xffff, 0x0093) || + SET_DESC(VM_REG_GUEST_FS, 0, 0xffff, 0x0093) || + SET_DESC(VM_REG_GUEST_GS, 0, 0xffff, 0x0093) || + SET_DESC(VM_REG_GUEST_GDTR, 0, 0xffff, 0) || + SET_DESC(VM_REG_GUEST_IDTR, 0, 0xffff, 0) || + SET_DESC(VM_REG_GUEST_TR, 0, 0, 0x0000008b) || + SET_DESC(VM_REG_GUEST_LDTR, 0, 0xffff, 0x00000082)) + { + return (error); + } + + return (0); +} + +int +xh_vm_active_cpus(cpuset_t *cpus) +{ + *cpus = vm_active_cpus(vm); + return (0); +} + +int +xh_vm_suspended_cpus(cpuset_t *cpus) +{ + *cpus = vm_suspended_cpus(vm); + return (0); +} + +int +xh_vm_activate_cpu(int vcpu) +{ + int error; + + vcpu_freeze(vcpu, true); + error = vm_activate_cpu(vm, vcpu); + vcpu_freeze(vcpu, false); + + return (error); +} + +int +xh_vm_restart_instruction(int vcpu) +{ + int error; + + vcpu_freeze(vcpu, true); + error = vm_restart_instruction(vm, vcpu); + vcpu_freeze(vcpu, false); + + return (error); +} + +int +xh_vm_emulate_instruction(int vcpu, uint64_t gpa, struct vie *vie, + struct vm_guest_paging *paging, mem_region_read_t memread, + mem_region_write_t memwrite, void *memarg) +{ + int error; + + vcpu_freeze(vcpu, true); + error = vmm_emulate_instruction(vm, vcpu, gpa, vie, paging, memread, + memwrite, memarg); + vcpu_freeze(vcpu, false); + + return (error); +} diff --git a/src/vmm/vmm_callout.c b/src/vmm/vmm_callout.c new file mode 100644 index 0000000..73011fe --- /dev/null +++ b/src/vmm/vmm_callout.c @@ -0,0 +1,379 @@ +/*- + * Copyright (c) 2015 xhyve developers + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY NETAPP, INC ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL NETAPP, INC OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ + +/* makeshift callout implementation based on OSv and FreeBSD */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#define callout_cmp(a, b) ((a)->timeout < (b)->timeout) + +static mach_timebase_info_data_t timebase_info; +static pthread_t callout_thread; +static pthread_mutex_t callout_mtx; +static pthread_cond_t callout_cnd; +static struct callout *callout_queue; +static bool work; +static bool initialized = false; + +static inline uint64_t nanos_to_abs(uint64_t nanos) { + return (nanos * timebase_info.denom) / timebase_info.numer; +} + +static inline uint64_t abs_to_nanos(uint64_t abs) { + return (abs * timebase_info.numer) / timebase_info.denom; +} + +static inline uint64_t sbt2mat(sbintime_t sbt) { + uint64_t s, ns; + + s = (((uint64_t) sbt) >> 32); + ns = (((uint64_t) 1000000000) * (uint32_t) sbt) >> 32; + + return (nanos_to_abs((s * 1000000000) + ns)); +} + +static inline void mat_to_ts(uint64_t mat, struct timespec *ts) { + uint64_t ns; + + ns = abs_to_nanos(mat); + + ts->tv_sec = (ns / 1000000000); + ts->tv_nsec = (ns % 1000000000); +} + +void binuptime(struct bintime *bt) { + uint64_t ns; + + ns = abs_to_nanos(mach_absolute_time()); + + bt->sec = (ns / 1000000000); + bt->frac = (((ns % 1000000000) * (((uint64_t) 1 << 63) / 500000000))); +} + +void getmicrotime(struct timeval *tv) { + uint64_t ns, sns; + + ns = abs_to_nanos(mach_absolute_time()); + + sns = (ns / 1000000000); + tv->tv_sec = (long) sns; + tv->tv_usec = (int) ((ns - sns) / 1000); +} + +static void callout_insert(struct callout *c) { + struct callout *node = callout_queue; + + if (!node) { + callout_queue = c; + c->prev = NULL; + c->next = NULL; + c->queued = 1; + return; + } + + if (callout_cmp(c, node)) { + node->prev = c; + c->prev = NULL; + c->next = node; + callout_queue = c; + c->queued = 1; + return; + } + + while (node->next) { + if (callout_cmp(c, node->next)) { + c->prev = node; + c->next = node->next; + node->next->prev = c; + node->next = c; + c->queued = 1; + return; + } + node = node->next; + } + + c->prev = node; + c->next = NULL; + node->next = c; + c->queued = 1; +} + +static void callout_remove(struct callout *c) { + if (!c->queued) { + return; + } + + if (c->prev) { + c->prev->next = c->next; + } else { + callout_queue = c->next; + } + + if (c->next) { + c->next->prev = c->prev; + } + + c->prev = NULL; + c->next = NULL; + c->queued = 0; +} + +static void *callout_thread_func(UNUSED void *arg) { + struct callout *c; + struct timespec ts; + uint64_t delta, mat; + int ret; + + pthread_mutex_lock(&callout_mtx); + + while (true) { + /* wait for work */ + while (!callout_queue) { + pthread_cond_wait(&callout_cnd, &callout_mtx); + }; + + /* get the callout with the nearest timout */ + c = callout_queue; + + if (!(c->flags & (CALLOUT_ACTIVE | CALLOUT_PENDING))) { + abort(); + } + + /* wait for timeout */ + ret = 0; + while ((ret != ETIMEDOUT) && !work) { + mat = mach_absolute_time(); + if (mat >= c->timeout) { + /* XXX: it might not be worth sleeping for very short timeouts */ + ret = ETIMEDOUT; + break; + } + + delta = c->timeout - mat; + mat_to_ts(delta, &ts); + ret = pthread_cond_timedwait_relative_np(&callout_cnd, &callout_mtx, &ts); + }; + + work = false; + + if (!(ret == ETIMEDOUT) || !c->queued) { + continue; + } + + /* dispatch */ + c->flags &= ~CALLOUT_PENDING; + + pthread_mutex_unlock(&callout_mtx); + c->callout(c->argument); + pthread_mutex_lock(&callout_mtx); + + /* note: after the handler has been invoked the callout structure can look + * much differently, the handler may have rescheduled the callout or + * even freed it. + * + * if the callout is still enqueued it means that it hasn't been + * freed by the user + * + * reset || drain || !stop + */ + + if (c->queued) { + /* if the callout hasn't been rescheduled, remove it */ + if (((c->flags & CALLOUT_PENDING) == 0) || (c->flags & CALLOUT_WAITING)) { + c->flags |= CALLOUT_COMPLETED; + callout_remove(c); + } + } + } + + return NULL; +} + +void callout_init(struct callout *c, int mpsafe) { + if (!mpsafe) { + abort(); + } + + memset(c, 0, sizeof(struct callout)); + + if (pthread_cond_init(&c->wait, NULL)) { + abort(); + } +} + +static int callout_stop_safe_locked(struct callout *c, int drain) { + int result = 0; + + if ((drain) && (pthread_self() != callout_thread) && (callout_pending(c) || + (callout_active(c) && !callout_completed(c)))) + { + if (c->flags & CALLOUT_WAITING) { + abort(); + } + + /* wait for callout */ + c->flags |= CALLOUT_WAITING; + work = true; + + pthread_cond_signal(&callout_cnd); + + while (!(c->flags & CALLOUT_COMPLETED)) { + pthread_cond_wait(&c->wait, &callout_mtx); + } + + c->flags &= ~CALLOUT_WAITING; + result = 1; + } + + callout_remove(c); + + /* clear flags */ + c->flags &= ~(CALLOUT_ACTIVE | CALLOUT_PENDING | CALLOUT_COMPLETED | + CALLOUT_WAITING); + + return (result); +} + +int callout_stop_safe(struct callout *c, int drain) { + pthread_mutex_lock(&callout_mtx); + callout_stop_safe_locked(c, drain); + pthread_mutex_unlock(&callout_mtx); + return 0; +} + +int callout_reset_sbt(struct callout *c, sbintime_t sbt, + UNUSED sbintime_t precision, void (*ftn)(void *), void *arg, int flags) +{ + int result; + bool is_next_timeout; + + is_next_timeout = false; + + pthread_mutex_lock(&callout_mtx); + + if (!((flags == 0) || (flags == C_ABSOLUTE)) || (c->flags !=0)) { + /* FIXME */ + //printf("XHYVE: callout_reset_sbt 0x%08x 0x%08x\r\n", flags, c->flags); + //abort(); + } + + c->timeout = sbt2mat(sbt); + + if (flags != C_ABSOLUTE) { + c->timeout += mach_absolute_time(); + } + + result = callout_stop_safe_locked(c, 0); + + c->callout = ftn; + c->argument = arg; + c->flags |= (CALLOUT_PENDING | CALLOUT_ACTIVE); + + callout_insert(c); + + if (c == callout_queue) { + work = true; + is_next_timeout = true; + } + + pthread_mutex_unlock(&callout_mtx); + + if (is_next_timeout) { + pthread_cond_signal(&callout_cnd); + is_next_timeout = false; + } + + return (result); +} + +void callout_system_init(void) { + if (initialized) { + return; + } + + mach_timebase_info(&timebase_info); + + if (pthread_mutex_init(&callout_mtx, NULL)) { + abort(); + } + + if (pthread_cond_init(&callout_cnd, NULL)) { + abort(); + } + + callout_queue = NULL; + work = false; + + if (pthread_create(&callout_thread, /*&attr*/ NULL, &callout_thread_func, + NULL)) + { + abort(); + } + + initialized = true; +} + +//static void callout_queue_print(void) { +// struct callout *node; +// +// pthread_mutex_lock(&callout_mtx); +// for (node = callout_queue; node; node = node->next) { +// printf("t:%llu -> ", abs_to_nanos(node->timeout)); +// if (!node->next) { +// break; +// } +// } +// pthread_mutex_unlock(&callout_mtx); +// printf("NULL\n"); +//} + +//void fire (void *arg) { +// printf("fire!\n"); +//} +// +//int main(void) { +// struct callout a; +// sbintime_t sbt; +// printf("xhyve_timer\n"); +// callout_system_init(); +// callout_init(&a, 1); +// sbt = ((sbintime_t) (((uint64_t) 3) << 32)); +// callout_reset_sbt(&a, sbt, 0, &fire, NULL, 0); +// while (1); +// return 0; +//} diff --git a/src/vmm/vmm_host.c b/src/vmm/vmm_host.c new file mode 100644 index 0000000..e11e3cf --- /dev/null +++ b/src/vmm/vmm_host.c @@ -0,0 +1,60 @@ +/*- + * Copyright (c) 2012 NetApp, Inc. + * Copyright (c) 2015 xhyve developers + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY NETAPP, INC ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL NETAPP, INC OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#include +#include +#include +#include +#include +#include + +static struct xsave_limits vmm_xsave_limits; + +void +vmm_host_state_init(void) +{ + uint32_t avx1_0, regs[4]; + size_t ln; + + vmm_xsave_limits.xsave_enabled = 0; + + ln = sizeof(uint32_t); + if (!sysctlbyname("hw.optional.avx1_0", &avx1_0, &ln, NULL, 0) && avx1_0) { + cpuid_count(0xd, 0x0, regs); + vmm_xsave_limits.xsave_enabled = 1; + vmm_xsave_limits.xcr0_allowed = XFEATURE_AVX; + vmm_xsave_limits.xsave_max_size = regs[1]; + } +} + +const struct xsave_limits * +vmm_get_xsave_limits(void) +{ + return (&vmm_xsave_limits); +} diff --git a/vmm/vmm_instruction_emul.c b/src/vmm/vmm_instruction_emul.c similarity index 91% rename from vmm/vmm_instruction_emul.c rename to src/vmm/vmm_instruction_emul.c index 9c6158a..4fb07b2 100644 --- a/vmm/vmm_instruction_emul.c +++ b/src/vmm/vmm_instruction_emul.c @@ -1,6 +1,7 @@ /*- * Copyright (c) 2012 Sandvine, Inc. * Copyright (c) 2012 NetApp, Inc. + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -27,35 +28,27 @@ * $FreeBSD$ */ -#include -__FBSDID("$FreeBSD$"); +#include +#include +#include +#include +#include +#include +#include +#include +#include -#ifdef _KERNEL -#include -#include -#include -#include - -#include -#include - -#include -#include -#else /* !_KERNEL */ -#include -#include -#include - -#include - -#include -#include -#define KASSERT(exp,msg) assert((exp)) -#endif /* _KERNEL */ - -#include -#include -#include +#define PG_V 0x001 /* P Valid */ +#define PG_RW 0x002 /* R/W Read/Write */ +#define PG_U 0x004 /* U/S User/Supervisor */ +#define PG_A 0x020 /* A Accessed */ +#define PG_M 0x040 /* D Dirty */ +#define PG_PS 0x080 /* PS Page size (0=4k,1=4M) */ +#define PGEX_P 0x01 /* Protection violation vs. not present */ +#define PGEX_W 0x02 /* during a Write cycle */ +#define PGEX_U 0x04 /* access from User mode (UPL) */ +#define PGEX_RSV 0x08 /* reserved PTE field is non-zero */ +#define PGEX_I 0x10 /* during an instruction fetch */ /* struct vie_op.op_type */ enum { @@ -297,9 +290,9 @@ vie_read_bytereg(void *vm, int vcpuid, struct vie *vie, uint8_t *rval) * base register right by 8 bits (%ah = %rax >> 8). */ if (lhbr) - *rval = val >> 8; + *rval = (uint8_t) (val >> 8); else - *rval = val; + *rval = (uint8_t) val; return (error); } @@ -386,11 +379,11 @@ getcc(int opsize, uint64_t x, uint64_t y) ("getcc: invalid operand size %d", opsize)); if (opsize == 1) - return (getcc8(x, y)); + return (getcc8(((uint8_t) x), ((uint8_t) y))); else if (opsize == 2) - return (getcc16(x, y)); + return (getcc16(((uint16_t) x), ((uint16_t) y))); else if (opsize == 4) - return (getcc32(x, y)); + return (getcc32(((uint32_t) x), ((uint32_t) y))); else return (getcc64(x, y)); } @@ -442,7 +435,7 @@ emulate_mov(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, size = 1; /* override for byte operation */ error = memread(vm, vcpuid, gpa, &val, size, arg); if (error == 0) - error = vie_write_bytereg(vm, vcpuid, vie, val); + error = vie_write_bytereg(vm, vcpuid, vie, ((uint8_t) val)); break; case 0x8B: /* @@ -490,7 +483,8 @@ emulate_mov(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, * REX + C6/0 mov r/m8, imm8 */ size = 1; /* override for byte operation */ - error = memwrite(vm, vcpuid, gpa, vie->immediate, size, arg); + error = memwrite(vm, vcpuid, gpa, ((uint64_t) vie->immediate), size, + arg); break; case 0xC7: /* @@ -499,7 +493,7 @@ emulate_mov(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, * C7/0 mov r/m32, imm32 * REX.W + C7/0 mov r/m64, imm32 (sign-extended to 64-bits) */ - val = vie->immediate & size2mask[size]; + val = ((uint64_t) vie->immediate) & size2mask[size]; error = memwrite(vm, vcpuid, gpa, val, size, arg); break; default: @@ -511,7 +505,7 @@ emulate_mov(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, static int emulate_movx(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, - mem_region_read_t memread, mem_region_write_t memwrite, + mem_region_read_t memread, UNUSED mem_region_write_t memwrite, void *arg) { int error, size; @@ -584,7 +578,7 @@ emulate_movx(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, reg = gpr_map[vie->reg]; /* sign extend byte */ - val = (int8_t)val; + val = (uint64_t) ((int64_t) ((int8_t) val)); /* write the result */ error = vie_update_register(vm, vcpuid, reg, val, size); @@ -599,9 +593,9 @@ emulate_movx(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, * Helper function to calculate and validate a linear address. */ static int -get_gla(void *vm, int vcpuid, struct vie *vie, struct vm_guest_paging *paging, - int opsize, int addrsize, int prot, enum vm_reg_name seg, - enum vm_reg_name gpr, uint64_t *gla, int *fault) +get_gla(void *vm, int vcpuid, UNUSED struct vie *vie, + struct vm_guest_paging *paging, int opsize, int addrsize, int prot, + enum vm_reg_name seg, enum vm_reg_name gpr, uint64_t *gla, int *fault) { struct seg_desc desc; uint64_t cr0, val, rflags; @@ -656,17 +650,14 @@ emulate_movs(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, struct vm_guest_paging *paging, mem_region_read_t memread, mem_region_write_t memwrite, void *arg) { -#ifdef _KERNEL struct vm_copyinfo copyinfo[2]; -#else - struct iovec copyinfo[2]; -#endif uint64_t dstaddr, srcaddr, dstgpa, srcgpa, val; uint64_t rcx, rdi, rsi, rflags; int error, fault, opsize, seg, repeat; opsize = (vie->op.op_byte == 0xA4) ? 1 : vie->opsize; val = 0; + rcx = 0; error = 0; /* @@ -710,12 +701,13 @@ emulate_movs(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, seg = vie->segment_override ? vie->segment_register : VM_REG_GUEST_DS; error = get_gla(vm, vcpuid, vie, paging, opsize, vie->addrsize, - PROT_READ, seg, VM_REG_GUEST_RSI, &srcaddr, &fault); + XHYVE_PROT_READ, ((enum vm_reg_name) seg), VM_REG_GUEST_RSI, &srcaddr, + &fault); if (error || fault) goto done; - error = vm_copy_setup(vm, vcpuid, paging, srcaddr, opsize, PROT_READ, - copyinfo, nitems(copyinfo), &fault); + error = vm_copy_setup(vm, vcpuid, paging, srcaddr, ((size_t) opsize), + XHYVE_PROT_READ, copyinfo, nitems(copyinfo), &fault); if (error == 0) { if (fault) goto done; /* Resume guest to handle fault */ @@ -723,7 +715,7 @@ emulate_movs(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, /* * case (2): read from system memory and write to mmio. */ - vm_copyin(vm, vcpuid, copyinfo, &val, opsize); + vm_copyin(vm, vcpuid, copyinfo, &val, ((size_t) opsize)); vm_copy_teardown(vm, vcpuid, copyinfo, nitems(copyinfo)); error = memwrite(vm, vcpuid, gpa, val, opsize, arg); if (error) @@ -735,13 +727,13 @@ emulate_movs(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, */ error = get_gla(vm, vcpuid, vie, paging, opsize, vie->addrsize, - PROT_WRITE, VM_REG_GUEST_ES, VM_REG_GUEST_RDI, &dstaddr, + XHYVE_PROT_WRITE, VM_REG_GUEST_ES, VM_REG_GUEST_RDI, &dstaddr, &fault); if (error || fault) goto done; - error = vm_copy_setup(vm, vcpuid, paging, dstaddr, opsize, - PROT_WRITE, copyinfo, nitems(copyinfo), &fault); + error = vm_copy_setup(vm, vcpuid, paging, dstaddr, ((size_t) opsize), + XHYVE_PROT_WRITE, copyinfo, nitems(copyinfo), &fault); if (error == 0) { if (fault) goto done; /* Resume guest to handle fault */ @@ -759,7 +751,7 @@ emulate_movs(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, if (error) goto done; - vm_copyout(vm, vcpuid, &val, copyinfo, opsize); + vm_copyout(vm, vcpuid, &val, copyinfo, ((size_t) opsize)); vm_copy_teardown(vm, vcpuid, copyinfo, nitems(copyinfo)); } else { /* @@ -771,12 +763,12 @@ emulate_movs(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, * to address translation faults. */ error = vm_gla2gpa(vm, vcpuid, paging, srcaddr, - PROT_READ, &srcgpa, &fault); + XHYVE_PROT_READ, &srcgpa, &fault); if (error || fault) goto done; error = vm_gla2gpa(vm, vcpuid, paging, dstaddr, - PROT_WRITE, &dstgpa, &fault); + XHYVE_PROT_WRITE, &dstgpa, &fault); if (error || fault) goto done; @@ -800,11 +792,11 @@ emulate_movs(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, KASSERT(error == 0, ("%s: error %d getting rflags", __func__, error)); if (rflags & PSL_D) { - rsi -= opsize; - rdi -= opsize; + rsi -= ((uint64_t) opsize); + rdi -= ((uint64_t) opsize); } else { - rsi += opsize; - rdi += opsize; + rsi += ((uint64_t) opsize); + rdi += ((uint64_t) opsize); } error = vie_update_register(vm, vcpuid, VM_REG_GUEST_RSI, rsi, @@ -835,7 +827,7 @@ done: static int emulate_stos(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, - struct vm_guest_paging *paging, mem_region_read_t memread, + UNUSED struct vm_guest_paging *paging, UNUSED mem_region_read_t memread, mem_region_write_t memwrite, void *arg) { int error, opsize, repeat; @@ -844,6 +836,7 @@ emulate_stos(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, opsize = (vie->op.op_byte == 0xAA) ? 1 : vie->opsize; repeat = vie->repz_present | vie->repnz_present; + rcx = 0; if (repeat) { error = vie_read_register(vm, vcpuid, VM_REG_GUEST_RCX, &rcx); @@ -871,9 +864,9 @@ emulate_stos(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, KASSERT(error == 0, ("%s: error %d getting rflags", __func__, error)); if (rflags & PSL_D) - rdi -= opsize; + rdi -= ((uint64_t) opsize); else - rdi += opsize; + rdi += ((uint64_t) opsize); error = vie_update_register(vm, vcpuid, VM_REG_GUEST_RDI, rdi, vie->addrsize); @@ -904,6 +897,7 @@ emulate_and(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, uint64_t result, rflags, rflags2, val1, val2; size = vie->opsize; + result = 0; error = EINVAL; switch (vie->op.op_byte) { @@ -956,7 +950,7 @@ emulate_and(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, * perform the operation with the pre-fetched immediate * operand and write the result */ - result = val1 & vie->immediate; + result = val1 & ((uint64_t) vie->immediate); error = memwrite(vm, vcpuid, gpa, result, size, arg); break; default: @@ -976,7 +970,7 @@ emulate_and(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, * The updated status flags are obtained by subtracting 0 from 'result'. */ rflags2 = getcc(size, result, 0); - rflags &= ~RFLAGS_STATUS_BITS; + rflags &= ~((uint64_t) RFLAGS_STATUS_BITS); rflags |= rflags2 & (PSL_PF | PSL_Z | PSL_N); error = vie_update_register(vm, vcpuid, VM_REG_GUEST_RFLAGS, rflags, 8); @@ -991,6 +985,7 @@ emulate_or(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, uint64_t val1, result, rflags, rflags2; size = vie->opsize; + result = 0; error = EINVAL; switch (vie->op.op_byte) { @@ -1018,7 +1013,7 @@ emulate_or(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, * perform the operation with the pre-fetched immediate * operand and write the result */ - result = val1 | vie->immediate; + result = val1 | ((uint64_t) vie->immediate); error = memwrite(vm, vcpuid, gpa, result, size, arg); break; default: @@ -1038,7 +1033,7 @@ emulate_or(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, * The updated status flags are obtained by subtracting 0 from 'result'. */ rflags2 = getcc(size, result, 0); - rflags &= ~RFLAGS_STATUS_BITS; + rflags &= ~((uint64_t) RFLAGS_STATUS_BITS); rflags |= rflags2 & (PSL_PF | PSL_Z | PSL_N); error = vie_update_register(vm, vcpuid, VM_REG_GUEST_RFLAGS, rflags, 8); @@ -1047,7 +1042,8 @@ emulate_or(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, static int emulate_cmp(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, - mem_region_read_t memread, mem_region_write_t memwrite, void *arg) + mem_region_read_t memread, UNUSED mem_region_write_t memwrite, + void *arg) { int error, size; uint64_t op1, op2, rflags, rflags2; @@ -1110,7 +1106,7 @@ emulate_cmp(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, if (error) return (error); - rflags2 = getcc(size, op1, vie->immediate); + rflags2 = getcc(size, op1, ((uint64_t) vie->immediate)); break; default: return (EINVAL); @@ -1118,7 +1114,7 @@ emulate_cmp(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, error = vie_read_register(vm, vcpuid, VM_REG_GUEST_RFLAGS, &rflags); if (error) return (error); - rflags &= ~RFLAGS_STATUS_BITS; + rflags &= ~((uint64_t) RFLAGS_STATUS_BITS); rflags |= rflags2 & RFLAGS_STATUS_BITS; error = vie_update_register(vm, vcpuid, VM_REG_GUEST_RFLAGS, rflags, 8); @@ -1127,13 +1123,16 @@ emulate_cmp(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, static int emulate_sub(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, - mem_region_read_t memread, mem_region_write_t memwrite, void *arg) + mem_region_read_t memread, UNUSED mem_region_write_t memwrite, + void *arg) { int error, size; uint64_t nval, rflags, rflags2, val1, val2; enum vm_reg_name reg; size = vie->opsize; + val1 = 0; + val2 = 0; error = EINVAL; switch (vie->op.op_byte) { @@ -1172,7 +1171,7 @@ emulate_sub(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, if (error) return (error); - rflags &= ~RFLAGS_STATUS_BITS; + rflags &= ~((uint64_t) RFLAGS_STATUS_BITS); rflags |= rflags2 & RFLAGS_STATUS_BITS; error = vie_update_register(vm, vcpuid, VM_REG_GUEST_RFLAGS, rflags, 8); @@ -1186,11 +1185,7 @@ emulate_stack_op(void *vm, int vcpuid, uint64_t mmio_gpa, struct vie *vie, struct vm_guest_paging *paging, mem_region_read_t memread, mem_region_write_t memwrite, void *arg) { -#ifdef _KERNEL struct vm_copyinfo copyinfo[2]; -#else - struct iovec copyinfo[2]; -#endif struct seg_desc ss_desc; uint64_t cr0, rflags, rsp, stack_gla, val; int error, fault, size, stackaddrsize, pushop; @@ -1238,11 +1233,11 @@ emulate_stack_op(void *vm, int vcpuid, uint64_t mmio_gpa, struct vie *vie, error = vie_read_register(vm, vcpuid, VM_REG_GUEST_RSP, &rsp); KASSERT(error == 0, ("%s: error %d getting rsp", __func__, error)); if (pushop) { - rsp -= size; + rsp -= ((uint64_t) size); } if (vie_calculate_gla(paging->cpu_mode, VM_REG_GUEST_SS, &ss_desc, - rsp, size, stackaddrsize, pushop ? PROT_WRITE : PROT_READ, + rsp, size, stackaddrsize, pushop ? XHYVE_PROT_WRITE : XHYVE_PROT_READ, &stack_gla)) { vm_inject_ss(vm, vcpuid, 0); return (0); @@ -1258,8 +1253,8 @@ emulate_stack_op(void *vm, int vcpuid, uint64_t mmio_gpa, struct vie *vie, return (0); } - error = vm_copy_setup(vm, vcpuid, paging, stack_gla, size, - pushop ? PROT_WRITE : PROT_READ, copyinfo, nitems(copyinfo), + error = vm_copy_setup(vm, vcpuid, paging, stack_gla, ((size_t) size), + pushop ? XHYVE_PROT_WRITE : XHYVE_PROT_READ, copyinfo, nitems(copyinfo), &fault); if (error || fault) return (error); @@ -1267,11 +1262,11 @@ emulate_stack_op(void *vm, int vcpuid, uint64_t mmio_gpa, struct vie *vie, if (pushop) { error = memread(vm, vcpuid, mmio_gpa, &val, size, arg); if (error == 0) - vm_copyout(vm, vcpuid, &val, copyinfo, size); + vm_copyout(vm, vcpuid, &val, copyinfo, ((size_t) size)); } else { - vm_copyin(vm, vcpuid, copyinfo, &val, size); + vm_copyin(vm, vcpuid, copyinfo, &val, ((size_t) size)); error = memwrite(vm, vcpuid, mmio_gpa, val, size, arg); - rsp += size; + rsp += ((uint64_t) size); } vm_copy_teardown(vm, vcpuid, copyinfo, nitems(copyinfo)); @@ -1327,7 +1322,7 @@ emulate_pop(void *vm, int vcpuid, uint64_t mmio_gpa, struct vie *vie, static int emulate_group1(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, - struct vm_guest_paging *paging, mem_region_read_t memread, + UNUSED struct vm_guest_paging *paging, mem_region_read_t memread, mem_region_write_t memwrite, void *memarg) { int error; @@ -1355,7 +1350,7 @@ emulate_group1(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, static int emulate_bittest(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, - mem_region_read_t memread, mem_region_write_t memwrite, void *memarg) + mem_region_read_t memread, UNUSED mem_region_write_t memwrite, void *memarg) { uint64_t val, rflags; int error, bitmask, bitoff; @@ -1387,7 +1382,7 @@ emulate_bittest(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, if (val & (1UL << bitoff)) rflags |= PSL_C; else - rflags &= ~PSL_C; + rflags &= ~((uint64_t) PSL_C); error = vie_update_register(vm, vcpuid, VM_REG_GUEST_RFLAGS, rflags, 8); KASSERT(error == 0, ("%s: error %d updating rflags", __func__, error)); @@ -1473,7 +1468,7 @@ vie_alignment_check(int cpl, int size, uint64_t cr0, uint64_t rf, uint64_t gla) if (cpl != 3 || (cr0 & CR0_AM) == 0 || (rf & PSL_AC) == 0) return (0); - return ((gla & (size - 1)) ? 1 : 0); + return ((gla & ((uint64_t) (size - 1))) ? 1 : 0); } int @@ -1515,7 +1510,7 @@ vie_calculate_gla(enum vm_cpu_mode cpu_mode, enum vm_reg_name seg, ("%s: invalid segment %d", __func__, seg)); KASSERT(length == 1 || length == 2 || length == 4 || length == 8, ("%s: invalid operand size %d", __func__, length)); - KASSERT((prot & ~(PROT_READ | PROT_WRITE)) == 0, + KASSERT((prot & ~(XHYVE_PROT_READ | XHYVE_PROT_WRITE)) == 0, ("%s: invalid prot %#x", __func__, prot)); firstoff = offset; @@ -1551,13 +1546,13 @@ vie_calculate_gla(enum vm_cpu_mode cpu_mode, enum vm_reg_name seg, KASSERT(type >= 16 && type <= 31, ("segment %d has invalid " "descriptor type %#x", seg, type)); - if (prot & PROT_READ) { + if (prot & XHYVE_PROT_READ) { /* #GP on a read access to a exec-only code segment */ if ((type & 0xA) == 0x8) return (-1); } - if (prot & PROT_WRITE) { + if (prot & XHYVE_PROT_WRITE) { /* * #GP on a write access to a code segment or a * read-only data segment. @@ -1613,7 +1608,6 @@ vie_calculate_gla(enum vm_cpu_mode cpu_mode, enum vm_reg_name seg, return (0); } -#ifdef _KERNEL void vie_init(struct vie *vie, const char *inst_bytes, int inst_length) { @@ -1627,8 +1621,8 @@ vie_init(struct vie *vie, const char *inst_bytes, int inst_length) vie->segment_register = VM_REG_LAST; if (inst_length) { - bcopy(inst_bytes, vie->inst, inst_length); - vie->num_valid = inst_length; + bcopy(inst_bytes, vie->inst, ((size_t) inst_length)); + vie->num_valid = ((uint8_t) inst_length); } } @@ -1639,37 +1633,18 @@ pf_error_code(int usermode, int prot, int rsvd, uint64_t pte) if (pte & PG_V) error_code |= PGEX_P; - if (prot & VM_PROT_WRITE) + if (prot & XHYVE_PROT_WRITE) error_code |= PGEX_W; if (usermode) error_code |= PGEX_U; if (rsvd) error_code |= PGEX_RSV; - if (prot & VM_PROT_EXECUTE) + if (prot & XHYVE_PROT_EXECUTE) error_code |= PGEX_I; return (error_code); } -static void -ptp_release(void **cookie) -{ - if (*cookie != NULL) { - vm_gpa_release(*cookie); - *cookie = NULL; - } -} - -static void * -ptp_hold(struct vm *vm, vm_paddr_t ptpphys, size_t len, void **cookie) -{ - void *ptr; - - ptp_release(cookie); - ptr = vm_gpa_hold(vm, ptpphys, len, VM_PROT_RW, cookie); - return (ptr); -} - int vm_gla2gpa(struct vm *vm, int vcpuid, struct vm_guest_paging *paging, uint64_t gla, int prot, uint64_t *gpa, int *guest_fault) @@ -1683,15 +1658,20 @@ vm_gla2gpa(struct vm *vm, int vcpuid, struct vm_guest_paging *paging, *guest_fault = 0; usermode = (paging->cpl == 3 ? 1 : 0); - writable = prot & VM_PROT_WRITE; + writable = prot & XHYVE_PROT_WRITE; cookie = NULL; retval = 0; retries = 0; + pte = 0; + pte32 = 0; + ptpshift = 0; + pgsize = 0; + ptpindex = 0; + ptpbase = NULL; + ptpbase32 = NULL; + restart: ptpphys = paging->cr3; /* root of the page tables */ - ptp_release(&cookie); - if (retries++ > 0) - maybe_yield(); if (vie_canonical_check(paging->cpu_mode, gla)) { /* @@ -1711,14 +1691,14 @@ restart: nlevels = 2; while (--nlevels >= 0) { /* Zero out the lower 12 bits. */ - ptpphys &= ~0xfff; + ptpphys &= ~((uint64_t) 0xfff); - ptpbase32 = ptp_hold(vm, ptpphys, PAGE_SIZE, &cookie); + ptpbase32 = vm_gpa2hva(vm, ptpphys, XHYVE_PAGE_SIZE); if (ptpbase32 == NULL) goto error; - ptpshift = PAGE_SHIFT + nlevels * 10; + ptpshift = XHYVE_PAGE_SHIFT + nlevels * 10; ptpindex = (gla >> ptpshift) & 0x3FF; pgsize = 1UL << ptpshift; @@ -1772,7 +1752,7 @@ restart: /* Zero out the lower 5 bits and the upper 32 bits */ ptpphys &= 0xffffffe0UL; - ptpbase = ptp_hold(vm, ptpphys, sizeof(*ptpbase) * 4, &cookie); + ptpbase = vm_gpa2hva(vm, ptpphys, (sizeof(*ptpbase) * 4)); if (ptpbase == NULL) goto error; @@ -1795,11 +1775,11 @@ restart: /* Zero out the lower 12 bits and the upper 12 bits */ ptpphys >>= 12; ptpphys <<= 24; ptpphys >>= 12; - ptpbase = ptp_hold(vm, ptpphys, PAGE_SIZE, &cookie); + ptpbase = vm_gpa2hva(vm, ptpphys, XHYVE_PAGE_SIZE); if (ptpbase == NULL) goto error; - ptpshift = PAGE_SHIFT + nlevels * 9; + ptpshift = XHYVE_PAGE_SHIFT + nlevels * 9; ptpindex = (gla >> ptpshift) & 0x1FF; pgsize = 1UL << ptpshift; @@ -1815,7 +1795,7 @@ restart: /* Set the accessed bit in the page table entry */ if ((pte & PG_A) == 0) { - if (atomic_cmpset_64(&ptpbase[ptpindex], + if (atomic_cmpset_64(((volatile u_long *) &ptpbase[ptpindex]), pte, pte | PG_A) == 0) { goto restart; } @@ -1835,15 +1815,17 @@ restart: /* Set the dirty bit in the page table entry if necessary */ if (writable && (pte & PG_M) == 0) { - if (atomic_cmpset_64(&ptpbase[ptpindex], pte, pte | PG_M) == 0) + if (atomic_cmpset_64(((volatile u_long *) &ptpbase[ptpindex]), pte, + pte | PG_M) == 0) + { goto restart; + } } /* Zero out the lower 'ptpshift' bits and the upper 12 bits */ pte >>= ptpshift; pte <<= (ptpshift + 12); pte >>= 12; *gpa = pte | (gla & (pgsize - 1)); done: - ptp_release(&cookie); KASSERT(retval == 0 || retval == EFAULT, ("%s: unexpected retval %d", __func__, retval)); return (retval); @@ -1863,17 +1845,17 @@ vmm_fetch_instruction(struct vm *vm, int vcpuid, struct vm_guest_paging *paging, int error, prot; if (inst_length > VIE_INST_SIZE) - panic("vmm_fetch_instruction: invalid length %d", inst_length); + xhyve_abort("vmm_fetch_instruction: invalid length %d\n", inst_length); - prot = PROT_READ | PROT_EXEC; - error = vm_copy_setup(vm, vcpuid, paging, rip, inst_length, prot, + prot = XHYVE_PROT_READ | XHYVE_PROT_EXECUTE; + error = vm_copy_setup(vm, vcpuid, paging, rip, ((size_t) inst_length), prot, copyinfo, nitems(copyinfo), faultptr); if (error || *faultptr) return (error); - vm_copyin(vm, vcpuid, copyinfo, vie->inst, inst_length); + vm_copyin(vm, vcpuid, copyinfo, vie->inst, ((size_t) inst_length)); vm_copy_teardown(vm, vcpuid, copyinfo, nitems(copyinfo)); - vie->num_valid = inst_length; + vie->num_valid = (uint8_t) inst_length; return (0); } @@ -2171,7 +2153,7 @@ decode_sib(struct vie *vie) /* 'scale' makes sense only in the context of an index register */ if (vie->index_register < VM_REG_LAST) - vie->scale = 1 << vie->ss; + vie->scale = (uint8_t) (1 << vie->ss); vie_advance(vie); @@ -2194,13 +2176,13 @@ decode_displacement(struct vie *vie) return (0); if (n != 1 && n != 4) - panic("decode_displacement: invalid disp_bytes %d", n); + xhyve_abort("decode_displacement: invalid disp_bytes %d\n", n); for (i = 0; i < n; i++) { if (vie_peek(vie, &x)) return (-1); - u.buf[i] = x; + u.buf[i] = (char) x; vie_advance(vie); } @@ -2251,7 +2233,7 @@ decode_immediate(struct vie *vie) if (vie_peek(vie, &x)) return (-1); - u.buf[i] = x; + u.buf[i] = (char) x; vie_advance(vie); } @@ -2291,10 +2273,10 @@ decode_moffset(struct vie *vie) if (vie_peek(vie, &x)) return (-1); - u.buf[i] = x; + u.buf[i] = (char) x; vie_advance(vie); } - vie->displacement = u.u64; + vie->displacement = (int64_t) u.u64; return (0); } @@ -2353,12 +2335,12 @@ verify_gla(struct vm *vm, int cpuid, uint64_t gla, struct vie *vie) } /* XXX assuming that the base address of the segment is 0 */ - gla2 = base + vie->scale * idx + vie->displacement; + gla2 = base + vie->scale * idx + ((uint64_t) vie->displacement); gla2 &= size2mask[vie->addrsize]; if (gla != gla2) { printf("verify_gla mismatch: " - "base(0x%0lx), scale(%d), index(0x%0lx), " - "disp(0x%0lx), gla(0x%0lx), gla2(0x%0lx)\n", + "base(0x%0llx), scale(%d), index(0x%0llx), " + "disp(0x%0llx), gla(0x%0llx), gla2(0x%0llx)\n", base, vie->scale, idx, vie->displacement, gla, gla2); return (-1); } @@ -2404,4 +2386,3 @@ vmm_decode_instruction(struct vm *vm, int cpuid, uint64_t gla, return (0); } -#endif /* _KERNEL */ diff --git a/vmm/vmm_ioport.c b/src/vmm/vmm_ioport.c similarity index 84% rename from vmm/vmm_ioport.c rename to src/vmm/vmm_ioport.c index 63044e8..b935241 100644 --- a/vmm/vmm_ioport.c +++ b/src/vmm/vmm_ioport.c @@ -1,5 +1,6 @@ /*- * Copyright (c) 2014 Tycho Nightingale + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -24,25 +25,22 @@ * SUCH DAMAGE. */ -#include -__FBSDID("$FreeBSD$"); - -#include -#include - -#include -#include - -#include "vatpic.h" -#include "vatpit.h" -#include "vpmtmr.h" -#include "vrtc.h" -#include "vmm_ioport.h" -#include "vmm_ktr.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #define MAX_IOPORTS 1280 -ioport_handler_func_t ioport_handler[MAX_IOPORTS] = { +static const ioport_handler_func_t ioport_handler[MAX_IOPORTS] = { [TIMER_MODE] = vatpit_handler, [TIMER_CNTR0] = vatpit_handler, [TIMER_CNTR1] = vatpit_handler, @@ -59,7 +57,7 @@ ioport_handler_func_t ioport_handler[MAX_IOPORTS] = { [IO_RTC + 1] = vrtc_data_handler, }; -#ifdef KTR +#ifdef XHYVE_CONFIG_TRACE static const char * inout_instruction(struct vm_exit *vmexit) { @@ -90,12 +88,12 @@ inout_instruction(struct vm_exit *vmexit) if (vmexit->u.inout.string) index += 6; - KASSERT(index < nitems(iodesc), ("%s: invalid index %d", + KASSERT(((unsigned) index) < nitems(iodesc), ("%s: invalid index %d", __func__, index)); return (iodesc[index]); } -#endif /* KTR */ +#endif /* XHYVE_CONFIG_TRACE */ static int emulate_inout_port(struct vm *vm, int vcpuid, struct vm_exit *vmexit, @@ -114,7 +112,7 @@ emulate_inout_port(struct vm *vm, int vcpuid, struct vm_exit *vmexit, return (0); } - mask = vie_size2mask(vmexit->u.inout.bytes); + mask = (uint32_t) vie_size2mask(vmexit->u.inout.bytes); if (!vmexit->u.inout.in) { val = vmexit->u.inout.eax & mask; @@ -146,7 +144,7 @@ emulate_inout_port(struct vm *vm, int vcpuid, struct vm_exit *vmexit, } static int -emulate_inout_str(struct vm *vm, int vcpuid, struct vm_exit *vmexit, bool *retu) +emulate_inout_str(bool *retu) { *retu = true; return (0); /* Return to userspace to finish emulation */ @@ -162,15 +160,17 @@ vm_handle_inout(struct vm *vm, int vcpuid, struct vm_exit *vmexit, bool *retu) ("vm_handle_inout: invalid operand size %d", bytes)); if (vmexit->u.inout.string) - error = emulate_inout_str(vm, vcpuid, vmexit, retu); + error = emulate_inout_str(retu); else error = emulate_inout_port(vm, vcpuid, vmexit, retu); +#ifdef XHYVE_CONFIG_TRACE VCPU_CTR4(vm, vcpuid, "%s%s 0x%04x: %s", vmexit->u.inout.rep ? "rep " : "", inout_instruction(vmexit), vmexit->u.inout.port, error ? "error" : (*retu ? "userspace" : "handled")); +#endif return (error); } diff --git a/vmm/vmm_lapic.c b/src/vmm/vmm_lapic.c similarity index 88% rename from vmm/vmm_lapic.c rename to src/vmm/vmm_lapic.c index 6bccd32..7f584db 100644 --- a/vmm/vmm_lapic.c +++ b/src/vmm/vmm_lapic.c @@ -1,5 +1,6 @@ /*- * Copyright (c) 2011 NetApp, Inc. + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,20 +27,15 @@ * $FreeBSD$ */ -#include -__FBSDID("$FreeBSD$"); - -#include -#include -#include - -#include -#include - -#include -#include "vmm_ktr.h" -#include "vmm_lapic.h" -#include "vlapic.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include /* * Some MSI message definitions @@ -83,11 +79,11 @@ lapic_set_local_intr(struct vm *vm, int cpu, int vector) if (cpu == -1) dmask = vm_active_cpus(vm); else - CPU_SETOF(cpu, &dmask); + CPU_SETOF(((unsigned) cpu), &dmask); error = 0; while ((cpu = CPU_FFS(&dmask)) != 0) { cpu--; - CPU_CLR(cpu, &dmask); + CPU_CLR(((unsigned) cpu), &dmask); vlapic = vm_lapic(vm, cpu); error = vlapic_trigger_lvt(vlapic, vector); if (error) @@ -104,10 +100,10 @@ lapic_intr_msi(struct vm *vm, uint64_t addr, uint64_t msg) uint32_t dest; bool phys; - VM_CTR2(vm, "lapic MSI addr: %#lx msg: %#lx", addr, msg); + VM_CTR2(vm, "lapic MSI addr: %#llx msg: %#llx", addr, msg); if ((addr & MSI_X86_ADDR_MASK) != MSI_X86_ADDR_BASE) { - VM_CTR1(vm, "lapic MSI invalid addr %#lx", addr); + VM_CTR1(vm, "lapic MSI invalid addr %#llx", addr); return (-1); } @@ -135,7 +131,7 @@ lapic_intr_msi(struct vm *vm, uint64_t addr, uint64_t msg) return (0); } -static boolean_t +static bool x2apic_msr(u_int msr) { if (msr >= 0x800 && msr <= 0xBFF) @@ -151,7 +147,7 @@ x2apic_msr_to_regoff(u_int msr) return ((msr - 0x800) << 4); } -boolean_t +bool lapic_msr(u_int msr) { @@ -207,7 +203,7 @@ lapic_mmio_write(void *vm, int cpu, uint64_t gpa, uint64_t wval, int size, int error; uint64_t off; struct vlapic *vlapic; - +//printf("lapic_mmio_write 0x%016llx 0x%016llx\n", gpa, wval); off = gpa - DEFAULT_APIC_BASE; /* @@ -223,8 +219,8 @@ lapic_mmio_write(void *vm, int cpu, uint64_t gpa, uint64_t wval, int size, } int -lapic_mmio_read(void *vm, int cpu, uint64_t gpa, uint64_t *rval, int size, - void *arg) +lapic_mmio_read(void *vm, int cpu, uint64_t gpa, uint64_t *rval, + UNUSED int size, void *arg) { int error; uint64_t off; @@ -237,11 +233,12 @@ lapic_mmio_read(void *vm, int cpu, uint64_t gpa, uint64_t *rval, int size, * 16-byte boundary. They are also suggested to be 4 bytes * wide, alas not all OSes follow suggestions. */ - off &= ~3; + off &= ~((uint64_t) 3); if (off & 0xf) return (EINVAL); vlapic = vm_lapic(vm, cpu); error = vlapic_read(vlapic, 1, off, rval, arg); + //printf("lapic_mmio_read 0x%016llx (0x%016llx)\n", gpa, *rval); return (error); } diff --git a/bhyve/bhyverun.h b/src/vmm/vmm_mem.c similarity index 63% rename from bhyve/bhyverun.h rename to src/vmm/vmm_mem.c index c51bf48..ccd80a6 100644 --- a/bhyve/bhyverun.h +++ b/src/vmm/vmm_mem.c @@ -1,5 +1,6 @@ /*- * Copyright (c) 2011 NetApp, Inc. + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,30 +27,43 @@ * $FreeBSD$ */ -#ifndef _FBSDRUN_H_ -#define _FBSDRUN_H_ +#include +#include +#include +#include +#include +#include -#ifndef CTASSERT /* Allow lint to override */ -#define CTASSERT(x) _CTASSERT(x, __LINE__) -#define _CTASSERT(x, y) __CTASSERT(x, y) -#define __CTASSERT(x, y) typedef char __assert ## y[(x) ? 1 : -1] -#endif +int +vmm_mem_init(void) +{ + return (0); +} -#define VMEXIT_CONTINUE (0) -#define VMEXIT_ABORT (-1) -struct vmctx; -extern int guest_ncpus; -extern char *guest_uuid_str; -extern char *vmname; +void * +vmm_mem_alloc(uint64_t gpa, size_t size) +{ + void *object; -void *paddr_guest2host(struct vmctx *ctx, uintptr_t addr, size_t len); + object = valloc(size); -void fbsdrun_set_capabilities(struct vmctx *ctx, int cpu); -void fbsdrun_addcpu(struct vmctx *ctx, int fromcpu, int newcpu, uint64_t rip); -int fbsdrun_muxed(void); -int fbsdrun_vmexit_on_hlt(void); -int fbsdrun_vmexit_on_pause(void); -int fbsdrun_disable_x2apic(void); -int fbsdrun_virtio_msix(void); -#endif + if (!object) { + xhyve_abort("vmm_mem_alloc failed\n"); + } + + if (hv_vm_map(object, gpa, size, + HV_MEMORY_READ | HV_MEMORY_WRITE | HV_MEMORY_EXEC)) + { + xhyve_abort("hv_vm_map failed\n"); + } + + return object; +} + +void +vmm_mem_free(uint64_t gpa, size_t size, void *object) +{ + hv_vm_unmap(gpa, size); + free(object); +} diff --git a/vmm/vmm_stat.c b/src/vmm/vmm_stat.c similarity index 90% rename from vmm/vmm_stat.c rename to src/vmm/vmm_stat.c index 4ae5fb9..fee25ea 100644 --- a/vmm/vmm_stat.c +++ b/src/vmm/vmm_stat.c @@ -1,5 +1,6 @@ /*- * Copyright (c) 2011 NetApp, Inc. + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,17 +27,11 @@ * $FreeBSD$ */ -#include -__FBSDID("$FreeBSD$"); - -#include -#include -#include -#include - -#include -#include "vmm_util.h" -#include "vmm_stat.h" +#include +#include +#include +#include +#include /* * 'vst_num_elems' is the total number of addressable statistic elements @@ -49,8 +44,6 @@ __FBSDID("$FreeBSD$"); static int vst_num_elems, vst_num_types; static struct vmm_stat_type *vsttab[MAX_VMM_STAT_ELEMS]; -static MALLOC_DEFINE(M_VMM_STAT, "vmm stat", "vmm stat"); - #define vst_size ((size_t)vst_num_elems * sizeof(uint64_t)) void @@ -62,12 +55,6 @@ vmm_stat_register(void *arg) if (vst->desc == NULL) return; - if (vst->scope == VMM_STAT_SCOPE_INTEL && !vmm_is_intel()) - return; - - if (vst->scope == VMM_STAT_SCOPE_AMD && !vmm_is_amd()) - return; - if (vst_num_elems + vst->nelems >= MAX_VMM_STAT_ELEMS) { printf("Cannot accomodate vmm stat type \"%s\"!\n", vst->desc); return; @@ -108,7 +95,7 @@ void * vmm_stat_alloc(void) { - return (malloc(vst_size, M_VMM_STAT, M_WAITOK)); + return (malloc(vst_size)); } void @@ -121,7 +108,7 @@ vmm_stat_init(void *vp) void vmm_stat_free(void *vp) { - free(vp, M_VMM_STAT); + free(vp); } int diff --git a/vmm/vmm_util.c b/src/vmm/vmm_util.c similarity index 72% rename from vmm/vmm_util.c rename to src/vmm/vmm_util.c index f245f92..73aa849 100644 --- a/vmm/vmm_util.c +++ b/src/vmm/vmm_util.c @@ -1,5 +1,6 @@ /*- * Copyright (c) 2011 NetApp, Inc. + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,55 +27,42 @@ * $FreeBSD$ */ -#include -__FBSDID("$FreeBSD$"); +#include +#include +#include -#include -#include +struct trapframe { + register_t tf_rdi; + register_t tf_rsi; + register_t tf_rdx; + register_t tf_rcx; + register_t tf_r8; + register_t tf_r9; + register_t tf_rax; + register_t tf_rbx; + register_t tf_rbp; + register_t tf_r10; + register_t tf_r11; + register_t tf_r12; + register_t tf_r13; + register_t tf_r14; + register_t tf_r15; + uint32_t tf_trapno; + uint16_t tf_fs; + uint16_t tf_gs; + register_t tf_addr; + uint32_t tf_flags; + uint16_t tf_es; + uint16_t tf_ds; + /* below portion defined in hardware */ + register_t tf_err; + register_t tf_rip; + register_t tf_cs; + register_t tf_rflags; + register_t tf_rsp; + register_t tf_ss; +}; -#include - -#include "vmm_util.h" - -boolean_t -vmm_is_intel(void) -{ - - if (strcmp(cpu_vendor, "GenuineIntel") == 0) - return (TRUE); - else - return (FALSE); -} - -boolean_t -vmm_is_amd(void) -{ - if (strcmp(cpu_vendor, "AuthenticAMD") == 0) - return (TRUE); - else - return (FALSE); -} - -boolean_t -vmm_supports_1G_pages(void) -{ - unsigned int regs[4]; - - /* - * CPUID.80000001:EDX[bit 26] = 1 indicates support for 1GB pages - * - * Both Intel and AMD support this bit. - */ - if (cpu_exthigh >= 0x80000001) { - do_cpuid(0x80000001, regs); - if (regs[3] & (1 << 26)) - return (TRUE); - } - return (FALSE); -} - -#include -#include #define DUMP_REG(x) printf(#x "\t\t0x%016lx\n", (long)(tf->tf_ ## x)) #define DUMP_SEG(x) printf(#x "\t\t0x%04x\n", (unsigned)(tf->tf_ ## x)) void diff --git a/vmm/x86.c b/src/vmm/x86.c similarity index 72% rename from vmm/x86.c rename to src/vmm/x86.c index 525e1d9..315db1e 100644 --- a/vmm/x86.c +++ b/src/vmm/x86.c @@ -1,5 +1,6 @@ /*- * Copyright (c) 2011 NetApp, Inc. + * Copyright (c) 2015 xhyve developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,52 +27,28 @@ * $FreeBSD$ */ -#include -__FBSDID("$FreeBSD$"); - -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#include - -#include "vmm_host.h" -#include "vmm_ktr.h" -#include "vmm_util.h" -#include "x86.h" - -SYSCTL_DECL(_hw_vmm); -static SYSCTL_NODE(_hw_vmm, OID_AUTO, topology, CTLFLAG_RD, 0, NULL); +#include +#include +#include +#include +#include +#include +#include +#include +#include #define CPUID_VM_HIGH 0x40000000 static const char bhyve_id[12] = "bhyve bhyve "; -static uint64_t bhyve_xcpuids; -SYSCTL_ULONG(_hw_vmm, OID_AUTO, bhyve_xcpuids, CTLFLAG_RW, &bhyve_xcpuids, 0, - "Number of times an unknown cpuid leaf was accessed"); +static volatile u_long bhyve_xcpuids; /* * The default CPU topology is a single thread per package. */ static u_int threads_per_core = 1; -SYSCTL_UINT(_hw_vmm_topology, OID_AUTO, threads_per_core, CTLFLAG_RDTUN, - &threads_per_core, 0, NULL); - static u_int cores_per_package = 1; -SYSCTL_UINT(_hw_vmm_topology, OID_AUTO, cores_per_package, CTLFLAG_RDTUN, - &cores_per_package, 0, NULL); - static int cpuid_leaf_b = 1; -SYSCTL_INT(_hw_vmm_topology, OID_AUTO, cpuid_leaf_b, CTLFLAG_RDTUN, - &cpuid_leaf_b, 0, NULL); /* * Round up to the next power of two, if necessary, and then take log2. @@ -81,7 +58,7 @@ static __inline int log2(u_int x) { - return (fls(x << (1 - powerof2(x))) - 1); + return (fls((int) (x << (1 - powerof2(x)))) - 1); } int @@ -90,12 +67,26 @@ x86_emulate_cpuid(struct vm *vm, int vcpu_id, { const struct xsave_limits *limits; uint64_t cr4; - int error, enable_invpcid, level, width, x2apic_id; + int error, level, width, x2apic_id; unsigned int func, regs[4], logical_cpus; + u_int cpu_feature, amd_feature, amd_feature2, cpu_high, cpu_exthigh; + u_int tsc_is_invariant, smp_tsc; enum x2apic_state x2apic_state; VCPU_CTR2(vm, vcpu_id, "cpuid %#x,%#x", *eax, *ecx); + tsc_is_invariant = 1; + smp_tsc = 1; + do_cpuid(0, regs); + cpu_high = regs[0]; + do_cpuid(1, regs); + cpu_feature = regs[3]; + do_cpuid(0x80000000, regs); + cpu_exthigh = regs[0]; + do_cpuid(0x80000001, regs); + amd_feature = regs[3] & ~(cpu_feature & 0x0183f3ff); + amd_feature2 = regs[2]; + /* * Requests for invalid CPUID levels should map to the highest * available level instead. @@ -133,54 +124,39 @@ x86_emulate_cpuid(struct vm *vm, int vcpu_id, break; case CPUID_8000_0008: cpuid_count(*eax, *ecx, regs); - if (vmm_is_amd()) { - /* - * XXX this might appear silly because AMD - * cpus don't have threads. - * - * However this matches the logical cpus as - * advertised by leaf 0x1 and will work even - * if the 'threads_per_core' tunable is set - * incorrectly on an AMD host. - */ - logical_cpus = threads_per_core * - cores_per_package; - regs[2] = logical_cpus - 1; - } break; - case CPUID_8000_0001: cpuid_count(*eax, *ecx, regs); /* * Hide SVM and Topology Extension features from guest. */ - regs[2] &= ~(AMDID2_SVM | AMDID2_TOPOLOGY); + regs[2] &= ~((unsigned) (AMDID2_SVM | AMDID2_TOPOLOGY)); /* * Don't advertise extended performance counter MSRs * to the guest. */ - regs[2] &= ~AMDID2_PCXC; - regs[2] &= ~AMDID2_PNXC; - regs[2] &= ~AMDID2_PTSCEL2I; + regs[2] &= ~((unsigned) AMDID2_PCXC); + regs[2] &= ~((unsigned) AMDID2_PNXC); + regs[2] &= ~((unsigned) AMDID2_PTSCEL2I); /* * Don't advertise Instruction Based Sampling feature. */ - regs[2] &= ~AMDID2_IBS; + regs[2] &= ~((unsigned) AMDID2_IBS); /* NodeID MSR not available */ - regs[2] &= ~AMDID2_NODE_ID; + regs[2] &= ~((unsigned) AMDID2_NODE_ID); /* Don't advertise the OS visible workaround feature */ - regs[2] &= ~AMDID2_OSVW; + regs[2] &= ~((unsigned) AMDID2_OSVW); /* * Hide rdtscp/ia32_tsc_aux until we know how * to deal with them. */ - regs[3] &= ~AMDID_RDTSCP; + regs[3] &= ~((unsigned) AMDID_RDTSCP); break; case CPUID_8000_0007: @@ -219,78 +195,77 @@ x86_emulate_cpuid(struct vm *vm, int vcpu_id, error = vm_get_x2apic_state(vm, vcpu_id, &x2apic_state); if (error) { - panic("x86_emulate_cpuid: error %d " - "fetching x2apic state", error); + xhyve_abort("x86_emulate_cpuid: error %d " + "fetching x2apic state\n", error); } /* * Override the APIC ID only in ebx */ - regs[1] &= ~(CPUID_LOCAL_APIC_ID); - regs[1] |= (vcpu_id << CPUID_0000_0001_APICID_SHIFT); + regs[1] &= ~((unsigned) CPUID_LOCAL_APIC_ID); + regs[1] |= (((unsigned) vcpu_id) << CPUID_0000_0001_APICID_SHIFT); /* * Don't expose VMX, SpeedStep, TME or SMX capability. * Advertise x2APIC capability and Hypervisor guest. */ - regs[2] &= ~(CPUID2_VMX | CPUID2_EST | CPUID2_TM2); - regs[2] &= ~(CPUID2_SMX); + regs[2] &= ~((unsigned) (CPUID2_VMX | CPUID2_EST | CPUID2_TM2)); + regs[2] &= ~((unsigned) CPUID2_SMX); - regs[2] |= CPUID2_HV; + regs[2] |= (unsigned) CPUID2_HV; - if (x2apic_state != X2APIC_DISABLED) - regs[2] |= CPUID2_X2APIC; + if (x2apic_state != ((unsigned) X2APIC_DISABLED)) + regs[2] |= ((unsigned) CPUID2_X2APIC); else - regs[2] &= ~CPUID2_X2APIC; + regs[2] &= ~((unsigned) CPUID2_X2APIC); /* * Only advertise CPUID2_XSAVE in the guest if * the host is using XSAVE. */ - if (!(regs[2] & CPUID2_OSXSAVE)) - regs[2] &= ~CPUID2_XSAVE; + if (!(regs[2] & ((unsigned) CPUID2_OSXSAVE))) + regs[2] &= ~((unsigned) CPUID2_XSAVE); /* * If CPUID2_XSAVE is being advertised and the * guest has set CR4_XSAVE, set * CPUID2_OSXSAVE. */ - regs[2] &= ~CPUID2_OSXSAVE; - if (regs[2] & CPUID2_XSAVE) { - error = vm_get_register(vm, vcpu_id, - VM_REG_GUEST_CR4, &cr4); + regs[2] &= ~((unsigned) CPUID2_OSXSAVE); + if (regs[2] & ((unsigned) CPUID2_XSAVE)) { + error = vm_get_register(vm, vcpu_id, VM_REG_GUEST_CR4, &cr4); if (error) - panic("x86_emulate_cpuid: error %d " - "fetching %%cr4", error); + xhyve_abort("x86_emulate_cpuid: error %d " + "fetching %%cr4\n", error); if (cr4 & CR4_XSAVE) - regs[2] |= CPUID2_OSXSAVE; + regs[2] |= ((unsigned) CPUID2_OSXSAVE); } /* * Hide monitor/mwait until we know how to deal with * these instructions. */ - regs[2] &= ~CPUID2_MON; + regs[2] &= ~((unsigned) CPUID2_MON); /* * Hide the performance and debug features. */ - regs[2] &= ~CPUID2_PDCM; + regs[2] &= ~((unsigned) CPUID2_PDCM); /* * No TSC deadline support in the APIC yet */ - regs[2] &= ~CPUID2_TSCDLT; + regs[2] &= ~((unsigned) CPUID2_TSCDLT); /* * Hide thermal monitoring */ - regs[3] &= ~(CPUID_ACPI | CPUID_TM); + regs[3] &= ~((unsigned) (CPUID_ACPI | CPUID_TM)); /* * Hide the debug store capability. */ - regs[3] &= ~CPUID_DS; + regs[3] &= ~((unsigned) CPUID_DS); /* * Advertise the Machine Check and MTRR capability. @@ -298,12 +273,12 @@ x86_emulate_cpuid(struct vm *vm, int vcpu_id, * Some guest OSes (e.g. Windows) will not boot if * these features are absent. */ - regs[3] |= (CPUID_MCA | CPUID_MCE | CPUID_MTRR); + regs[3] |= (unsigned) (CPUID_MCA | CPUID_MCE | CPUID_MTRR); logical_cpus = threads_per_core * cores_per_package; - regs[1] &= ~CPUID_HTT_CORES; + regs[1] &= ~((unsigned) CPUID_HTT_CORES); regs[1] |= (logical_cpus & 0xff) << 16; - regs[3] |= CPUID_HTT; + regs[3] |= (unsigned) CPUID_HTT; break; case CPUID_0000_0004: @@ -353,12 +328,8 @@ x86_emulate_cpuid(struct vm *vm, int vcpu_id, CPUID_STDEXT_AVX512CD); regs[2] = 0; regs[3] = 0; - - /* Advertise INVPCID if it is enabled. */ - error = vm_get_capability(vm, vcpu_id, - VM_CAP_ENABLE_INVPCID, &enable_invpcid); - if (error == 0 && enable_invpcid) - regs[1] |= CPUID_STDEXT_INVPCID; + /* FIXME */ + // regs[1] |= CPUID_STDEXT_INVPCID; } break; @@ -384,6 +355,11 @@ x86_emulate_cpuid(struct vm *vm, int vcpu_id, /* * Processor topology enumeration */ + logical_cpus = 0; + width = 0; + level = 0; + x2apic_id = 0; + if (*ecx == 0) { logical_cpus = threads_per_core; width = log2(logical_cpus); @@ -408,8 +384,8 @@ x86_emulate_cpuid(struct vm *vm, int vcpu_id, regs[0] = width & 0x1f; regs[1] = logical_cpus & 0xffff; - regs[2] = (level << 8) | (*ecx & 0xff); - regs[3] = x2apic_id; + regs[2] = (((unsigned) level) << 8) | (*ecx & 0xff); + regs[3] = (unsigned) x2apic_id; break; case CPUID_0000_000D: @@ -488,34 +464,3 @@ x86_emulate_cpuid(struct vm *vm, int vcpu_id, return (1); } - -bool -vm_cpuid_capability(struct vm *vm, int vcpuid, enum vm_cpuid_capability cap) -{ - bool rv; - - KASSERT(cap > 0 && cap < VCC_LAST, ("%s: invalid vm_cpu_capability %d", - __func__, cap)); - - /* - * Simply passthrough the capabilities of the host cpu for now. - */ - rv = false; - switch (cap) { - case VCC_NO_EXECUTE: - if (amd_feature & AMDID_NX) - rv = true; - break; - case VCC_FFXSR: - if (amd_feature & AMDID_FFXSR) - rv = true; - break; - case VCC_TCE: - if (amd_feature2 & AMDID2_TCE) - rv = true; - break; - default: - panic("%s: unknown vm_cpu_capability %d", __func__, cap); - } - return (rv); -} diff --git a/src/xhyve.c b/src/xhyve.c new file mode 100644 index 0000000..0348219 --- /dev/null +++ b/src/xhyve.c @@ -0,0 +1,923 @@ +/*- + * Copyright (c) 2011 NetApp, Inc. + * Copyright (c) 2015 xhyve developers + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY NETAPP, INC ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL NETAPP, INC OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#define GUEST_NIO_PORT 0x488 /* guest upcalls via i/o port */ + +#define MB (1024UL * 1024) + +typedef int (*vmexit_handler_t)(struct vm_exit *, int *vcpu); +extern int vmexit_task_switch(struct vm_exit *, int *vcpu); + +char *vmname = "vm"; + +int guest_ncpus; +char *guest_uuid_str; + +static int guest_vmexit_on_hlt, guest_vmexit_on_pause; +static int virtio_msix = 1; +static int x2apic_mode = 0; /* default is xAPIC */ + +static int strictio; +static int strictmsr = 1; + +static int acpi; + +static char *progname; +static const int BSP = 0; + +static cpuset_t cpumask; + +static void vcpu_loop(int vcpu, uint64_t rip); + +static struct vm_exit vmexit[VM_MAXCPU]; + +static struct bhyvestats { + uint64_t vmexit_bogus; + uint64_t vmexit_bogus_switch; + uint64_t vmexit_hlt; + uint64_t vmexit_pause; + uint64_t vmexit_mtrap; + uint64_t vmexit_inst_emul; + uint64_t cpu_switch_rotate; + uint64_t cpu_switch_direct; +} stats; + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" +static struct mt_vmm_info { + pthread_t mt_thr; + int mt_vcpu; +} mt_vmm_info[VM_MAXCPU]; +#pragma clang diagnostic pop + +__attribute__ ((noreturn)) static void +usage(int code) +{ + + fprintf(stderr, + "Usage: %s [-behuwxACHPWY] [-c vcpus] [-g ] [-l ]\n" + " %*s [-m mem] [-p vcpu:hostcpu] [-s ] [-U uuid] -f \n" + " -A: create ACPI tables\n" + " -c: # cpus (default 1)\n" + " -C: include guest memory in core file\n" + " -e: exit on unhandled I/O access\n" + " -f: firmware\n" + " -g: gdb port\n" + " -h: help\n" + " -H: vmexit from the guest on hlt\n" + " -l: LPC device configuration\n" + " -m: memory size in MB\n" + " -p: pin 'vcpu' to 'hostcpu'\n" + " -P: vmexit from the guest on pause\n" + " -s: PCI slot config\n" + " -u: RTC keeps UTC time\n" + " -U: uuid\n" + " -w: ignore unimplemented MSRs\n" + " -W: force virtio to use single-vector MSI\n" + " -x: local apic is in x2APIC mode\n" + " -Y: disable MPtable generation\n", + progname, (int)strlen(progname), ""); + + exit(code); +} + +void +xh_vm_inject_fault(int vcpu, int vector, int errcode_valid, + uint32_t errcode) +{ + int error, restart_instruction; + + restart_instruction = 1; + + error = xh_vm_inject_exception(vcpu, vector, errcode_valid, errcode, + restart_instruction); + assert(error == 0); +} + +void * +paddr_guest2host(uintptr_t gaddr, size_t len) +{ + return (xh_vm_map_gpa(gaddr, len)); +} + +int +fbsdrun_vmexit_on_pause(void) +{ + return (guest_vmexit_on_pause); +} + +int +fbsdrun_vmexit_on_hlt(void) +{ + return (guest_vmexit_on_hlt); +} + +int +fbsdrun_virtio_msix(void) +{ + return (virtio_msix); +} + +static void +spinup_ap_realmode(int newcpu, uint64_t *rip) +{ + int vector, error; + uint16_t cs; + uint64_t desc_base; + uint32_t desc_limit, desc_access; + + vector = (int) (*rip >> XHYVE_PAGE_SHIFT); + *rip = 0; + + /* + * Update the %cs and %rip of the guest so that it starts + * executing real mode code at at 'vector << 12'. + */ + error = xh_vm_set_register(newcpu, VM_REG_GUEST_RIP, *rip); + assert(error == 0); + + error = xh_vm_get_desc(newcpu, VM_REG_GUEST_CS, &desc_base, &desc_limit, + &desc_access); + assert(error == 0); + + desc_base = (uint64_t) (vector << XHYVE_PAGE_SHIFT); + error = xh_vm_set_desc(newcpu, VM_REG_GUEST_CS, desc_base, desc_limit, + desc_access); + assert(error == 0); + + cs = (uint16_t) ((vector << XHYVE_PAGE_SHIFT) >> 4); + error = xh_vm_set_register(newcpu, VM_REG_GUEST_CS, cs); + assert(error == 0); +} + +static void * +vcpu_thread(void *param) +{ + struct mt_vmm_info *mtp; + uint64_t rip_entry; + int vcpu; + int error; + + mtp = param; + vcpu = mtp->mt_vcpu; + rip_entry = 0xfff0; + + error = xh_vcpu_create(vcpu); + assert(error == 0); + + vcpu_set_capabilities(vcpu); + + error = xh_vcpu_reset(vcpu); + assert(error == 0); + + if (vcpu == BSP) { + rip_entry = kexec(); + } else { + rip_entry = vmexit[vcpu].rip; + spinup_ap_realmode(vcpu, &rip_entry); + } + + vmexit[vcpu].rip = rip_entry; + vmexit[vcpu].inst_length = 0; + + vcpu_loop(vcpu, vmexit[vcpu].rip); + + /* not reached */ + exit(1); + return (NULL); +} + +void +vcpu_add(int fromcpu, int newcpu, uint64_t rip) +{ + int error; + + assert(fromcpu == BSP); + + /* + * The 'newcpu' must be activated in the context of 'fromcpu'. If + * vm_activate_cpu() is delayed until newcpu's pthread starts running + * then vmm.ko is out-of-sync with bhyve and this can create a race + * with vm_suspend(). + */ + error = xh_vm_activate_cpu(newcpu); + assert(error == 0); + + CPU_SET_ATOMIC(((unsigned) newcpu), &cpumask); + + mt_vmm_info[newcpu].mt_vcpu = newcpu; + + vmexit[newcpu].rip = rip; + + error = pthread_create(&mt_vmm_info[newcpu].mt_thr, NULL, vcpu_thread, + &mt_vmm_info[newcpu]); + + assert(error == 0); +} + +static int +vcpu_delete(int vcpu) +{ + if (!CPU_ISSET(((unsigned) vcpu), &cpumask)) { + fprintf(stderr, "Attempting to delete unknown cpu %d\n", vcpu); + exit(1); + } + + CPU_CLR_ATOMIC(((unsigned) vcpu), &cpumask); + return (CPU_EMPTY(&cpumask)); +} + +static int +vmexit_handle_notify(UNUSED struct vm_exit *vme, UNUSED int *pvcpu, + UNUSED uint32_t eax) +{ + return (VMEXIT_CONTINUE); +} + +static int +vmexit_inout(struct vm_exit *vme, int *pvcpu) +{ + int error; + int bytes, port, in, out, string; + int vcpu; + + vcpu = *pvcpu; + + port = vme->u.inout.port; + bytes = vme->u.inout.bytes; + string = vme->u.inout.string; + in = vme->u.inout.in; + out = !in; + + /* Extra-special case of host notifications */ + if (out && port == GUEST_NIO_PORT) { + error = vmexit_handle_notify(vme, pvcpu, vme->u.inout.eax); + return (error); + } + + error = emulate_inout(vcpu, vme, strictio); + if (error) { + fprintf(stderr, "Unhandled %s%c 0x%04x at 0x%llx\n", + in ? "in" : "out", + bytes == 1 ? 'b' : (bytes == 2 ? 'w' : 'l'), + port, vmexit->rip); + return (VMEXIT_ABORT); + } else { + return (VMEXIT_CONTINUE); + } +} + +static int +vmexit_rdmsr(struct vm_exit *vme, int *pvcpu) +{ + uint64_t val; + uint32_t eax, edx; + int error; + + val = 0; + error = emulate_rdmsr(*pvcpu, vme->u.msr.code, &val); + if (error != 0) { + fprintf(stderr, "rdmsr to register %#x on vcpu %d\n", + vme->u.msr.code, *pvcpu); + if (strictmsr) { + vm_inject_gp(*pvcpu); + return (VMEXIT_CONTINUE); + } + } + + eax = (uint32_t) val; + error = xh_vm_set_register(*pvcpu, VM_REG_GUEST_RAX, eax); + assert(error == 0); + + edx = val >> 32; + error = xh_vm_set_register(*pvcpu, VM_REG_GUEST_RDX, edx); + assert(error == 0); + + return (VMEXIT_CONTINUE); +} + +static int +vmexit_wrmsr(struct vm_exit *vme, int *pvcpu) +{ + int error; + + error = emulate_wrmsr(*pvcpu, vme->u.msr.code, vme->u.msr.wval); + if (error != 0) { + fprintf(stderr, "wrmsr to register %#x(%#llx) on vcpu %d\n", + vme->u.msr.code, vme->u.msr.wval, *pvcpu); + if (strictmsr) { + vm_inject_gp(*pvcpu); + return (VMEXIT_CONTINUE); + } + } + return (VMEXIT_CONTINUE); +} + +static int +vmexit_spinup_ap(struct vm_exit *vme, int *pvcpu) +{ + assert(vme->u.spinup_ap.vcpu != 0); + assert(vme->u.spinup_ap.vcpu < guest_ncpus); + + vcpu_add(*pvcpu, vme->u.spinup_ap.vcpu, vme->u.spinup_ap.rip); + + return (VMEXIT_CONTINUE); +} + +static int +vmexit_vmx(struct vm_exit *vme, int *pvcpu) +{ + fprintf(stderr, "vm exit[%d]\n", *pvcpu); + fprintf(stderr, "\treason\t\tVMX\n"); + fprintf(stderr, "\trip\t\t0x%016llx\n", vme->rip); + fprintf(stderr, "\tinst_length\t%d\n", vme->inst_length); + fprintf(stderr, "\tstatus\t\t%d\n", vme->u.vmx.status); + fprintf(stderr, "\texit_reason\t%u\n", vme->u.vmx.exit_reason); + fprintf(stderr, "\tqualification\t0x%016llx\n", + vme->u.vmx.exit_qualification); + fprintf(stderr, "\tinst_type\t\t%d\n", vme->u.vmx.inst_type); + fprintf(stderr, "\tinst_error\t\t%d\n", vme->u.vmx.inst_error); + return (VMEXIT_ABORT); +} + +static int +vmexit_bogus(struct vm_exit *vme, UNUSED int *pvcpu) +{ + assert(vme->inst_length == 0); + + stats.vmexit_bogus++; + + return (VMEXIT_CONTINUE); +} + +static int +vmexit_hlt(UNUSED struct vm_exit *vme, UNUSED int *pvcpu) +{ + stats.vmexit_hlt++; + + /* + * Just continue execution with the next instruction. We use + * the HLT VM exit as a way to be friendly with the host + * scheduler. + */ + return (VMEXIT_CONTINUE); +} + +static int +vmexit_pause(UNUSED struct vm_exit *vme, UNUSED int *pvcpu) +{ + stats.vmexit_pause++; + + return (VMEXIT_CONTINUE); +} + +static int +vmexit_mtrap(struct vm_exit *vme, UNUSED int *pvcpu) +{ + assert(vme->inst_length == 0); + + stats.vmexit_mtrap++; + + return (VMEXIT_CONTINUE); +} + +static int +vmexit_inst_emul(struct vm_exit *vme, int *pvcpu) +{ + int err, i; + struct vie *vie; + + stats.vmexit_inst_emul++; + + vie = &vme->u.inst_emul.vie; + err = emulate_mem(*pvcpu, vme->u.inst_emul.gpa, vie, + &vme->u.inst_emul.paging); + + if (err) { + if (err == ESRCH) { + fprintf(stderr, "Unhandled memory access to 0x%llx\n", + vme->u.inst_emul.gpa); + } + + fprintf(stderr, "Failed to emulate instruction ["); + for (i = 0; i < vie->num_valid; i++) { + fprintf(stderr, "0x%02x%s", vie->inst[i], + i != (vie->num_valid - 1) ? " " : ""); + } + fprintf(stderr, "] at 0x%llx\n", vme->rip); + return (VMEXIT_ABORT); + } + + return (VMEXIT_CONTINUE); +} + +static pthread_mutex_t resetcpu_mtx = PTHREAD_MUTEX_INITIALIZER; +static pthread_cond_t resetcpu_cond = PTHREAD_COND_INITIALIZER; + +static int +vmexit_suspend(struct vm_exit *vme, int *pvcpu) +{ + enum vm_suspend_how how; + + how = vme->u.suspended.how; + + vcpu_delete(*pvcpu); + + if (*pvcpu != BSP) { + pthread_mutex_lock(&resetcpu_mtx); + pthread_cond_signal(&resetcpu_cond); + pthread_mutex_unlock(&resetcpu_mtx); + pthread_exit(NULL); + } + + pthread_mutex_lock(&resetcpu_mtx); + while (!CPU_EMPTY(&cpumask)) { + pthread_cond_wait(&resetcpu_cond, &resetcpu_mtx); + } + pthread_mutex_unlock(&resetcpu_mtx); + + switch ((int) (how)) { + case VM_SUSPEND_RESET: + exit(0); + case VM_SUSPEND_POWEROFF: + exit(1); + case VM_SUSPEND_HALT: + exit(2); + case VM_SUSPEND_TRIPLEFAULT: + exit(3); + default: + fprintf(stderr, "vmexit_suspend: invalid reason %d\n", how); + exit(100); + } +} + +static vmexit_handler_t handler[VM_EXITCODE_MAX] = { + [VM_EXITCODE_INOUT] = vmexit_inout, + [VM_EXITCODE_INOUT_STR] = vmexit_inout, + [VM_EXITCODE_VMX] = vmexit_vmx, + [VM_EXITCODE_BOGUS] = vmexit_bogus, + [VM_EXITCODE_RDMSR] = vmexit_rdmsr, + [VM_EXITCODE_WRMSR] = vmexit_wrmsr, + [VM_EXITCODE_MTRAP] = vmexit_mtrap, + [VM_EXITCODE_INST_EMUL] = vmexit_inst_emul, + [VM_EXITCODE_SPINUP_AP] = vmexit_spinup_ap, + [VM_EXITCODE_SUSPENDED] = vmexit_suspend, + [VM_EXITCODE_TASK_SWITCH] = vmexit_task_switch, +}; + +void +vcpu_set_capabilities(int cpu) +{ + int err, tmp; + + if (fbsdrun_vmexit_on_hlt()) { + err = xh_vm_get_capability(cpu, VM_CAP_HALT_EXIT, &tmp); + if (err < 0) { + fprintf(stderr, "VM exit on HLT not supported\n"); + exit(1); + } + xh_vm_set_capability(cpu, VM_CAP_HALT_EXIT, 1); + if (cpu == BSP) + handler[VM_EXITCODE_HLT] = vmexit_hlt; + } + + if (fbsdrun_vmexit_on_pause()) { + /* + * pause exit support required for this mode + */ + err = xh_vm_get_capability(cpu, VM_CAP_PAUSE_EXIT, &tmp); + if (err < 0) { + fprintf(stderr, + "SMP mux requested, no pause support\n"); + exit(1); + } + xh_vm_set_capability(cpu, VM_CAP_PAUSE_EXIT, 1); + if (cpu == BSP) + handler[VM_EXITCODE_PAUSE] = vmexit_pause; + } + + if (x2apic_mode) + err = xh_vm_set_x2apic_state(cpu, X2APIC_ENABLED); + else + err = xh_vm_set_x2apic_state(cpu, X2APIC_DISABLED); + + if (err) { + fprintf(stderr, "Unable to set x2apic state (%d)\n", err); + exit(1); + } +} + +static void +vcpu_loop(int vcpu, uint64_t startrip) +{ + int error, rc, prevcpu; + enum vm_exitcode exitcode; + cpuset_t active_cpus; + + error = xh_vm_active_cpus(&active_cpus); + assert(CPU_ISSET(((unsigned) vcpu), &active_cpus)); + + error = xh_vm_set_register(vcpu, VM_REG_GUEST_RIP, startrip); + assert(error == 0); + + while (1) { + error = xh_vm_run(vcpu, &vmexit[vcpu]); + if (error != 0) + break; + + prevcpu = vcpu; + + exitcode = vmexit[vcpu].exitcode; + if (exitcode >= VM_EXITCODE_MAX || handler[exitcode] == NULL) { + fprintf(stderr, "vcpu_loop: unexpected exitcode 0x%x\n", + exitcode); + exit(1); + } + + rc = (*handler[exitcode])(&vmexit[vcpu], &vcpu); + + switch (rc) { + case VMEXIT_CONTINUE: + break; + case VMEXIT_ABORT: + abort(); + default: + exit(1); + } + } + fprintf(stderr, "vm_run error %d, errno %d\n", error, errno); +} + +static int +num_vcpus_allowed(void) +{ + return (VM_MAXCPU); +} + +static int +expand_number(const char *buf, uint64_t *num) +{ + char *endptr; + uintmax_t umaxval; + uint64_t number; + unsigned shift; + int serrno; + + serrno = errno; + errno = 0; + umaxval = strtoumax(buf, &endptr, 0); + if (umaxval > UINT64_MAX) + errno = ERANGE; + if (errno != 0) + return (-1); + errno = serrno; + number = umaxval; + + switch (tolower((unsigned char)*endptr)) { + case 'e': + shift = 60; + break; + case 'p': + shift = 50; + break; + case 't': + shift = 40; + break; + case 'g': + shift = 30; + break; + case 'm': + shift = 20; + break; + case 'k': + shift = 10; + break; + case 'b': + case '\0': /* No unit. */ + *num = number; + return (0); + default: + /* Unrecognized unit. */ + errno = EINVAL; + return (-1); + } + + if ((number << shift) >> shift != number) { + /* Overflow */ + errno = ERANGE; + return (-1); + } + *num = number << shift; + return (0); +} + +static int +parse_memsize(const char *opt, size_t *ret_memsize) +{ + char *endptr; + size_t optval; + int error; + + optval = strtoul(opt, &endptr, 0); + if (*opt != '\0' && *endptr == '\0') { + /* + * For the sake of backward compatibility if the memory size + * specified on the command line is less than a megabyte then + * it is interpreted as being in units of MB. + */ + if (optval < MB) + optval *= MB; + *ret_memsize = optval; + error = 0; + } else + error = expand_number(opt, ((uint64_t *) ret_memsize)); + + return (error); +} + +static int +firmware_parse(const char *opt) { + char *fw, *kernel, *initrd, *cmdline, *cp; + + fw = strdup(opt); + + if (strncmp(fw, "kexec", strlen("kexec")) != 0) { + goto fail; + } + + if ((cp = strchr(fw, ',')) != NULL) { + *cp = '\0'; + kernel = cp + 1; + } else { + goto fail; + } + + if ((cp = strchr(kernel, ',')) != NULL) { + *cp = '\0'; + initrd = cp + 1; + } else { + goto fail; + } + + if ((cp = strchr(initrd, ',')) != NULL) { + *cp = '\0'; + cmdline = cp + 1; + } else { + goto fail; + } + + initrd = strlen(initrd) ? initrd : NULL; + cmdline = strlen(cmdline) ? cmdline : NULL; + + kexec_init(kernel, initrd, cmdline); + + return 0; + +fail: + fprintf(stderr, "Invalid firmare argument\n" + " -f kexec,'kernel','initrd','\"cmdline\"'\n"); + + return -1; +} + +int +main(int argc, char *argv[]) +{ + int c, error, gdb_port, bvmcons, fw; + int dump_guest_memory, max_vcpus, mptgen; + int rtc_localtime; + uint64_t rip; + size_t memsize; + + bvmcons = 0; + dump_guest_memory = 0; + progname = basename(argv[0]); + gdb_port = 0; + guest_ncpus = 1; + memsize = 256 * MB; + mptgen = 1; + rtc_localtime = 1; + fw = 0; + + while ((c = getopt(argc, argv, "behuwxACHPWY:f:g:c:s:m:l:U:")) != -1) { + switch (c) { + case 'A': + acpi = 1; + break; + case 'b': + bvmcons = 1; + break; + case 'c': + guest_ncpus = atoi(optarg); + break; + case 'C': + dump_guest_memory = 1; + break; + case 'f': + if (firmware_parse(optarg) != 0) { + exit (1); + } else { + fw = 1; + break; + } + case 'g': + gdb_port = atoi(optarg); + break; + case 'l': + if (lpc_device_parse(optarg) != 0) { + errx(EX_USAGE, "invalid lpc device " + "configuration '%s'", optarg); + } + break; + case 's': + if (pci_parse_slot(optarg) != 0) + exit(1); + else + break; + case 'm': + error = parse_memsize(optarg, &memsize); + if (error) + errx(EX_USAGE, "invalid memsize '%s'", optarg); + break; + case 'H': + guest_vmexit_on_hlt = 1; + break; + case 'P': + guest_vmexit_on_pause = 1; + break; + case 'e': + strictio = 1; + break; + case 'u': + rtc_localtime = 0; + break; + case 'U': + guest_uuid_str = optarg; + break; + case 'w': + strictmsr = 0; + break; + case 'W': + virtio_msix = 0; + break; + case 'x': + x2apic_mode = 1; + break; + case 'Y': + mptgen = 0; + break; + case 'h': + usage(0); + default: + usage(1); + } + } + + if (fw != 1) + usage(1); + + error = xh_vm_create(); + if (error) { + fprintf(stderr, "Unable to create VM (%d)\n", error); + exit(1); + } + + if (guest_ncpus < 1) { + fprintf(stderr, "Invalid guest vCPUs (%d)\n", guest_ncpus); + exit(1); + } + + max_vcpus = num_vcpus_allowed(); + if (guest_ncpus > max_vcpus) { + fprintf(stderr, "%d vCPUs requested but only %d available\n", + guest_ncpus, max_vcpus); + exit(1); + } + + error = xh_vm_setup_memory(memsize, VM_MMAP_ALL); + if (error) { + fprintf(stderr, "Unable to setup memory (%d)\n", error); + exit(1); + } + + error = init_msr(); + if (error) { + fprintf(stderr, "init_msr error %d\n", error); + exit(1); + } + + init_mem(); + init_inout(); + pci_irq_init(); + ioapic_init(); + + rtc_init(rtc_localtime); + sci_init(); + + /* + * Exit if a device emulation finds an error in it's initilization + */ + if (init_pci() != 0) + exit(1); + + if (gdb_port != 0) + init_dbgport(gdb_port); + + if (bvmcons) + init_bvmcons(); + + /* + * build the guest tables, MP etc. + */ + if (mptgen) { + error = mptable_build(guest_ncpus); + if (error) + exit(1); + } + + error = smbios_build(); + assert(error == 0); + + if (acpi) { + error = acpi_build(guest_ncpus); + assert(error == 0); + } + + + rip = 0; + + vcpu_add(BSP, BSP, rip); + + /* + * Head off to the main event dispatch loop + */ + mevent_dispatch(); + + exit(1); +} diff --git a/src/xmsr.c b/src/xmsr.c new file mode 100644 index 0000000..79424e1 --- /dev/null +++ b/src/xmsr.c @@ -0,0 +1,104 @@ +/*- + * Copyright (c) 2011 NetApp, Inc. + * Copyright (c) 2015 xhyve developers + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY NETAPP, INC ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL NETAPP, INC OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +int +emulate_wrmsr(UNUSED int vcpu, uint32_t num, UNUSED uint64_t val) +{ + switch (num) { + case 0xd04: /* Sandy Bridge uncore PMCs */ + case 0xc24: + return (0); + case MSR_BIOS_UPDT_TRIG: + return (0); + case MSR_BIOS_SIGN: + return (0); + default: + break; + } + + return (-1); +} + +int +emulate_rdmsr(UNUSED int vcpu, uint32_t num, uint64_t *val) +{ + int error = 0; + + switch (num) { + case MSR_BIOS_SIGN: + case MSR_IA32_PLATFORM_ID: + case MSR_PKG_ENERGY_STATUS: + case MSR_PP0_ENERGY_STATUS: + case MSR_PP1_ENERGY_STATUS: + case MSR_DRAM_ENERGY_STATUS: + *val = 0; + break; + case MSR_RAPL_POWER_UNIT: + /* + * Use the default value documented in section + * "RAPL Interfaces" in Intel SDM vol3. + */ + *val = 0x000a1003; + break; + default: + error = -1; + break; + } + + return (error); +} + +int +init_msr(void) +{ + u_int regs[4]; + u_int cpu_vendor[4]; + + do_cpuid(0, regs); + cpu_vendor[0] = regs[1]; + cpu_vendor[1] = regs[3]; + cpu_vendor[2] = regs[2]; + cpu_vendor[3] = 0; + + if (strcmp(((char *) cpu_vendor), "GenuineIntel") == 0) { + return 0; + } else { + fprintf(stderr, "Unknown cpu vendor \"%s\"\n", ((char *) cpu_vendor)); + return (-1); + } +} diff --git a/test/initrd.gz b/test/initrd.gz new file mode 100644 index 0000000000000000000000000000000000000000..c427032aa2b08c2b18dd0843320e854ff2545846 GIT binary patch literal 7609274 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ρ`>`~W}W{coyp1C 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

8|88{Z1nAfbc0UFEbg}NiB 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

h>Pwo=@73Khxh#pJ<0D%NDt@X2UwA?IXi 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℞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

3E>HI-m@$@ym-ch$_s%{mUg#$bl;G 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.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

Gs=nCTZ^L!E0@IwGj+O9=W>+3=Bq}B*z>@lZYx@ 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

p1!hFVOacX4KFUbKJ97EY>+e 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

aG*p%U2tF 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%0DRrRcoyu11SGxvUby9fLIvA4T*PnAlK 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
1g4nxd{vs-fwgw)p4)mYw bt0Sm7j=Fc5NSgqki}0CtiAPVX%@# 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

BGJRXF{cfQ>zGBDEOJ%$$F^e73I5_Rd{tTFQ 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

OC8zxf8zOv4O)$ckSJ<9cha?oSH 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%0Abn@QCh^*2 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�J-5`FzA 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

EfEyF6kN#bo|<0PXYTxB|n&{ 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%0DK^J#XX4#Lj!SkUTY0$@^SOZmdx>h7?f5MU<)x!! z&|INWu!YbLQGY9ST~JeqB-+^v^)Br7Ler*om`5uAZq0CEQm4whSJ@_arv`%7=z26Q zBuyec=)0Zl;EFOyTj^vWlIK9um~s$y+OCK4iK2gp2eX}rzdyI;c0f@o7)G-i38n7{+2}OYv>7?DQ zH;n;_x$r$}g4&N30C`ZGxiF~BpQD}$mUoH5%(wKe$z6Oa2rd8Yfu-a#2|L!#lkU+C zAH10yvgBlFjqqGwP`hmbmID22<_zoI+y_d6GUic_hdxdnX+t$L ze`a{hOkj4?A1kbT8nBo)?KC&_{*L5g!))e0n_9bxx{XFLOf;-j*HLq-?pCe-*a92L z)k+s97y9)*zVfF^!0)xkQVWG03+5|d-m-SI`a$BjJ*}K?} zua11FkHRD-rNakl73B$;Xb345#B^|V%G-THWm~1%p0bMS`=YX&m}!kEiEBC7l$au7 z1Gp#d;=#%B==U%E7kui;#1WgAZn%`pTx>Cno^3{KLJFFPD1W*;(xzX*af#IE8L_D@ zHdrE=Kl#uvCW#r7H_mUEJoV%VKOC$;DL8w9t$M-(Lo&@#}gkhrk8&BH3Y29LZ5yEs<76-^tPCt<8)TGrRS6 zzp}?Bs*kw67}{5UMu`3qrdoue$wmI!4pHwAJL?;WE@tA6(}wyDah&?Ls6FDQp=-QC zONaWZ88Iv8c-bkeJI7Jcx}vtXk4mqGcd_)^g$`s%gdOiep7^A43~tscUu-LvM{&hz z#+X>aDYgUa_&Ipu;L-kft{li~^K12PbK?{0e@|W!-!7_ma=pJMtlOo@La;rc|k? z#SAXr{}HY{srHn_w}UK$Uoh+H+s3NGgsEMVC=+RB_YnABOGKvGZfTQU8e2w1x5!Sl zHL?%uju$JqmC7OO!5fvFC44NbX#^@%wj%o@=PGBda&D@afb95juT^3e*T4ILDgbu&rv|)}RN2XS}$;gE`GI)kQZv>SH4N6y; zy;~Sb>IuBCCvqVFv)A`BC6HJdW12nFyRAgg{$A!|Iu`+#sYoXCOuyYs5=wf51hOMc zV%QR?4Q1d%)|I`!W`yVHi97|CAB>?anP|8q6auLz-pnN-k0(7A0WWwX*s1P6=QcIp&YQv1*s)Q20;f6 z{p}opWnWq$yJ#a<@a3;NpN7}#rB2h)X{5L7G`w8{>*6!IZj|c!O#Hl@pUqkLW2@ZW zS9s!vWdGJ?AED_}^{Dh%M<4XoP-M!cS^Cm;9;>bjOik5B+}9gL(PR-wg_VK{Ow zYP&h(Aog{Z8uqDMXvUb`AgA9vZ_L&)M4C;`CoQlpLIZL1f6edLKKoXF6E2>U7gu^t zReI9C@@+13T5|;)iIf*5Jr72nDhSA9NMeDt�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 z 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 z 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%0ACipPTW%St) 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 z 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