NetBSD/sys/arch/arm/ixp12x0
igy fcd9e244be Delaying to mask interrupt by hardware until actually it occurs.
The new code maintains two variables 'current_spl_level' and
'hardware_spl_level'.  Variable hardware_spl_level reflects actual
priority level at the hardware's point of view.  hardware_spl_level is
always synchronized to hardware.

splraise() just increases current_spl_level.  splx() sets
current_spl_level.  If (and only if) hardware_spl_level and
current_spl_level is not same, splx() synchronizes interrupt mask
register and hardware_spl_level to current_spl_level.

In most case, splraise() raises current_spl_level and splx() restores
only current_spl_level.

When an interrupt occurs, hardware_spl_level and interrupt mask
register are synchronized to current_spl_level.

In this implementation, during a higher priority interrupt handler is
running, lower priority interrupts never cause intr_dispatch() to run.
It will avoid some race condition.
2003-07-21 06:17:32 +00:00
..
files.ixp12x0 using common bus_space_tag in ixpsip too 2003-07-13 02:48:41 +00:00
ixp12x0.c mapping pci configuration space (not subregion) 2003-07-13 07:15:22 +00:00
ixp12x0_clk.c KNF 2003-07-13 09:25:50 +00:00
ixp12x0_clkreg.h insert macro to protect itself against multiple includion. 2003-03-06 06:14:16 +00:00
ixp12x0_com.c Back out the lwp/ktrace changes. They contained a lot of colateral damage, 2003-06-29 22:28:00 +00:00
ixp12x0_comreg.h insert macro to protect itself against multiple includion. 2003-03-06 06:14:16 +00:00
ixp12x0_comvar.h Remove #ifdef __HAVE_GENERIC_SOFT_INTERRUPTS switch and old interrupt 2003-03-06 06:17:43 +00:00
ixp12x0_intr.c Delaying to mask interrupt by hardware until actually it occurs. 2003-07-21 06:17:32 +00:00
ixp12x0_intr.h
ixp12x0_io.c mapping pci configuration space (not subregion) 2003-07-13 07:15:22 +00:00
ixp12x0_pci.c Add __KERNEL_RCSID tags 2003-03-25 06:12:46 +00:00
ixp12x0_pci_dma.c Add __KERNEL_RCSID tags 2003-03-25 06:12:46 +00:00
ixp12x0_pcireg.h files.ixp12x0 2003-02-17 20:51:52 +00:00
ixp12x0reg.h move window of pci i/o cycle to higher address 2003-07-13 08:26:31 +00:00
ixp12x0var.h code clean up 2003-07-13 08:56:16 +00:00
ixpsip.c using common bus_space_tag in ixpsip too 2003-07-13 02:48:41 +00:00
ixpsipvar.h