summaryrefslogtreecommitdiff
path: root/sys/arch/amd64/include/vmparam.h
diff options
context:
space:
mode:
authorKurt Miller <kurt@cvs.openbsd.org>2008-07-18 16:40:18 +0000
committerKurt Miller <kurt@cvs.openbsd.org>2008-07-18 16:40:18 +0000
commit9d741144290ccbc0fa7905a4b2359a24d7606fbd (patch)
treeaaf5480cc97ddb01e80b6498db6c60b3f8610427 /sys/arch/amd64/include/vmparam.h
parent98b4cba6a75c90bb5103f54759d0b1b7a886ed22 (diff)
Add new uvm function called uvm_map_pie() which takes align as a
parameter and returns an aligned random load address for position independent executables to use. This also adds three new vmparam.h defines to specify the maximum address, minimum address and minimum allowed alignment for uvm_map_pie() to use. The PIE address range for i386 was carefully selected to work well within the i386 W^X framework. With much help and feedback from weingart@. okay weingart@, miod@, kettenis@, drahn@
Diffstat (limited to 'sys/arch/amd64/include/vmparam.h')
-rw-r--r--sys/arch/amd64/include/vmparam.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/arch/amd64/include/vmparam.h b/sys/arch/amd64/include/vmparam.h
index 3822f13d557..fd82b226db2 100644
--- a/sys/arch/amd64/include/vmparam.h
+++ b/sys/arch/amd64/include/vmparam.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: vmparam.h,v 1.9 2008/06/24 21:24:03 deraadt Exp $ */
+/* $OpenBSD: vmparam.h,v 1.10 2008/07/18 16:40:17 kurt Exp $ */
/* $NetBSD: vmparam.h,v 1.1 2003/04/26 18:39:49 fvdl Exp $ */
/*-
@@ -96,6 +96,10 @@
#define VM_MAXUSER_ADDRESS32 0xffffc000
+/* map PIE into approximately the first quarter of user va space */
+#define VM_PIE_MIN_ADDR VM_MIN_ADDRESS
+#define VM_PIE_MAX_ADDR 0x200000000000
+
/* virtual sizes (bytes) for various kernel submaps */
#define VM_PHYS_SIZE (USRIOSIZE*PAGE_SIZE)