d74ac6819b
disablement assumptions in kern_fork.c by adding another API call, cpu_critical_fork_exit(). Cleanup the td_savecrit field by moving it from MI to MD. Temporarily move cpu_critical*() from <arch>/include/cpufunc.h to <arch>/<arch>/critical.c (stage-2 will clean this up). Implement interrupt deferral for i386 that allows interrupts to remain enabled inside critical sections. This also fixes an IPI interlock bug, and requires uses of icu_lock to be enclosed in a true interrupt disablement. This is the stage-1 commit. Stage-2 will occur after stage-1 has stabilized, and will move cpu_critical*() into its own header file(s) + other things. This commit may break non-i386 architectures in trivial ways. This should be temporary. Reviewed by: core Approved by: core |
||
---|---|---|
.. | ||
_inttypes.h | ||
_limits.h | ||
ansi.h | ||
asm.h | ||
atomic.h | ||
bat.h | ||
bootinfo.h | ||
bus.h | ||
clock.h | ||
cpu.h | ||
cpufunc.h | ||
db_machdep.h | ||
elf.h | ||
endian.h | ||
exec.h | ||
fpu.h | ||
frame.h | ||
intr.h | ||
ipl.h | ||
limits.h | ||
md_var.h | ||
mutex.h | ||
openpicreg.h | ||
param.h | ||
pcb.h | ||
pcpu.h | ||
pio.h | ||
pmap.h | ||
powerpc.h | ||
proc.h | ||
psl.h | ||
pte.h | ||
ptrace.h | ||
reg.h | ||
reloc.h | ||
resource.h | ||
setjmp.h | ||
sigframe.h | ||
signal.h | ||
smp.h | ||
sr.h | ||
stdarg.h | ||
trap.h | ||
types.h | ||
ucontext.h | ||
varargs.h | ||
vmparam.h |