1 /*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License, Version 1.0 only
6 * (the "License"). You may not use this file except in compliance
7 * with the License.
8 *
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
13 *
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
19 *
20 * CDDL HEADER END
21 */
22 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
23 /* All Rights Reserved */
24
25
26 #ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.14 */
27 /* LINTLIBRARY */
28
29 #include "unistd.h"
30 #include "sys/types.h"
31 #include "sys/stat.h"
32 #include "errno.h"
33 #include "fcntl.h"
34 #include "stdlib.h"
35 #include "string.h"
36
37 /**
38 ** Auto-restarting system calls:
39 **/
40
41 int
42 #if defined(__STDC__)
_Access(char * s,int i)43 _Access (
44 char * s,
45 int i
46 )
47 #else
48 _Access (s, i)
49 char * s;
50 int i;
51 #endif
52 {
53 register int n;
54
55 while ((n = access(s, i)) == -1 && errno == EINTR)
56 ;
57 return (n);
58 }
59
60 int
61 #if defined(__STDC__)
_Chdir(char * s)62 _Chdir (
63 char * s
64 )
65 #else
66 _Chdir (s)
67 char * s;
68 #endif
69 {
70 register int n;
71
72 while ((n = chdir(s)) == -1 && errno == EINTR)
73 ;
74 return (n);
75 }
76
77 int
78 #if defined(__STDC__)
_Chmod(char * s,int i)79 _Chmod (
80 char * s,
81 int i
82 )
83 #else
84 _Chmod (s, i)
85 char * s;
86 int i;
87 #endif
88 {
89 register int n;
90
91 while ((n = chmod(s, i)) == -1 && errno == EINTR)
92 ;
93 return (n);
94 }
95
96 int
97 #if defined(__STDC__)
_Chown(char * s,int i,int j)98 _Chown (
99 char * s,
100 int i,
101 int j
102 )
103 #else
104 _Chown (s, i, j)
105 char * s;
106 int i;
107 int j;
108 #endif
109 {
110 register int n;
111
112 while ((n = chown(s, i, j)) == -1 && errno == EINTR)
113 ;
114 return (n);
115 }
116
117 int
118 #if defined(__STDC__)
_Close(int i)119 _Close (
120 int i
121 )
122 #else
123 _Close (i)
124 int i;
125 #endif
126 {
127 register int n;
128
129 while ((n = close(i)) == -1 && errno == EINTR)
130 ;
131 return (n);
132 }
133
134 int
135 #if defined(__STDC__)
_Creat(char * s,int i)136 _Creat (
137 char * s,
138 int i
139 )
140 #else
141 _Creat (s, i)
142 char * s;
143 int i;
144 #endif
145 {
146 register int n;
147
148 while ((n = creat(s, i)) == -1 && errno == EINTR)
149 ;
150 return (n);
151 }
152
153 int
154 #if defined(__STDC__)
_Fcntl(int i,int j,struct flock * k)155 _Fcntl (
156 int i,
157 int j,
158 struct flock * k
159 )
160 #else
161 _Fcntl (i, j, k)
162 int i;
163 int j;
164 struct flock * k;
165 #endif
166 {
167 register int n;
168
169 while ((n = fcntl(i, j, k)) == -1 && errno == EINTR)
170 ;
171 return (n);
172 }
173
174 int
175 #if defined(__STDC__)
_Fstat(int i,struct stat * st)176 _Fstat (
177 int i,
178 struct stat * st
179 )
180 #else
181 _Fstat (i, st)
182 int i;
183 struct stat * st;
184 #endif
185 {
186 register int n;
187
188 while ((n = fstat(i, st)) == -1 && errno == EINTR)
189 ;
190 return (n);
191 }
192
193 int
194 #if defined(__STDC__)
_Link(char * s1,char * s2)195 _Link (
196 char * s1,
197 char * s2
198 )
199 #else
200 _Link (s1, s2)
201 char * s1;
202 char * s2;
203 #endif
204 {
205 register int n;
206
207 while ((n = link(s1, s2)) == -1 && errno == EINTR)
208 ;
209 return (n);
210 }
211
212 int
213 #if defined(__STDC__)
_Lstat(char * s,struct stat * st)214 _Lstat (
215 char * s,
216 struct stat * st
217 )
218 #else
219 _Lstat (s, st)
220 char * s;
221 struct stat * st;
222 #endif
223 {
224 register int n;
225
226 while ((n = lstat(s, st)) == -1 && errno == EINTR)
227 ;
228 return (n);
229 }
230
231 int
232 #if defined(__STDC__)
_Mknod(char * s,int i,int j)233 _Mknod (
234 char * s,
235 int i,
236 int j
237 )
238 #else
239 _Mknod (s, i, j)
240 char * s;
241 int i;
242 int j;
243 #endif
244 {
245 register int n;
246
247 while ((n = mknod(s, i, j)) == -1 && errno == EINTR)
248 ;
249 return (n);
250 }
251
252 int
253 #if defined(__STDC__)
_Open(char * s,int i,int j)254 _Open (
255 char * s,
256 int i,
257 int j
258 )
259 #else
260 _Open (s, i, j)
261 char * s;
262 int i;
263 int j;
264 #endif
265 {
266 register int n;
267
268 while ((n = open(s, i, j)) == -1 && errno == EINTR)
269 ;
270 return (n);
271 }
272
273 int
274 #if defined(__STDC__)
_Read(int i,char * s,unsigned int j)275 _Read (
276 int i,
277 char * s,
278 unsigned int j
279 )
280 #else
281 _Read (i, s, j)
282 int i;
283 char * s;
284 unsigned int j;
285 #endif
286 {
287 register int n;
288
289 while ((n = read(i, s, j)) == -1 && errno == EINTR)
290 ;
291 return (n);
292 }
293
294 int
295 #if defined(__STDC__)
_Readlink(char * s1,char * s2,unsigned int j)296 _Readlink (
297 char * s1,
298 char * s2,
299 unsigned int j
300 )
301 #else
302 _Readlink (s1, s2, j)
303 char * s1;
304 char * s2;
305 unsigned int j;
306 #endif
307 {
308 register int n;
309
310 while ((n = readlink(s1, s2, j)) == -1 && errno == EINTR)
311 ;
312 return (n);
313 }
314
315 int
316 #if defined(__STDC__)
_Rename(char * s1,char * s2)317 _Rename (
318 char * s1,
319 char * s2
320 )
321 #else
322 _Rename (s1, s2)
323 char * s1;
324 char * s2;
325 #endif
326 {
327 register int n;
328
329 while ((n = rename(s1, s2)) == -1 && errno == EINTR)
330 ;
331 return (n);
332 }
333
334 int
335 #if defined(__STDC__)
_Stat(char * s,struct stat * st)336 _Stat (
337 char * s,
338 struct stat * st
339 )
340 #else
341 _Stat (s, st)
342 char * s;
343 struct stat * st;
344 #endif
345 {
346 register int n;
347
348 while ((n = stat(s, st)) == -1 && errno == EINTR)
349 ;
350 return (n);
351 }
352
353 int
354 #if defined(__STDC__)
_Symlink(char * s1,char * s2)355 _Symlink (
356 char * s1,
357 char * s2
358 )
359 #else
360 _Symlink (s1, s2)
361 char * s1;
362 char * s2;
363 #endif
364 {
365 register int n;
366
367 while ((n = symlink(s1, s2)) == -1 && errno == EINTR)
368 ;
369 return (n);
370 }
371
372 int
373 #if defined(__STDC__)
_Unlink(char * s)374 _Unlink (
375 char * s
376 )
377 #else
378 _Unlink (s)
379 char * s;
380 #endif
381 {
382 register int n;
383
384 while ((n = unlink(s)) == -1 && errno == EINTR)
385 ;
386 return (n);
387 }
388
389 int
390 #if defined(__STDC__)
_Wait(int * i)391 _Wait (
392 int * i
393 )
394 #else
395 _Wait (i)
396 int * i;
397 #endif
398 {
399 register int n;
400
401 while ((n = wait(i)) == -1 && errno == EINTR)
402 ;
403 return (n);
404 }
405
406 int
407 #if defined(__STDC__)
_Write(int i,char * s,unsigned int j)408 _Write (
409 int i,
410 char * s,
411 unsigned int j
412 )
413 #else
414 _Write (i, s, j)
415 int i;
416 char * s;
417 unsigned int j;
418 #endif
419 {
420 register int n;
421
422 while ((n = write(i, s, j)) == -1 && errno == EINTR)
423 ;
424 return (n);
425 }
426