summaryrefslogtreecommitdiffstats
path: root/sys/amd64/include/vmparam.h
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2003-07-09 23:04:23 +0000
committerpeter <peter@FreeBSD.org>2003-07-09 23:04:23 +0000
commit9fc6da3f4c50a6a9d1ccfd5ea211980d3f244799 (patch)
treee3205656711935b2bcc1da978133f4e7e78905b5 /sys/amd64/include/vmparam.h
parentb1f1716f2aea85089a01e4a4b2e10c0393be888a (diff)
downloadFreeBSD-src-9fc6da3f4c50a6a9d1ccfd5ea211980d3f244799.zip
FreeBSD-src-9fc6da3f4c50a6a9d1ccfd5ea211980d3f244799.tar.gz
Fix the VADDR() macros to use either KVADDR() or UVADDR(), depending
on the implied sign extension. The single unified VADDR() macro was not able to avoid sign extending the VM_MAXUSER_ADDRESS/USRSTACK values. Be explicit about UVADDR() (positive address space) and KVADDR() (kernel negative address space) to make mistakes show up more spectacularly. Increase user VM space from 1/2TB (512GB) to 128TB.
Diffstat (limited to 'sys/amd64/include/vmparam.h')
-rw-r--r--sys/amd64/include/vmparam.h16
1 files changed, 8 insertions, 8 deletions
diff --git a/sys/amd64/include/vmparam.h b/sys/amd64/include/vmparam.h
index 6dc7560..9336bab 100644
--- a/sys/amd64/include/vmparam.h
+++ b/sys/amd64/include/vmparam.h
@@ -92,18 +92,18 @@
* messy at times, but hey, we'll do anything to save a page :-)
*/
-#define VM_MAX_KERNEL_ADDRESS VADDR(KPML4I, NPDPEPG-1, NKPDE-1, NPTEPG-1)
-#define VM_MIN_KERNEL_ADDRESS VADDR(KPML4I, KPDPI, 0, 0)
+#define VM_MAX_KERNEL_ADDRESS KVADDR(KPML4I, NPDPEPG-1, NKPDE-1, NPTEPG-1)
+#define VM_MIN_KERNEL_ADDRESS KVADDR(KPML4I, KPDPI, 0, 0)
-#define DMAP_MIN_ADDRESS VADDR(DMPML4I, 0, 0, 0)
-#define DMAP_MAX_ADDRESS VADDR(DMPML4I+1, 0, 0, 0)
+#define DMAP_MIN_ADDRESS KVADDR(DMPML4I, 0, 0, 0)
+#define DMAP_MAX_ADDRESS KVADDR(DMPML4I+1, 0, 0, 0)
-#define KERNBASE VADDR(KPML4I, KPDPI, 0, 0)
+#define KERNBASE KVADDR(KPML4I, KPDPI, 0, 0)
-#define UPT_MAX_ADDRESS VADDR(PML4PML4I, PML4PML4I, PML4PML4I, PML4PML4I)
-#define UPT_MIN_ADDRESS VADDR(PML4PML4I, 0, 0, 0)
+#define UPT_MAX_ADDRESS KVADDR(PML4PML4I, PML4PML4I, PML4PML4I, PML4PML4I)
+#define UPT_MIN_ADDRESS KVADDR(PML4PML4I, 0, 0, 0)
-#define VM_MAXUSER_ADDRESS VADDR(NUPML4E, 0, 0, 0)
+#define VM_MAXUSER_ADDRESS UVADDR(NUPML4E, 0, 0, 0)
#define USRSTACK VM_MAXUSER_ADDRESS
OpenPOWER on IntegriCloud