Esempio n. 1
0
File: ints.c Progetto: ivucica/linux
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;
	}
}
Esempio n. 2
0
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);
}