1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
/*-
* Copyright (c) 2013, 2015
* mirabilos <m@mirbsd.org>
*
* Provided that these terms and disclaimer and all copyright notices
* are retained or reproduced in an accompanying document, permission
* is granted to deal in this work without restriction, including un-
* limited rights to use, publicly perform, distribute, sell, modify,
* merge, give away, or sublicence.
*
* This work is provided "AS IS" and WITHOUT WARRANTY of any kind, to
* the utmost extent permitted by applicable law, neither express nor
* implied; without malicious intent or gross negligence. In no event
* may a licensor, author or contributor be held liable for indirect,
* direct, other damage, loss, or other issues arising in any way out
* of dealing in the work, even if advised of the possibility of such
* damage or existence of a defect, except proven that it results out
* of said person's immediate fault when using the work as intended.
*/
@RLIMITS_DEFNS
__RCSID("$MirOS: src/bin/mksh/rlimits.opt,v 1.4 2019/04/24 20:56:31 tg Exp $");
@RLIMITS_ITEMS
#define FN(lname,lid,lfac,lopt) (const struct limits *)(&rlimits_ ## lid),
@@
/* generic options for the ulimit builtin */
<a|
<H|
<S|
/* do not use options -H, -S or -a or change the order */
>t|RLIMIT_CPU
FN("time(cpu-seconds)", RLIMIT_CPU, 1
>f|RLIMIT_FSIZE
FN("file(blocks)", RLIMIT_FSIZE, 512
>c|RLIMIT_CORE
FN("coredump(blocks)", RLIMIT_CORE, 512
>d|RLIMIT_DATA
FN("data(KiB)", RLIMIT_DATA, 1024
>s|RLIMIT_STACK
FN("stack(KiB)", RLIMIT_STACK, 1024
>l|RLIMIT_MEMLOCK
FN("lockedmem(KiB)", RLIMIT_MEMLOCK, 1024
>n|RLIMIT_NOFILE
FN("nofiles(descriptors)", RLIMIT_NOFILE, 1
>p|RLIMIT_NPROC
FN("processes", RLIMIT_NPROC, 1
>w|RLIMIT_SWAP
FN("swap(KiB)", RLIMIT_SWAP, 1024
>T|RLIMIT_TIME
FN("humantime(seconds)", RLIMIT_TIME, 1
>V|RLIMIT_NOVMON
FN("vnodemonitors", RLIMIT_NOVMON, 1
>i|RLIMIT_SIGPENDING
FN("sigpending", RLIMIT_SIGPENDING, 1
>q|RLIMIT_MSGQUEUE
FN("msgqueue(bytes)", RLIMIT_MSGQUEUE, 1
>M|RLIMIT_AIO_MEM
FN("AIOlockedmem(KiB)", RLIMIT_AIO_MEM, 1024
>O|RLIMIT_AIO_OPS
FN("AIOoperations", RLIMIT_AIO_OPS, 1
>C|RLIMIT_TCACHE
FN("cachedthreads", RLIMIT_TCACHE, 1
>B|RLIMIT_SBSIZE
FN("sockbufsiz(KiB)", RLIMIT_SBSIZE, 1024
>P|RLIMIT_PTHREAD
FN("threadsperprocess", RLIMIT_PTHREAD, 1
>r|RLIMIT_THREADS
FN("threadsperprocess", RLIMIT_THREADS, 1
>e|RLIMIT_NICE
FN("maxnice", RLIMIT_NICE, 1
>r|RLIMIT_RTPRIO
FN("maxrtprio", RLIMIT_RTPRIO, 1
>m|ULIMIT_M_IS_RSS
FN("resident-set(KiB)", RLIMIT_RSS, 1024
>m|ULIMIT_M_IS_VMEM
FN("memory(KiB)", RLIMIT_VMEM, 1024
>v|ULIMIT_V_IS_VMEM
FN("virtual-memory(KiB)", RLIMIT_VMEM, 1024
>v|ULIMIT_V_IS_AS
FN("address-space(KiB)", RLIMIT_AS, 1024
>x|RLIMIT_LOCKS
FN("filelocks", RLIMIT_LOCKS, 1
|RLIMITS_OPTCS
|