void sio_iointr(void *arg, unsigned long vec) { int irq; irq = SCB_VECTOIDX(vec - 0x800); #ifdef DIAGNOSTIC if (irq > ICU_LEN || irq < 0) panic("sio_iointr: irq out of range (%d)", irq); #endif if (!alpha_shared_intr_dispatch(sio_intr, irq)) alpha_shared_intr_stray(sio_intr, irq, "isa irq"); else alpha_shared_intr_reset_strays(sio_intr, irq); /* * Some versions of the machines which use the SIO * (or is it some PALcode revisions on those machines?) * require the non-specific EOI to be fed to the PIC(s) * by the interrupt handler. */ specific_eoi(irq); }
void jensenio_iointr(void *framep, u_long vec) { int irq; irq = SCB_VECTOIDX(vec - 0x800); if (!alpha_shared_intr_dispatch(jensenio_eisa_intr, irq)) alpha_shared_intr_stray(jensenio_eisa_intr, irq, "eisa irq"); jensenio_specific_eoi(irq); }
void eb66_iointr(void *arg, unsigned long vec) { int irq; irq = SCB_VECTOIDX(vec - 0x900); if (!alpha_shared_intr_dispatch(eb66_pci_intr, irq)) { alpha_shared_intr_stray(eb66_pci_intr, irq, "eb66 irq"); if (ALPHA_SHARED_INTR_DISABLE(eb66_pci_intr, irq)) eb66_intr_disable(irq); } else alpha_shared_intr_reset_strays(eb66_pci_intr, irq); }
static void dec_1000a_iointr(void *framep, unsigned long vec) { int irq; irq = SCB_VECTOIDX(vec - 0x900); if (!alpha_shared_intr_dispatch(dec_1000a_pci_intr, irq)) { alpha_shared_intr_stray(dec_1000a_pci_intr, irq, "dec_1000a irq"); if (ALPHA_SHARED_INTR_DISABLE(dec_1000a_pci_intr, irq)) dec_1000a_disable_intr(irq); } else alpha_shared_intr_reset_strays(dec_1000a_pci_intr, irq); }
void dec_550_iointr(void *arg, unsigned long vec) { int irq; irq = SCB_VECTOIDX(vec - 0x900); if (irq >= DEC_550_MAX_IRQ) panic("550_iointr: vec 0x%lx out of range", vec); if (!alpha_shared_intr_dispatch(dec_550_pci_intr, irq)) { alpha_shared_intr_stray(dec_550_pci_intr, irq, "dec 550 irq"); if (ALPHA_SHARED_INTR_DISABLE(dec_550_pci_intr, irq)) dec_550_intr_disable(irq); } else alpha_shared_intr_reset_strays(dec_550_pci_intr, irq); }