From bab1f052779c64315e155e583ce154e8d8c9ce2f Mon Sep 17 00:00:00 2001 From: Marcel Moolenaar Date: Mon, 20 Oct 2003 05:34:10 +0000 Subject: [PATCH] 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) --- sys/ia64/include/vmparam.h | 2 ++ sys/kern/kern_exec.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/sys/ia64/include/vmparam.h b/sys/ia64/include/vmparam.h index 07fd4fbad73..bc0f78d6258 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 fde4ee48773..b2ce458aaf0 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) -- 2.45.2