static int
gen_init(void)
{
-#if !defined(__minix)
struct rlimit reslimit;
-#endif /* !defined(__minix) */
struct sigaction n_hand;
struct sigaction o_hand;
-#if !defined(__minix)
/*
* Really needed to handle large archives. We can run out of memory for
* internal tables really fast when we have a whole lot of files...
(void)setrlimit(RLIMIT_RSS , &reslimit);
}
#endif
-#endif /* !defined(__minix) */
/*
* Handle posix locale
sync.c syscall.c sysuname.c truncate.c umask.c unlink.c write.c \
utimensat.c utimes.c futimes.c lutimes.c futimens.c \
_exit.c _ucontext.c environ.c __getcwd.c vfork.c sizeup.c init.c \
- getrusage.c
+ getrusage.c setrlimit.c
# Minix specific syscalls / utils.
SRCS+= cprofile.c sprofile.c stack_utils.c _mcontext.c
switch (resource)
{
- case RLIMIT_CORE:
case RLIMIT_CPU:
- case RLIMIT_DATA:
case RLIMIT_FSIZE:
+ case RLIMIT_DATA:
case RLIMIT_STACK:
+ case RLIMIT_CORE:
+ case RLIMIT_RSS:
+ case RLIMIT_MEMLOCK:
+ case RLIMIT_NPROC:
+ case RLIMIT_SBSIZE:
case RLIMIT_AS:
+ /* case RLIMIT_VMEM: Same as RLIMIT_AS */
+ case RLIMIT_NTHR:
/* no limit enforced (however architectural limits
* may apply)
*/
--- /dev/null
+#include <sys/cdefs.h>
+#include "namespace.h"
+
+#include <errno.h>
+#include <limits.h>
+#include <sys/resource.h>
+#include <unistd.h>
+
+/* Simple stub for now. */
+int setrlimit(int resource, const struct rlimit *rlp)
+{
+ rlim_t limit;
+
+ switch (resource)
+ {
+ case RLIMIT_CPU:
+ case RLIMIT_FSIZE:
+ case RLIMIT_DATA:
+ case RLIMIT_STACK:
+ case RLIMIT_CORE:
+ case RLIMIT_RSS:
+ case RLIMIT_MEMLOCK:
+ case RLIMIT_NPROC:
+ case RLIMIT_NOFILE:
+ case RLIMIT_SBSIZE:
+ case RLIMIT_AS:
+ /* case RLIMIT_VMEM: Same as RLIMIT_AS */
+ case RLIMIT_NTHR:
+ break;
+
+ default:
+ errno = EINVAL;
+ return -1;
+ }
+
+ return 0;
+}
+
{ RLIMIT_FSIZE, R_CSIZE, "filesize", },
{ RLIMIT_DATA, R_CSIZE, "datasize", },
{ RLIMIT_STACK, R_CSIZE, "stacksize", },
-#if !defined(__minix)
{ RLIMIT_RSS, R_CSIZE, "memoryuse", },
{ RLIMIT_MEMLOCK, R_CSIZE, "memorylocked", },
{ RLIMIT_NPROC, R_CNUMB, "maxproc", },
{ RLIMIT_NTHR, R_CNUMB, "maxthread", },
-#endif /* !defined(__minix) */
{ RLIMIT_NOFILE, R_CNUMB, "openfiles", },
{ RLIMIT_CORE, R_CSIZE, "coredumpsize", },
-#ifdef RLIMIT_SBSIZE
{ RLIMIT_SBSIZE, R_CSIZE, "sbsize", },
-#endif
{ -1, 0, 0 }
};
return (-1);
}
-#if !defined(__minix)
if (setrlimit(what, &rl)) {
syslog(LOG_ERR, "%s: setting resource limit %s: %m",
lc->lc_class, name);
return (-1);
}
-#endif /* !defined(__minix) */
#undef RCUR
#undef RMAX
return (0);
void
pw_init(void)
{
-#if !defined(__minix)
struct rlimit rlim;
/* Unlimited resource limits. */
/* Don't drop core (not really necessary, but GP's). */
rlim.rlim_cur = rlim.rlim_max = 0;
(void)setrlimit(RLIMIT_CORE, &rlim);
-#endif /* !defined(__minix) */
/* Turn off signals. */
(void)signal(SIGALRM, SIG_IGN);
*/
#if !defined(__minix)
(void)signal(SIGXCPU, timeoverrun);
+#endif /* !defined(__minix) */
limit.rlim_max = RLIM_INFINITY;
limit.rlim_cur = GETTY_TIMEOUT;
(void)setrlimit(RLIMIT_CPU, &limit);
-#endif /* !defined(__minix) */
/*
* The following is a work around for vhangup interactions
limit.rlim_max = RLIM_INFINITY;
limit.rlim_cur = RLIM_INFINITY;
-#if !defined(__minix)
(void)setrlimit(RLIMIT_CPU, &limit);
-#endif /* !defined(__minix) */
if (NN)
(void)execle(LO, "login", AL ? "-fp" : "-p",
NULL, env);
uint32_t ul, uh;
time_t now;
char buf[1000];
-#if !defined(__minix)
struct rlimit rl;
rl.rlim_cur = rl.rlim_max = 1 * 1024 * 1024;
ATF_CHECK(setrlimit(RLIMIT_AS, &rl) != -1);
rl.rlim_cur = rl.rlim_max = 1 * 1024 * 1024;
ATF_CHECK(setrlimit(RLIMIT_DATA, &rl) != -1);
-#endif /* !defined(__minix) */
time(&now);
srand(now);
progname++;
else
progname = argv[0];
-#if !defined(__minix) && (defined(MAKE_NATIVE) || (defined(HAVE_SETRLIMIT) && defined(RLIMIT_NOFILE)))
+#if defined(MAKE_NATIVE) || (defined(HAVE_SETRLIMIT) && defined(RLIMIT_NOFILE))
/*
* get rid of resource limit on file descriptors
*/
struct filelist filelist;
int num_input_files;
FILE *outfp = NULL;
-#if !defined(__minix)
struct rlimit rl;
-#endif /* !defined(__minix) */
struct stat st;
setlocale(LC_ALL, "");
-#if !defined(__minix)
/* bump RLIMIT_NOFILE to maximum our hard limit allows */
if (getrlimit(RLIMIT_NOFILE, &rl) < 0)
err(2, "getrlimit");
rl.rlim_cur = rl.rlim_max;
if (setrlimit(RLIMIT_NOFILE, &rl) < 0)
err(2, "setrlimit");
-#endif /* !defined(__minix) */
d_mask[REC_D = '\n'] = REC_D_F;
d_mask['\t'] = d_mask[' '] = BLANK | FLD_D;