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