diff options
author | jhb <jhb@FreeBSD.org> | 2002-09-06 17:08:07 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2002-09-06 17:08:07 +0000 |
commit | 49487ffa2c56cfdb3f1e348a058e462cc55e336d (patch) | |
tree | 73b1152b62f5dcf5057b2109c99dcf073441767f /sys/amd64/include/pci_cfgreg.h | |
parent | 7b3d4c8729c1e1340aafe9dbec1ef2189bae76df (diff) | |
download | FreeBSD-src-49487ffa2c56cfdb3f1e348a058e462cc55e336d.zip FreeBSD-src-49487ffa2c56cfdb3f1e348a058e462cc55e336d.tar.gz |
- Add a pci_cfgintr_valid() function to see if a given IRQ is a valid
IRQ for an entry in a PCIBIOS interrupt routing ($PIR) table.
- Change pci_cfgintr() to except the current IRQ of a device as a fourth
argument and to use that IRQ for the device if it is valid.
- If an intpin entry in a $PIR entry has a link of 0, it means that that
intpin isn't connected to anything that can trigger an interrupt. Thus,
test the link against 0 to find invalid entries in the table instead of
implicitly relying on the irqs field to be zero. In the machines I have
looked at, intpin entries with a link of 0 often have the bits for all
possible interrupts for PCI devices set.
Diffstat (limited to 'sys/amd64/include/pci_cfgreg.h')
-rw-r--r-- | sys/amd64/include/pci_cfgreg.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/amd64/include/pci_cfgreg.h b/sys/amd64/include/pci_cfgreg.h index 3c06dad..dd51998 100644 --- a/sys/amd64/include/pci_cfgreg.h +++ b/sys/amd64/include/pci_cfgreg.h @@ -50,6 +50,6 @@ int pci_cfgregopen(void); u_int32_t pci_cfgregread(int bus, int slot, int func, int reg, int bytes); void pci_cfgregwrite(int bus, int slot, int func, int reg, u_int32_t data, int bytes); -int pci_cfgintr(int bus, int device, int pin); +int pci_cfgintr(int bus, int device, int pin, int oldirq); int pci_kill_pcibios(void); int pci_pcibios_active(void); |