Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys Support flexible process address space limits and bump k...
details: https://anonhg.NetBSD.org/src/rev/e7b68953d2c5
branches: trunk
changeset: 503821:e7b68953d2c5
user: eeh <eeh%NetBSD.org@localhost>
date: Wed Feb 14 18:21:42 2001 +0000
description:
Support flexible process address space limits and bump kernel version number.
diffstat:
sys/compat/netbsd32/netbsd32_exec_aout.c | 8 +++++++-
sys/compat/netbsd32/netbsd32_exec_elf32.c | 4 +++-
sys/conf/osrelease.sh | 4 ++--
sys/kern/kern_exec.c | 15 ++++++++++++---
sys/sys/exec.h | 4 +++-
sys/sys/param.h | 6 ++++--
6 files changed, 31 insertions(+), 10 deletions(-)
diffs (157 lines):
diff -r 274b1c76ab7b -r e7b68953d2c5 sys/compat/netbsd32/netbsd32_exec_aout.c
--- a/sys/compat/netbsd32/netbsd32_exec_aout.c Wed Feb 14 18:14:37 2001 +0000
+++ b/sys/compat/netbsd32/netbsd32_exec_aout.c Wed Feb 14 18:21:42 2001 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: netbsd32_exec_aout.c,v 1.4 2001/02/03 12:45:44 mrg Exp $ */
+/* $NetBSD: netbsd32_exec_aout.c,v 1.5 2001/02/14 18:21:43 eeh Exp $ */
/* from: NetBSD: exec_aout.c,v 1.15 1996/09/26 23:34:46 cgd Exp */
/*
@@ -137,6 +137,8 @@
epp->ep_daddr = epp->ep_taddr + execp->a_text;
epp->ep_dsize = execp->a_data + execp->a_bss;
epp->ep_entry = execp->a_entry;
+ epp->ep_vm_minaddr = VM_MIN_ADDRESS;
+ epp->ep_vm_maxaddr = VM_MAXUSER_ADDRESS32;
/*
* check if vnode is in open for writing, because we want to
@@ -188,6 +190,8 @@
epp->ep_daddr = roundup(epp->ep_taddr + execp->a_text, __LDPGSZ);
epp->ep_dsize = execp->a_data + execp->a_bss;
epp->ep_entry = execp->a_entry;
+ epp->ep_vm_minaddr = VM_MIN_ADDRESS;
+ epp->ep_vm_maxaddr = VM_MAXUSER_ADDRESS32;
/* set up command for text segment */
NEW_VMCMD(&epp->ep_vmcmds, vmcmd_map_readvn, execp->a_text,
@@ -227,6 +231,8 @@
epp->ep_daddr = epp->ep_taddr + execp->a_text;
epp->ep_dsize = execp->a_data + execp->a_bss;
epp->ep_entry = execp->a_entry;
+ epp->ep_vm_minaddr = VM_MIN_ADDRESS;
+ epp->ep_vm_maxaddr = VM_MAXUSER_ADDRESS32;
/* set up command for text and data segments */
NEW_VMCMD(&epp->ep_vmcmds, vmcmd_map_readvn,
diff -r 274b1c76ab7b -r e7b68953d2c5 sys/compat/netbsd32/netbsd32_exec_elf32.c
--- a/sys/compat/netbsd32/netbsd32_exec_elf32.c Wed Feb 14 18:14:37 2001 +0000
+++ b/sys/compat/netbsd32/netbsd32_exec_elf32.c Wed Feb 14 18:21:42 2001 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: netbsd32_exec_elf32.c,v 1.3 2001/02/11 00:00:29 eeh Exp $ */
+/* $NetBSD: netbsd32_exec_elf32.c,v 1.4 2001/02/14 18:21:44 eeh Exp $ */
/* from: NetBSD: exec_aout.c,v 1.15 1996/09/26 23:34:46 cgd Exp */
/*
@@ -82,6 +82,8 @@
free((void *)bp, M_TEMP);
}
epp->ep_flags |= EXEC_32;
+ epp->ep_vm_minaddr = VM_MIN_ADDRESS;
+ epp->ep_vm_maxaddr = USRSTACK32;
*pos = ELFDEFNNAME(NO_ADDR);
return 0;
}
diff -r 274b1c76ab7b -r e7b68953d2c5 sys/conf/osrelease.sh
--- a/sys/conf/osrelease.sh Wed Feb 14 18:14:37 2001 +0000
+++ b/sys/conf/osrelease.sh Wed Feb 14 18:21:42 2001 +0000
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# $NetBSD: osrelease.sh,v 1.64 2001/01/27 07:35:24 thorpej Exp $
+# $NetBSD: osrelease.sh,v 1.65 2001/02/14 18:21:43 eeh Exp $
#
# Copyright (c) 1997 The NetBSD Foundation, Inc.
# All rights reserved.
@@ -39,7 +39,7 @@
# Release number to use
# Also check __NetBSD_Version__ in sys/sys/param.h if you change this!
-release=1.5R
+release=1.5S
case $1 in
-s)
diff -r 274b1c76ab7b -r e7b68953d2c5 sys/kern/kern_exec.c
--- a/sys/kern/kern_exec.c Wed Feb 14 18:14:37 2001 +0000
+++ b/sys/kern/kern_exec.c Wed Feb 14 18:21:42 2001 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: kern_exec.c,v 1.135 2001/02/06 17:01:53 eeh Exp $ */
+/* $NetBSD: kern_exec.c,v 1.136 2001/02/14 18:21:43 eeh Exp $ */
/*-
* Copyright (C) 1993, 1994, 1996 Christopher G. Demetriou
@@ -230,6 +230,14 @@
epp->ep_hdrvalid = epp->ep_hdrlen - resid;
/*
+ * Set up default address space limits. Can be overridden
+ * by individual exec packages.
+ *
+ * XXX probably shoul be all done in the exec pakages.
+ */
+ epp->ep_vm_minaddr = VM_MIN_ADDRESS;
+ epp->ep_vm_maxaddr = VM_MAXUSER_ADDRESS;
+ /*
* set up the vmcmds for creation of the process
* address space
*/
@@ -453,7 +461,7 @@
* for remapping. Note that this might replace the current
* vmspace with another!
*/
- uvmspace_exec(p, VM_MIN_ADDRESS, (vaddr_t)pack.ep_minsaddr);
+ uvmspace_exec(p, pack.ep_vm_minaddr, pack.ep_vm_maxaddr);
/* Now map address space */
vm = p->p_vmspace;
@@ -533,7 +541,8 @@
/* copy out the process's ps_strings structure */
if (copyout(&arginfo, (char *)p->p_psstr, sizeof(arginfo))) {
#ifdef DEBUG
- printf("execve: ps_strings copyout failed\n");
+ printf("execve: ps_strings copyout %p->%p size %ld failed\n",
+ &arginfo, (char *)p->p_psstr, (long)sizeof(arginfo));
#endif
goto exec_abort;
}
diff -r 274b1c76ab7b -r e7b68953d2c5 sys/sys/exec.h
--- a/sys/sys/exec.h Wed Feb 14 18:14:37 2001 +0000
+++ b/sys/sys/exec.h Wed Feb 14 18:21:42 2001 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: exec.h,v 1.77 2001/01/22 06:42:31 oki Exp $ */
+/* $NetBSD: exec.h,v 1.78 2001/02/14 18:21:42 eeh Exp $ */
/*-
* Copyright (c) 1994 Christopher G. Demetriou
@@ -154,6 +154,8 @@
u_long ep_minsaddr; /* proc's min stack addr ("bottom") */
u_long ep_ssize; /* size of process's stack */
u_long ep_entry; /* process's entry point */
+ vaddr_t ep_vm_minaddr; /* bottom of process address space */
+ vaddr_t ep_vm_maxaddr; /* top of process address space */
u_int ep_flags; /* flags; see below. */
char **ep_fa; /* a fake args vector for scripts */
int ep_fd; /* a file descriptor we're holding */
diff -r 274b1c76ab7b -r e7b68953d2c5 sys/sys/param.h
--- a/sys/sys/param.h Wed Feb 14 18:14:37 2001 +0000
+++ b/sys/sys/param.h Wed Feb 14 18:21:42 2001 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: param.h,v 1.121 2001/02/05 10:42:46 chs Exp $ */
+/* $NetBSD: param.h,v 1.122 2001/02/14 18:21:42 eeh Exp $ */
/*-
* Copyright (c) 1982, 1986, 1989, 1993
@@ -63,9 +63,11 @@
* And:
* NetBSD-1.2.1 = 102000100
*
+ *
+ * Don't forget to change conf/osrelease.sh too.
*/
-#define __NetBSD_Version__ 105180000 /* NetBSD 1.5R */
+#define __NetBSD_Version__ 105190000 /* NetBSD 1.5S */
/*
* Historical NetBSD #define
Home |
Main Index |
Thread Index |
Old Index