asmlinkage void process_int(unsigned long vec, struct pt_regs *fp) { if (vec >= VEC_INT1 && vec <= VEC_INT7) { vec -= VEC_SPUR; kstat_cpu(0).irqs[vec]++; irq_list[vec].handler(vec, irq_list[vec].dev_id); } else { if (mach_process_int) mach_process_int(vec, fp); else panic("Can't process interrupt vector %ld\n", vec); return; } }
asmlinkage void process_int(unsigned long vec, struct pt_regs *fp) { /* give the machine specific code a crack at it first */ if (mach_process_int) if (!mach_process_int(vec, fp)) return; if (vec < VEC_SPUR || vec > VEC_INT7) panic("No interrupt handler for vector %ld\n", vec); vec -= VEC_SPUR; kstat.interrupts[vec]++; if (irq_list[vec].handler) irq_list[vec].handler(vec, irq_list[vec].dev_id, fp); else panic("No interrupt handler for autovector %ld\n", vec); }