6dd3a6c06e
amd64 mechanism over. Instead of page table hackery that isn't actually needed, just use 'struct pcpu __pcpu[MAXCPU]' for backing like all the other platforms do. Get rid of 'struct privatespace' and a while mess of #ifdef SMP garbage that set it up. As a bonus, this returns the 4MB of KVA that we stole to implement it the old way. This also allows you to read the pcpu data for each cpu when reading a minidump. Background information: Originally, pcpu stuff was implemented as having per-cpu page tables and magic to make different data structures appear at the same actual address. In order to share page tables, we switched to using the GDT and %fs/%gs to access it. But we still did the evil magic to set it up for the old way. The "idle stacks" are not used for the idle process anymore and are just used for a few functions during bootup, then ignored. (excercise for reader: free these afterwards). |
||
---|---|---|
.. | ||
pc | ||
_bus.h | ||
_inttypes.h | ||
_limits.h | ||
_stdint.h | ||
_types.h | ||
acpica_machdep.h | ||
apicreg.h | ||
apicvar.h | ||
apm_bios.h | ||
apm_segments.h | ||
asm.h | ||
asmacros.h | ||
atomic.h | ||
bootinfo.h | ||
bus_dma.h | ||
bus.h | ||
clock.h | ||
cpu.h | ||
cpufunc.h | ||
cputypes.h | ||
cserial.h | ||
db_machdep.h | ||
elan_mmcr.h | ||
elf.h | ||
endian.h | ||
exec.h | ||
float.h | ||
floatingpoint.h | ||
frame.h | ||
gdb_machdep.h | ||
ieeefp.h | ||
if_wl_wavelan.h | ||
in_cksum.h | ||
intr_machdep.h | ||
ioctl_bt848.h | ||
ioctl_meteor.h | ||
iodev.h | ||
kdb.h | ||
legacyvar.h | ||
limits.h | ||
md_var.h | ||
memdev.h | ||
metadata.h | ||
minidump.h | ||
mp_watchdog.h | ||
mptable.h | ||
mutex.h | ||
npx.h | ||
param.h | ||
pcaudioio.h | ||
pcb_ext.h | ||
pcb.h | ||
pci_cfgreg.h | ||
pcpu.h | ||
pecoff_machdep.h | ||
perfmon.h | ||
pmap.h | ||
pmc_mdep.h | ||
ppireg.h | ||
privatespace.h | ||
proc.h | ||
profile.h | ||
psl.h | ||
ptrace.h | ||
reg.h | ||
reloc.h | ||
resource.h | ||
runq.h | ||
segments.h | ||
setjmp.h | ||
sf_buf.h | ||
sigframe.h | ||
signal.h | ||
smapi.h | ||
smp.h | ||
speaker.h | ||
specialreg.h | ||
stdarg.h | ||
sysarch.h | ||
timerreg.h | ||
trap.h | ||
tss.h | ||
ucontext.h | ||
varargs.h | ||
vm86.h | ||
vmparam.h | ||
xbox.h |