8d077f48f0
o Move all code into a single file for easier maintenance. o Use a single global lock to avoid having to handle either multiple locks or race conditions. o Make sure to disable the high FP registers after saving or dropping them. o use msleep() to wait for the other CPU to save the high FP registers. This change fixes the high FP inconsistency panics. A single global lock typically serializes too much, which may be noticable when a lot of threads use the high FP registers, but in that case it's probably better to switch the high FP context synchronuously. Put differently: cpu_switch() should switch the high FP registers if the incoming and outgoing threads both use the high FP registers. |
||
---|---|---|
.. | ||
pc | ||
_align.h | ||
_bus.h | ||
_inttypes.h | ||
_limits.h | ||
_regset.h | ||
_stdint.h | ||
_types.h | ||
acpica_machdep.h | ||
asm.h | ||
atomic.h | ||
bootinfo.h | ||
bus_dma.h | ||
bus.h | ||
clock.h | ||
cpu.h | ||
cpufunc.h | ||
db_machdep.h | ||
dig64.h | ||
efi.h | ||
elf.h | ||
endian.h | ||
exec.h | ||
float.h | ||
floatingpoint.h | ||
fpu.h | ||
frame.h | ||
gdb_machdep.h | ||
ia64_cpu.h | ||
ieee.h | ||
ieeefp.h | ||
in_cksum.h | ||
intr.h | ||
intrcnt.h | ||
kdb.h | ||
limits.h | ||
mca.h | ||
md_var.h | ||
memdev.h | ||
mutex.h | ||
nexusvar.h | ||
pal.h | ||
param.h | ||
pcb.h | ||
pci_cfgreg.h | ||
pcpu.h | ||
pmap.h | ||
pmc_mdep.h | ||
proc.h | ||
profile.h | ||
pte.h | ||
ptrace.h | ||
reg.h | ||
reloc.h | ||
resource.h | ||
runq.h | ||
sal.h | ||
sapicreg.h | ||
sapicvar.h | ||
setjmp.h | ||
sf_buf.h | ||
sigframe.h | ||
signal.h | ||
smp.h | ||
stdarg.h | ||
sysarch.h | ||
ucontext.h | ||
unwind.h | ||
varargs.h | ||
vm.h | ||
vmparam.h |