NetBSD/sys/arch/shark/isa
thorpej 165d4e6d83 Rewrite the ARM mutex implementation to be of the simple-mutex variety.
Because pre-v6 ARM lacks support for an atomic compare-and-swap, we
implement _lock_cas() as a restartable atomic squence that is checked
in the IRQ handler right before AST processing.  (This is safe because,
for all practical purposes, there are no SMP pre-v6 ARM systems.)

This can serve as a model for other non-MP platforms that lack the
necessary atomic operations for mutexes (SuperH, for example).

Upshots of this change:
- kmutex_t is now down to 8 bytes on ARM; about as good as we can get.
- ARM2 systems don't have to trap and emulate SWP or SWPB for mutexes.

The acorn26 port is not updated by this commit to do the LOCK_CAS_CHECK.
That is left as an exercise for the port maintainer.

Reviewed and tested by Matt Thomas.
2007-03-09 19:21:57 +00:00
..
clock.c Clean the bitrotting ofw code. Don't export export the underlying irq 2007-03-08 20:48:39 +00:00
icu.h
isa_io_asm.S
isa_io.c add bus_space_*_stream() methods 2007-01-21 23:19:57 +00:00
isa_irq.S Rewrite the ARM mutex implementation to be of the simple-mutex variety. 2007-03-09 19:21:57 +00:00
isa_irqhandler.c Make sure to include IPL_SOFT* and IPL_STATCLOCK when setting up IRQ masks. 2007-03-09 18:20:51 +00:00
isa_shark_machdep.c Clean the bitrotting ofw code. Don't export export the underlying irq 2007-03-08 20:48:39 +00:00
isadma_machdep.c fix caddr_t fallout. 2007-03-04 10:21:25 +00:00
nvram.h
spkrreg.h