diff options
author | jhb <jhb@FreeBSD.org> | 2014-01-29 14:56:48 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2014-01-29 14:56:48 +0000 |
commit | 3f6ca218c6bdd97f650bf22c333e4de00d52996b (patch) | |
tree | 09685dd2341b1fb3a81952684f6e4b12e50ee984 /lib/libvmmapi/vmmapi.c | |
parent | a9cddbb1f16b47f5880a3d0ec07880709fdec16e (diff) | |
download | FreeBSD-src-3f6ca218c6bdd97f650bf22c333e4de00d52996b.zip FreeBSD-src-3f6ca218c6bdd97f650bf22c333e4de00d52996b.tar.gz |
Enhance the support for PCI legacy INTx interrupts and enable them in
the virtio backends.
- Add a new ioctl to export the count of pins on the I/O APIC from vmm
to the hypervisor.
- Use pins on the I/O APIC >= 16 for PCI interrupts leaving 0-15 for
ISA interrupts.
- Populate the MP Table with I/O interrupt entries for any PCI INTx
interrupts.
- Create a _PRT table under the PCI root bridge in ACPI to route any
PCI INTx interrupts appropriately.
- Track which INTx interrupts are in use per-slot so that functions
that share a slot attempt to distribute their INTx interrupts across
the four available pins.
- Implicitly mask INTx interrupts if either MSI or MSI-X is enabled
and when the INTx DIS bit is set in a function's PCI command register.
Either assert or deassert the associated I/O APIC pin when the
state of one of those conditions changes.
- Add INTx support to the virtio backends.
- Always advertise the MSI capability in the virtio backends.
Submitted by: neel (7)
Reviewed by: neel
MFC after: 2 weeks
Diffstat (limited to 'lib/libvmmapi/vmmapi.c')
-rw-r--r-- | lib/libvmmapi/vmmapi.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/libvmmapi/vmmapi.c b/lib/libvmmapi/vmmapi.c index 6fec469..eba3367 100644 --- a/lib/libvmmapi/vmmapi.c +++ b/lib/libvmmapi/vmmapi.c @@ -454,6 +454,13 @@ vm_ioapic_pulse_irq(struct vmctx *ctx, int irq) } int +vm_ioapic_pincount(struct vmctx *ctx, int *pincount) +{ + + return (ioctl(ctx->fd, VM_IOAPIC_PINCOUNT, pincount)); +} + +int vm_inject_nmi(struct vmctx *ctx, int vcpu) { struct vm_nmi vmnmi; |