home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include <sys/syslimits.h>
- #include <sys/time.h>
- #include <sys/resource.h>
- #include "crtlocal.h"
-
- extern int debug;
-
- int getrlimit(int resource, struct rlimit *rlp)
- {
- switch(resource)
- {
- case RLIMIT_CPU: if (debug) kprintf("Get rlimit:cpu time in milliseconds\n");
- rlp->rlim_cur = rlp->rlim_max = 360000000-60000; break;
- case RLIMIT_FSIZE: if (debug) kprintf("Get rlimit:maximum file size\n");
- rlp->rlim_cur = rlp->rlim_max = 0x7FFF0000; break;
- case RLIMIT_DATA: if (debug) kprintf("Get rlimit:data size\n");
- rlp->rlim_cur = rlp->rlim_max = 0x100000; break;
- case RLIMIT_STACK: if (debug) kprintf("Get rlimit:stack size\n");
- rlp->rlim_cur = rlp->rlim_max = 0x100000; break;
- case RLIMIT_CORE: if (debug) kprintf("Get rlimit:core file size\n");
- rlp->rlim_cur = rlp->rlim_max = 0x2000000; break;
- case RLIMIT_RSS: if (debug) kprintf("Get rlimit:resident set size\n");
- rlp->rlim_cur = rlp->rlim_max = 0x100000; break;
- case RLIMIT_MEMLOCK:if (debug) kprintf("Get rlimit:locked-in-memory address space\n");
- rlp->rlim_cur = rlp->rlim_max = 0x100000; break;
- case RLIMIT_NPROC: if (debug) kprintf("Get rlimit:number of processes\n");
- rlp->rlim_cur = rlp->rlim_max = 64; break;
- case RLIMIT_NOFILE: if (debug) kprintf("Get rlimit:number of open files\n");
- rlp->rlim_cur = rlp->rlim_max = 32; break;
- }
- return 0;
- }
-
- int setrlimit(int resource, const struct rlimit *rlp)
- {
- switch(resource)
- {
- case RLIMIT_CPU: if (debug) kprintf("Set rlimit:cpu time in milliseconds\n");
- break;
- case RLIMIT_FSIZE: if (debug) kprintf("Set rlimit:maximum file size\n");
- break;
- case RLIMIT_DATA: if (debug) kprintf("Set rlimit:data size\n");
- break;
- case RLIMIT_STACK: if (debug) kprintf("Set rlimit:stack size %X\n", rlp->rlim_cur);
- #ifdef PROTECTED
- setmaxstack(rlp->rlim_cur);
- #endif
- break;
- case RLIMIT_CORE: if (debug) kprintf("Set rlimit:core file size\n");
- break;
- case RLIMIT_RSS: if (debug) kprintf("Set rlimit:resident set size\n");
- break;
- case RLIMIT_MEMLOCK:if (debug) kprintf("Set rlimit:locked-in-memory address space\n");
- break;
- case RLIMIT_NPROC: if (debug) kprintf("Set rlimit:number of processes\n");
- break;
- case RLIMIT_NOFILE: if (debug) kprintf("Get rlimit:number of open files\n");
- break;
- }
- return 0;
- }
-