freebsd-nq/sys/amd64/include
Peter Wemm 3c9a3c9ca3 Major pmap rework to take advantage of the larger address space on amd64
systems.  Of note:
- Implement a direct mapped region using 2MB pages.  This eliminates the
  need for temporary mappings when getting ptes.  This supports up to
  512GB of physical memory for now.  This should be enough for a while.
- Implement a 4-tier page table system.  Most of the infrastructure is
  there for 128TB of userland virtual address space, but only 512GB is
  presently enabled due to a mystery bug somewhere.  The design of this
  was heavily inspired by the alpha pmap.c.
- The kernel is moved into the negative address space(!).
- The kernel has 2GB of KVM available.
- Provide a uma memory allocator to use the direct map region to take
  advantage of the 2MB TLBs.
- Fixed some assumptions in the bus_space macros about the ability
  to fit virtual addresses in an 'int'.

Notable missing things:
- pmap_growkernel() should be able to grow to 512GB of KVM by expanding
  downwards below kernbase.  The kernel must be at the top 2GB of the
  negative address space because of gcc code generation strategies.
- need to fix the >512GB user vm code.

Approved by:	re (blanket)
2003-05-23 05:04:54 +00:00
..
pc use __packed. 2002-09-23 18:54:32 +00:00
_inttypes.h Commit MD parts of a loosely functional AMD64 port. This is based on 2003-05-01 01:05:25 +00:00
_limits.h sys/sys/limits.h: 2003-05-19 20:29:07 +00:00
_stdint.h Create a new header <machine/_stdint.h> for storing MD parts of 2002-07-29 17:41:23 +00:00
_types.h Provide a fake varargs implementation for lint's benefit. This way 2003-05-10 00:55:15 +00:00
acpica_machdep.h Resolve conflicts arising from the ACPI CA 20020725 import. 2002-07-30 19:35:32 +00:00
apicreg.h Expand the APIC ID mask field of the ICR register to 8 bits intead of just 2003-03-17 19:14:13 +00:00
asm.h Remove _ARCH_INDIRECT ifdefs. They existed for lib/msun/* on i386, which 2003-05-10 00:53:34 +00:00
asmacros.h Commit MD parts of a loosely functional AMD64 port. This is based on 2003-05-01 01:05:25 +00:00
atomic.h Commit MD parts of a loosely functional AMD64 port. This is based on 2003-05-01 01:05:25 +00:00
bus_amd64.h Major pmap rework to take advantage of the larger address space on amd64 2003-05-23 05:04:54 +00:00
bus_dma.h AMD64 physical space is much larger than i386, de-i386 the bus_space and 2003-05-12 02:44:37 +00:00
bus_memio.h AMD64 physical space is much larger than i386, de-i386 the bus_space and 2003-05-12 02:44:37 +00:00
bus_pio.h AMD64 physical space is much larger than i386, de-i386 the bus_space and 2003-05-12 02:44:37 +00:00
bus.h AMD64 physical space is much larger than i386, de-i386 the bus_space and 2003-05-12 02:44:37 +00:00
clock.h Commit MD parts of a loosely functional AMD64 port. This is based on 2003-05-01 01:05:25 +00:00
cpu.h Commit MD parts of a loosely functional AMD64 port. This is based on 2003-05-01 01:05:25 +00:00
cpufunc.h Collect the nastiness for preserving the kernel MSR_GSBASE around the 2003-05-15 00:23:40 +00:00
cputypes.h Commit MD parts of a loosely functional AMD64 port. This is based on 2003-05-01 01:05:25 +00:00
critical.h Commit MD parts of a loosely functional AMD64 port. This is based on 2003-05-01 01:05:25 +00:00
db_machdep.h Commit MD parts of a loosely functional AMD64 port. This is based on 2003-05-01 01:05:25 +00:00
elf.h Add BASIC i386 binary support for the amd64 kernel. This is largely 2003-05-14 04:10:49 +00:00
endian.h Commit MD parts of a loosely functional AMD64 port. This is based on 2003-05-01 01:05:25 +00:00
exec.h
float.h Implement fpclassify(): 2003-02-08 20:37:55 +00:00
floatingpoint.h o Move the contents of <machine/floatingpoint.h> over to 2003-01-19 06:01:33 +00:00
fpu.h Include the MXCSR initial values, based on the AMD docs. This file 2003-05-09 18:28:05 +00:00
frame.h For the page fault handler, save %cr2 in the outer trap handler so that 2003-05-12 18:33:19 +00:00
ieeefp.h o Move the contents of <machine/floatingpoint.h> over to 2003-01-19 06:01:33 +00:00
in_cksum.h
kse.h Commit MD parts of a loosely functional AMD64 port. This is based on 2003-05-01 01:05:25 +00:00
legacyvar.h Add a new legacy(4) device driver for use on machines that do not have 2002-09-23 15:50:06 +00:00
limits.h sys/sys/limits.h: 2003-05-19 20:29:07 +00:00
md_var.h Add BASIC i386 binary support for the amd64 kernel. This is largely 2003-05-14 04:10:49 +00:00
metadata.h Slight reorg and added AMD64 support. A couple of the MODINFOMD_* values 2003-05-01 03:31:18 +00:00
mptable.h Initialize logical_cpus_mask when the logical CPUs are enumerated in 2003-05-15 05:12:24 +00:00
mutex.h Commit MD parts of a loosely functional AMD64 port. This is based on 2003-05-01 01:05:25 +00:00
npx.h Include the MXCSR initial values, based on the AMD docs. This file 2003-05-09 18:28:05 +00:00
param.h Major pmap rework to take advantage of the larger address space on amd64 2003-05-23 05:04:54 +00:00
pcb_ext.h Commit MD parts of a loosely functional AMD64 port. This is based on 2003-05-01 01:05:25 +00:00
pcb.h Collect the nastiness for preserving the kernel MSR_GSBASE around the 2003-05-15 00:23:40 +00:00
pci_cfgreg.h Commit MD parts of a loosely functional AMD64 port. This is based on 2003-05-01 01:05:25 +00:00
pcpu.h Commit MD parts of a loosely functional AMD64 port. This is based on 2003-05-01 01:05:25 +00:00
pmap.h Major pmap rework to take advantage of the larger address space on amd64 2003-05-23 05:04:54 +00:00
proc.h Commit MD parts of a loosely functional AMD64 port. This is based on 2003-05-01 01:05:25 +00:00
profile.h Commit MD parts of a loosely functional AMD64 port. This is based on 2003-05-01 01:05:25 +00:00
psl.h Commit MD parts of a loosely functional AMD64 port. This is based on 2003-05-01 01:05:25 +00:00
ptrace.h Move the definition of PT_[GS]ET{,DB,FP}REGS from the MD ptrace.h to the 2002-03-16 00:25:53 +00:00
reg.h Commit MD parts of a loosely functional AMD64 port. This is based on 2003-05-01 01:05:25 +00:00
reloc.h
resource.h
runq.h Move the "- 1" into the RQB_FFS(mask) macro itself so that 2002-06-20 06:21:20 +00:00
segments.h Add BASIC i386 binary support for the amd64 kernel. This is largely 2003-05-14 04:10:49 +00:00
setjmp.h Commit MD parts of a loosely functional AMD64 port. This is based on 2003-05-01 01:05:25 +00:00
sigframe.h Commit MD parts of a loosely functional AMD64 port. This is based on 2003-05-01 01:05:25 +00:00
signal.h Commit MD parts of a loosely functional AMD64 port. This is based on 2003-05-01 01:05:25 +00:00
smp.h Commit MD parts of a loosely functional AMD64 port. This is based on 2003-05-01 01:05:25 +00:00
specialreg.h Commit MD parts of a loosely functional AMD64 port. This is based on 2003-05-01 01:05:25 +00:00
stdarg.h Provide a fake varargs implementation for lint's benefit. This way 2003-05-10 00:55:15 +00:00
sysarch.h Give a %fs and %gs to userland. Use swapgs to obtain the kernel %GS.base 2003-05-12 02:37:29 +00:00
trap.h Activate SSE/SIMD. This is the extra context switching support that 2001-07-12 06:32:51 +00:00
tss.h Commit MD parts of a loosely functional AMD64 port. This is based on 2003-05-01 01:05:25 +00:00
ucontext.h For the page fault handler, save %cr2 in the outer trap handler so that 2003-05-12 18:33:19 +00:00
varargs.h Add conditionals to allow va_list to be defined in other headers. 2002-10-06 22:02:06 +00:00
vmparam.h Major pmap rework to take advantage of the larger address space on amd64 2003-05-23 05:04:54 +00:00