diff options
author | msmith <msmith@FreeBSD.org> | 2000-12-08 22:11:23 +0000 |
---|---|---|
committer | msmith <msmith@FreeBSD.org> | 2000-12-08 22:11:23 +0000 |
commit | c27f2d3c492a3d78680bb4c52f0be2c345735e1d (patch) | |
tree | ab8e18698d3c3ee4b4443c78e8ba86065bed1ff3 /sys/alpha/pci/pcibus.c | |
parent | 3e12cdd63653239c3c71bf1e7042f1149134e630 (diff) | |
download | FreeBSD-src-c27f2d3c492a3d78680bb4c52f0be2c345735e1d.zip FreeBSD-src-c27f2d3c492a3d78680bb4c52f0be2c345735e1d.tar.gz |
Next phase in the PCI subsystem cleanup.
- Move PCI core code to dev/pci.
- Split bridge code out into separate modules.
- Remove the descriptive strings from the bridge drivers. If you
want to know what a device is, use pciconf. Add support for
broadly identifying devices based on class/subclass, and for
parsing a preloaded device identification database so that if
you want to waste the memory, you can identify *anything* we know
about.
- Remove machine-dependant code from the core PCI code. APIC interrupt
mapping is performed by shadowing the intline register in machine-
dependant code.
- Bring interrupt routing support to the Alpha
(although many platforms don't yet support routing or mapping
interrupts entirely correctly). This resulted in spamming
<sys/bus.h> into more places than it really should have gone.
- Put sys/dev on the kernel/modules include path. This avoids
having to change *all* the pci*.h includes.
Diffstat (limited to 'sys/alpha/pci/pcibus.c')
-rw-r--r-- | sys/alpha/pci/pcibus.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/sys/alpha/pci/pcibus.c b/sys/alpha/pci/pcibus.c index 0d54f63..aea4a88 100644 --- a/sys/alpha/pci/pcibus.c +++ b/sys/alpha/pci/pcibus.c @@ -76,11 +76,18 @@ SYSCTL_LONG(_hw_chipset, OID_AUTO, dense, CTLFLAG_RD, &chipset_dense, 0, SYSCTL_LONG(_hw_chipset, OID_AUTO, hae_mask, CTLFLAG_RD, &chipset_hae_mask, 0, "PCI chipset mask for HAE register"); -void -alpha_platform_assign_pciintr(pcicfgregs *cfg) +int +alpha_pci_route_interrupt(device_t bus, device_t dev, int pin) { - if(platform.pci_intr_map) - platform.pci_intr_map((void *)cfg); + /* + * Validate requested pin number. + */ + if ((pin < 1) || (pin > 4)) + return(255); + + if (platform.pci_intr_route) + return(platform.pci_intr_route(bus, dev, pin)); + return(255); } #if NISA > 0 |