Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/compat/irix Use stack rlimit for the stack size, and not...
details: https://anonhg.NetBSD.org/src/rev/340c4a8d5a81
branches: trunk
changeset: 526230:340c4a8d5a81
user: manu <manu%NetBSD.org@localhost>
date: Sun Apr 28 19:42:13 2002 +0000
description:
Use stack rlimit for the stack size, and not the current stack size. This
avoids requestion 2*rlimit on second sproc call.
diffstat:
sys/compat/irix/irix_prctl.c | 14 +++++++++-----
1 files changed, 9 insertions(+), 5 deletions(-)
diffs (44 lines):
diff -r 9352db28e489 -r 340c4a8d5a81 sys/compat/irix/irix_prctl.c
--- a/sys/compat/irix/irix_prctl.c Sun Apr 28 17:56:53 2002 +0000
+++ b/sys/compat/irix/irix_prctl.c Sun Apr 28 19:42:13 2002 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: irix_prctl.c,v 1.6 2002/04/28 17:56:53 manu Exp $ */
+/* $NetBSD: irix_prctl.c,v 1.7 2002/04/28 19:42:13 manu Exp $ */
/*-
* Copyright (c) 2001-2002 The NetBSD Foundation, Inc.
@@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: irix_prctl.c,v 1.6 2002/04/28 17:56:53 manu Exp $");
+__KERNEL_RCSID(0, "$NetBSD: irix_prctl.c,v 1.7 2002/04/28 19:42:13 manu Exp $");
#include <sys/errno.h>
#include <sys/types.h>
@@ -45,6 +45,7 @@
#include <sys/signal.h>
#include <sys/systm.h>
#include <sys/exec.h>
+#include <sys/resourcevar.h>
#include <uvm/uvm_extern.h>
@@ -200,11 +201,14 @@
* Setting up child stack
*/
if (len == 0)
- len = (u_long)p->p_vmspace->vm_minsaddr
- - (u_long)p->p_vmspace->vm_maxsaddr;
- if (sp == NULL)
+ len = p->p_rlimit[RLIMIT_STACK].rlim_cur;
+ if (sp == NULL) {
sp = (caddr_t)(round_page(tf->f_regs[SP])
- IRIX_SPROC_STACK_OFFSET - len);
+ while (trunc_page((u_long)sp) >=
+ (u_long)p->p_vmspace->vm_maxsaddr)
+ sp -= IRIX_SPROC_STACK_OFFSET;
+ }
if (inh & IRIX_PR_SADDR) {
bzero(&vmc, sizeof(vmc));
Home |
Main Index |
Thread Index |
Old Index