summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2003-10-20 05:34:10 +0000
committermarcel <marcel@FreeBSD.org>2003-10-20 05:34:10 +0000
commit87282b0dcb5127d039a406b2578faafbc83d0703 (patch)
tree3409a1506bfecdecf0c8b12f9cfaeef218a87a1e /sys
parentd681abd0f8e53a4ec310db7f6b9fe632e98652c6 (diff)
downloadFreeBSD-src-87282b0dcb5127d039a406b2578faafbc83d0703.zip
FreeBSD-src-87282b0dcb5127d039a406b2578faafbc83d0703.tar.gz
Put the RSE backing store at a fixed address. This change is triggered
by libguile that needs to know the base of the RSE backing store. We currently do not export the fixed address to userland by means of a sysctl so user code needs to hardcode it for now. This will be revisited later. The RSE backing store is now at the bottom of region 4. The memory stack is at the top of region 4. This means that the whole region is usable for the stacks, giving a 61-bit stack space. Port: lang/guile (depended of x11/gnome2)
Diffstat (limited to 'sys')
-rw-r--r--sys/ia64/include/vmparam.h2
-rw-r--r--sys/kern/kern_exec.c2
2 files changed, 3 insertions, 1 deletions
diff --git a/sys/ia64/include/vmparam.h b/sys/ia64/include/vmparam.h
index 07fd4fb..bc0f78d 100644
--- a/sys/ia64/include/vmparam.h
+++ b/sys/ia64/include/vmparam.h
@@ -144,6 +144,8 @@
#define IA64_ID_PAGE_SIZE (1<<(LOG2_ID_PAGE_SIZE))
#define IA64_ID_PAGE_MASK (IA64_ID_PAGE_SIZE-1)
+#define IA64_BACKINGSTORE IA64_RR_BASE(4)
+
/*
* Mach derived constants
*/
diff --git a/sys/kern/kern_exec.c b/sys/kern/kern_exec.c
index fde4ee4..b2ce458 100644
--- a/sys/kern/kern_exec.c
+++ b/sys/kern/kern_exec.c
@@ -868,7 +868,7 @@ exec_new_vmspace(imgp, sv)
#ifdef __ia64__
/* Allocate a new register stack */
- stack_addr = sv->sv_usrstack - 2 * maxssiz;
+ stack_addr = IA64_BACKINGSTORE;
error = vm_map_stack(map, stack_addr, (vm_size_t)maxssiz,
sv->sv_stackprot, VM_PROT_ALL, MAP_STACK_GROWS_UP);
if (error)
OpenPOWER on IntegriCloud