to do with the security model used. Move back the call to spec_open(),
which can now return the real return value from vfs_mountedon() (EBUSY)
and not EPERM, changing semantics.
of available test candidates. It uses the previously unused (as far as I
can tell) Timer D, in freerunning mode. It only uses a 1/200 prescaler
(20KHz), as anything faster would roll over too fast for the system timer.
(Gotta love 8-bit resolution timers!) Approved for untested commit by core@.
This gets rid of the now-unneded "todclock" and "todservice" attributes
from the footbridge device files, which should allow netwinder to build
again after its conversion to generic TODR.
Resulting kernel verified to boot up OK on gxemul (after my recent
fixes of the gxemul package to emulate free-running timers).
- add a new entry point for idle called idle_switch that is called by
cpu_switch() in the MP case when sched_whichqs is zero, properly
setting up the idle stack. from petrov@ via martin@.
- for the IPI case, avoid loading the address of intrlev into %g3
- remove some NOT_DEBUG code
- load the interrupt argument #2 in the delay slot
this removes 2 nops during interrupt processing for the normal
case, and an additional 2 ALU instructions for IPIs
- initialise bootcpu->ci_{cpcb,initstack}/proc0paddr from the
idle u area.
pmap_extract():
- make this work on the kernel interrupt stack as well
both of these are from petrov@ via martin@.
pmap_update(): XXX mark the MULTIPROCESSOR call to smp_tlb_flush_all().
so replace a branch with a 'sir'
- in #if 0 code, in sparc64_ipi_flush_pte() and sparc64_ipi_flush_ctx()
save/restore the out registers that the sp_tlb_flush_xxx() versions
around calling them
- in sp_tlb_flush_pte() and sp_tlb_flush_ctx(), replace global register
usage with out registers so that we don't clobber the (alternate)
global registers when these are called from IPI context