This source file includes following definitions.
- osf1_sys_getrlimit
- osf1_sys_getrusage
- osf1_sys_setrlimit
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 #include <sys/param.h>
35 #include <sys/systm.h>
36 #include <sys/proc.h>
37 #include <sys/mount.h>
38 #include <sys/syscallargs.h>
39 #include <sys/resource.h>
40 #include <sys/resourcevar.h>
41
42 #include <compat/osf1/osf1.h>
43 #include <compat/osf1/osf1_syscallargs.h>
44 #include <compat/osf1/osf1_cvt.h>
45
46 int
47 osf1_sys_getrlimit(p, v, retval)
48 struct proc *p;
49 void *v;
50 register_t *retval;
51 {
52 struct osf1_sys_getrlimit_args *uap = v;
53 struct sys_getrlimit_args a;
54
55 switch (SCARG(uap, which)) {
56 case OSF1_RLIMIT_CPU:
57 SCARG(&a, which) = RLIMIT_CPU;
58 break;
59 case OSF1_RLIMIT_FSIZE:
60 SCARG(&a, which) = RLIMIT_FSIZE;
61 break;
62 case OSF1_RLIMIT_DATA:
63 SCARG(&a, which) = RLIMIT_DATA;
64 break;
65 case OSF1_RLIMIT_STACK:
66 SCARG(&a, which) = RLIMIT_STACK;
67 break;
68 case OSF1_RLIMIT_CORE:
69 SCARG(&a, which) = RLIMIT_CORE;
70 break;
71 case OSF1_RLIMIT_RSS:
72 SCARG(&a, which) = RLIMIT_RSS;
73 break;
74 case OSF1_RLIMIT_NOFILE:
75 SCARG(&a, which) = RLIMIT_NOFILE;
76 break;
77 case OSF1_RLIMIT_AS:
78 default:
79 return (EINVAL);
80 }
81
82
83 SCARG(&a, rlp) = SCARG(uap, rlp);
84
85 return sys_getrlimit(p, &a, retval);
86 }
87
88 int
89 osf1_sys_getrusage(p, v, retval)
90 struct proc *p;
91 void *v;
92 register_t *retval;
93 {
94 struct osf1_sys_getrusage_args *uap = v;
95 struct sys_getrusage_args a;
96 struct osf1_rusage osf1_rusage;
97 struct rusage netbsd_rusage;
98 caddr_t sg;
99 int error;
100
101 switch (SCARG(uap, who)) {
102 case OSF1_RUSAGE_SELF:
103 SCARG(&a, who) = RUSAGE_SELF;
104 break;
105
106 case OSF1_RUSAGE_CHILDREN:
107 SCARG(&a, who) = RUSAGE_CHILDREN;
108 break;
109
110 case OSF1_RUSAGE_THREAD:
111 default:
112 return (EINVAL);
113 }
114
115 sg = stackgap_init(p->p_emul);
116 SCARG(&a, rusage) = stackgap_alloc(&sg, sizeof netbsd_rusage);
117
118 error = sys_getrusage(p, &a, retval);
119 if (error == 0)
120 error = copyin((caddr_t)SCARG(&a, rusage),
121 (caddr_t)&netbsd_rusage, sizeof netbsd_rusage);
122 if (error == 0) {
123 osf1_cvt_rusage_from_native(&netbsd_rusage, &osf1_rusage);
124 error = copyout((caddr_t)&osf1_rusage,
125 (caddr_t)SCARG(uap, rusage), sizeof osf1_rusage);
126 }
127
128 return (error);
129 }
130
131 int
132 osf1_sys_setrlimit(p, v, retval)
133 struct proc *p;
134 void *v;
135 register_t *retval;
136 {
137 struct osf1_sys_setrlimit_args *uap = v;
138 struct sys_setrlimit_args a;
139
140 switch (SCARG(uap, which)) {
141 case OSF1_RLIMIT_CPU:
142 SCARG(&a, which) = RLIMIT_CPU;
143 break;
144 case OSF1_RLIMIT_FSIZE:
145 SCARG(&a, which) = RLIMIT_FSIZE;
146 break;
147 case OSF1_RLIMIT_DATA:
148 SCARG(&a, which) = RLIMIT_DATA;
149 break;
150 case OSF1_RLIMIT_STACK:
151 SCARG(&a, which) = RLIMIT_STACK;
152 break;
153 case OSF1_RLIMIT_CORE:
154 SCARG(&a, which) = RLIMIT_CORE;
155 break;
156 case OSF1_RLIMIT_RSS:
157 SCARG(&a, which) = RLIMIT_RSS;
158 break;
159 case OSF1_RLIMIT_NOFILE:
160 SCARG(&a, which) = RLIMIT_NOFILE;
161 break;
162 case OSF1_RLIMIT_AS:
163 default:
164 return (EINVAL);
165 }
166
167
168 SCARG(&a, rlp) = SCARG(uap, rlp);
169
170 return sys_setrlimit(p, &a, retval);
171 }