CVSROOT: /cvs Module name: src Changes by: m...@cvs.openbsd.org 2009/10/22 16:08:54
Modified files: sys/arch/mips64/include: cpu.h cpustate.h frame.h trap.h sys/arch/mips64/mips64: clock.c context.S exception.S interrupt.c process_machdep.c softintr.c vm_machdep.c sys/arch/sgi/include: intr.h mutex.h sys/arch/sgi/localbus: crimebus.h macebus.c sys/arch/sgi/sgi: genassym.cf ip27_machdep.c ip30_machdep.c mutex.c sys/arch/sgi/xbow: hub.h xbridge.c xheart.c xheartreg.h Added files: sys/arch/sgi/sgi: intr_template.c Log message: Completely overhaul interrupt handling on sgi. Cpu state now only stores a logical IPL level, and per-platform (IP27/IP30/IP32) code will from the necessary hardware mask registers. This allows the use of more than one interrupt mask register. Also, the generic (platform independent) interrupt code shrinks a lot, and the actual interrupt handler chains and masking information is now per-platform private data. Interrupt dispatching is generated from a template; more routines will be added to the template to reduce platform-specific changes and share as much code as possible. Tested on IP27, IP30, IP32 and IP35.