freebsd-dev/sys/amd64
John Baldwin c7362ff7fb Change the x86 code to allocate IDT vectors on-demand when an interrupt
source is first enabled similar to how intr_event's now allocate ithreads
on-demand.  Previously, we would map IDT vectors 1:1 to IRQs.  Since we
only have 191 available IDT vectors for I/O interrupts, this limited us
to only supporting IRQs 0-190 corresponding to the first 190 I/O APIC
intpins.  On many machines, however, each PCI-X bus has its own APIC even
though it only has 1 or 2 devices, thus, we were reserving between 24 and
32 IRQs just for 1 or 2 devices and thus 24 or 32 IDT vectors.  With this
change, a machine with 100 IRQs but only 5 in use will only use up 5 IDT
vectors.  Also, this change provides an API (apic_alloc_vector() and
apic_free_vector()) that will allow a future MSI interrupt source driver to
request IDT vectors for use by MSI interrupts on x86 machines.

Tested on:	amd64, i386
2005-11-02 20:11:47 +00:00
..
acpica Catch up with ACPI-CA 20051021 import 2005-11-01 22:44:08 +00:00
amd64 Change the x86 code to allocate IDT vectors on-demand when an interrupt 2005-11-02 20:11:47 +00:00
compile
conf Throw the switch and turn on STOP_NMI on in GENERIC for amd64 and i386. 2005-11-01 22:59:03 +00:00
ia32 include opt_compat.h to unbreak the build 2005-10-24 00:00:00 +00:00
include Change the x86 code to allocate IDT vectors on-demand when an interrupt 2005-11-02 20:11:47 +00:00
isa Reorganize the interrupt handling code a bit to make a few things cleaner 2005-10-25 19:48:48 +00:00
linux32 The signal code is now an int rather than a long, so update debug printfs. 2005-10-14 20:22:57 +00:00
pci Modify the pci_cfgdisable() routine to bring it more in line with 2005-10-25 04:53:29 +00:00
Makefile