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.

Reply via email to