int wrapper_exit_code = 255;
+#ifndef RLIMIT_MSGQUEUE
+# define RLIMIT_MSGQUEUE 12
+#endif
+
#define NUMLIM(X) \
{ #X, required_argument, 0, 2048|X }
#define OPT_RESLIM(RES,V) \
{ #RES, required_argument, 0, 2048|RLIMIT_##V }
+#define OPT_VLIMIT(RES,V) \
+ { #RES, required_argument, 0, 2048|VC_VLIMIT_##V }
static struct option const
CMDLINE_OPTIONS[] = {
NUMLIM(20), NUMLIM(21), NUMLIM(22), NUMLIM(23),
NUMLIM(24), NUMLIM(25), NUMLIM(26), NUMLIM(27),
NUMLIM(28), NUMLIM(29), NUMLIM(30), NUMLIM(31),
- OPT_RESLIM(cpu, CPU),
- OPT_RESLIM(fsize, FSIZE),
- OPT_RESLIM(data, DATA),
- OPT_RESLIM(stack, STACK),
- OPT_RESLIM(core, CORE),
- OPT_RESLIM(rss, RSS),
- OPT_RESLIM(nproc, NPROC),
- OPT_RESLIM(nofile, NOFILE),
- OPT_RESLIM(memlock, MEMLOCK),
- OPT_RESLIM(as, AS),
- OPT_RESLIM(locks, LOCKS),
+ OPT_RESLIM(cpu, CPU),
+ OPT_RESLIM(fsize, FSIZE),
+ OPT_RESLIM(data, DATA),
+ OPT_RESLIM(stack, STACK),
+ OPT_RESLIM(core, CORE),
+ OPT_RESLIM(rss, RSS),
+ OPT_RESLIM(nproc, NPROC),
+ OPT_RESLIM(nofile, NOFILE),
+ OPT_RESLIM(memlock, MEMLOCK),
+ OPT_RESLIM(as, AS),
+ OPT_RESLIM(locks, LOCKS),
+ OPT_RESLIM(msgqueue, MSGQUEUE),
+ OPT_VLIMIT(nsock, NSOCK),
+ OPT_VLIMIT(openfd, OPENFD),
+ OPT_VLIMIT(anon, ANON),
+ OPT_VLIMIT(shmem, SHMEM),
+ OPT_VLIMIT(semary, SEMARY),
+ OPT_VLIMIT(nsems, NSEMS),
+ OPT_VLIMIT(dentry, DENTRY),
{ 0,0,0,0 }
};
#define REV_RESLIM(X) [RLIMIT_##X] = #X
+#define REV_VLIMIT(X) [VC_VLIMIT_##X] = #X
static char const * const LIMIT_STR[] = {
- REV_RESLIM(CPU), REV_RESLIM(FSIZE), REV_RESLIM(DATA), REV_RESLIM(STACK),
- REV_RESLIM(CORE), REV_RESLIM(RSS), REV_RESLIM(NPROC), REV_RESLIM(NOFILE),
- REV_RESLIM(MEMLOCK), REV_RESLIM(AS), REV_RESLIM(LOCKS)
+ REV_RESLIM(CPU), REV_RESLIM(FSIZE), REV_RESLIM(DATA), REV_RESLIM(STACK),
+ REV_RESLIM(CORE), REV_RESLIM(RSS), REV_RESLIM(NPROC), REV_RESLIM(NOFILE),
+ REV_RESLIM(MEMLOCK), REV_RESLIM(AS), REV_RESLIM(LOCKS), REV_RESLIM(MSGQUEUE),
+ REV_VLIMIT(NSOCK), REV_VLIMIT(OPENFD), REV_VLIMIT(ANON), REV_VLIMIT(SHMEM),
+ REV_VLIMIT(SEMARY), REV_VLIMIT(NSEMS), REV_VLIMIT(DENTRY),
};
static void
" --<resource>|<nr> <value>\n"
" ... set specified (MSH) limit for <resource> to <value>\n\n"
"Valid values for resource are cpu, fsize, data, stack, core, rss, nproc,\n"
- "nofile, memlock, as and locks.\n\n"
+ "nofile, memlock, as, locks, msgqueue, nsock, openfd, anon, shmem, semary,\n"
+ "nsems, and dentry.\n\n"
"Please report bugs to " PACKAGE_BUGREPORT "\n");
exit(res);
}
if (((mask.min|mask.soft|mask.hard) & bitmask)==0) continue;
if (vc_get_rlimit(ctx, i, &limit)==-1) {
perror("vc_get_rlimit()");
- //continue;
+ continue;
}
memset(buf, ' ', sizeof buf);