summaryrefslogtreecommitdiff
path: root/sys/miscfs/procfs/procfs_linux.c
diff options
context:
space:
mode:
authorchristos <christos@NetBSD.org>2007-11-11 18:29:03 +0000
committerchristos <christos@NetBSD.org>2007-11-11 18:29:03 +0000
commitdfdca25ef773ae5ed7e055d86fc747ef8b338019 (patch)
tree2a8ecf217bedc572d0ce9d72515def91946def6c /sys/miscfs/procfs/procfs_linux.c
parent2e3ee66dc7bffa1490c836309bb61b02cfb1b5f2 (diff)
report the proper stack size on 32 bit emulations.
Diffstat (limited to 'sys/miscfs/procfs/procfs_linux.c')
-rw-r--r--sys/miscfs/procfs/procfs_linux.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/sys/miscfs/procfs/procfs_linux.c b/sys/miscfs/procfs/procfs_linux.c
index f41873e41bc..0e50e2e8690 100644
--- a/sys/miscfs/procfs/procfs_linux.c
+++ b/sys/miscfs/procfs/procfs_linux.c
@@ -1,4 +1,4 @@
-/* $NetBSD: procfs_linux.c,v 1.43 2007/11/07 00:23:37 ad Exp $ */
+/* $NetBSD: procfs_linux.c,v 1.44 2007/11/11 18:29:03 christos Exp $ */
/*
* Copyright (c) 2001 Wasabi Systems, Inc.
@@ -36,7 +36,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: procfs_linux.c,v 1.43 2007/11/07 00:23:37 ad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: procfs_linux.c,v 1.44 2007/11/11 18:29:03 christos Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -95,13 +95,24 @@ get_proc_size_info(struct lwp *l, unsigned long *stext, unsigned long *etext, un
break;
}
}
+#ifdef LINUX_USRSTACK32
+ if (strcmp(p->p_emul->e_name, "linux32") == 0 &&
+ LINUX_USRSTACK32 < USRSTACK32)
+ *sstack = (unsigned long)LINUX_USRSTACK32;
+ else
+#endif
#ifdef LINUX_USRSTACK
if (strcmp(p->p_emul->e_name, "linux") == 0 &&
LINUX_USRSTACK < USRSTACK)
- *sstack = (unsigned long) LINUX_USRSTACK;
+ *sstack = (unsigned long)LINUX_USRSTACK;
+ else
+#endif
+#ifdef USRSTACK32
+ if (strstr(p->p_emul->e_name, "32") != NULL)
+ *sstack = (unsigned long)USRSTACK32;
else
#endif
- *sstack = (unsigned long) USRSTACK;
+ *sstack = (unsigned long)USRSTACK;
/*
* jdk 1.6 compares low <= addr && addr < high