Pristine Ack-5.5
[Ack-5.5.git] / mach / sparc / libsys / libmon_s.a
1 eÿ_alarm.c\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0È\0unsigned
2 _alarm(n)
3         unsigned n;
4 {
5         struct { long l1,l2,l3,l4; } t1,t2;
6         t1.l1 = 0;
7         t1.l2 = 0;
8         t1.l4 = 0;
9         t1.l3 = n;
10         if (_setitimer(0,&t1,&t2) < 0) return -1;
11         if (t2.l4) t2.l3++;
12         return t2.l3;
13 }
14 _brk.s\0c\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\19\ 2.global cerror, __brk, __sbrk, limhp, brk, sbrk
15
16 __brk:  
17         ld      [%l0], %o0
18 brk:    inc     7, %o0
19         andn    %o0, 7, %o0
20         mov     %o0, %o2
21         mov     0x11, %g1
22         ta      %g0
23         nop
24         bgeu    0f
25         nop
26         set     cerror, %o5
27         jmp     %o5
28         nop
29 0:
30         set     limhp, %g1
31         st      %o2, [%g1]
32         retl
33         nop
34
35
36 __sbrk: 
37         ld      [%l0], %o0
38 sbrk:   inc     7, %o0
39         andn    %o0, 7, %o0
40         set     limhp, %o1
41         ld      [%o1], %o2
42         inc     7, %o2
43         andn    %o2, 7, %o3
44         add     %o3, %o0, %o0
45         mov     %o0, %o4
46         mov     0x11, %g1
47         ta      %g0
48         nop
49         bgeu    0f
50         nop
51         set     cerror, %o5
52         jmp     %o5
53         nop
54 0:
55         set     limhp, %g1
56         st      %o4, [%g1]
57         mov     %o3, %o0
58         retl
59         nop
60 \0_close.s\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0%\0#include "SYS.h"
61
62 _SYS_call_1(close)
63  _creat.s\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0%\0#include "SYS.h"
64
65 _SYS_call_2(creat)
66  _dup.s\0s\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0#\0#include "SYS.h"
67
68 _SYS_call_1(dup)
69 )_dup2.s\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0$\0#include "SYS.h"
70
71 _SYS_call_2(dup2)
72 _execl.c\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0e\0_execl(name,args)
73         char *name;
74         int args;
75 {
76         extern char **environ;
77
78         _execve(name,&args,environ);
79 }
80  _execve.s\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0&\0#include "SYS.h"
81
82 _SYS_call_3(execve)
83 _exit.s\0s\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0S\0#include "SYS.h"
84
85 .global __exit
86 __exit:
87         ld      [%l0], %o0
88         set     SYS_exit, %g1
89         ta      %g0
90 &_fork.s\0s\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0$\0#include "SYS.h"
91
92 _SYS_call_0(fork)
93 _fstat.s\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0%\0#include "SYS.h"
94
95 _SYS_call_2(fstat)
96 i_ftime.c\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0+\ 1#include <sys/types.h>
97
98 _ftime(p)
99         struct { time_t time; unsigned short millitm;
100                  short timezone; short dstflag; } *p;
101 {
102         struct { long l1,l2; } t1,t2;
103
104         if (_gettimeofday(&t1,&t2) < 0) return -1;
105         p->time = t1.l1;
106         p->millitm = t1.l2/1000;
107         p->dstflag = t2.l2;
108         p->timezone = t2.l1;
109         return 0;
110 }
111  _getpid.s\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0&\0#include "SYS.h"
112
113 _SYS_call_0(getpid)
114 _getrusage.s\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0)\0#include "SYS.h"
115
116 _SYS_call_2(getrusage)
117  _gettimday.s\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0,\0#include "SYS.h"
118
119 _SYS_call_2(gettimeofday)
120 _gtty.c\0ay.s\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0|\0#include <sgtty.h>
121 int
122 _gtty(fildes,argp)
123         int fildes ;
124         struct sgttyb *argp ;
125 {
126         return _ioctl(fildes,0x40067408,argp) ;
127 }
128 _ioctl.s\0y.s\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0%\0#include "SYS.h"
129
130 _SYS_call_3(ioctl)
131 r_kill.s\0\0y.s\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0$\0#include "SYS.h"
132
133 _SYS_call_2(kill)
134 _link.s\0\0y.s\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0$\0#include "SYS.h"
135
136 _SYS_call_2(link)
137 _lseek.s\0y.s\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0%\0#include "SYS.h"
138
139 _SYS_call_3(lseek)
140 r_open.s\0\0y.s\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0$\0#include "SYS.h"
141
142 _SYS_call_3(open)
143 _pause.c\0y.s\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0&\0_pause() {
144         _sigpause(_sigblock());
145 }
146 _pipe.s\0\0y.s\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0{\0#include "SYS.h"
147
148 LABEL__(pipe); ENTRY1
149 LABEL(pipe)
150         mov     %o0,%o2
151         BODY1(pipe)
152         st      %o0,[%o2]
153         st      %o1,[%o2+4]
154         retl
155         clr     %o0
156
157 _read.s\0\0y.s\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0$\0#include "SYS.h"
158
159 _SYS_call_3(read)
160 _setitimer.s\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0*\0#include "SYS.h"
161
162 _SYS_call_3(setitimer)
163
164 _sigblock.s\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0(\0#include "SYS.h"
165
166 _SYS_call_3(sigblock)
167 _sigpause.s\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0(\0#include "SYS.h"
168
169 _SYS_call_1(sigpause)
170 _sigsetmask.s\0\0\0\0\0\ 2\ 2¤\ 1\0\0*\0#include "SYS.h"
171
172 _SYS_call_1(sigsetmask)
173 _sigvec.c\0k.s\0\0\0\0\0\ 2\ 2¤\ 1\0\0ª\ 2#include "syscall.h"
174 #include <errno.h>
175 struct sigvec { int (*handler)(); int mask,flags; };
176 int (*(_sigfunc[32]))();
177 extern int _sigtramp();
178 extern int errno;
179
180 sigvec(sig,vec,ovec)
181         register struct sigvec *vec;
182         struct sigvec *ovec;
183 {
184         struct sigvec tmp;
185         int (*old)();
186
187         if ((unsigned) sig >= 32) {
188                 errno = EINVAL;
189                 return -1;
190         }
191         old = _sigfunc[sig];
192         if (vec) {
193                 tmp = *vec;
194                 vec = &tmp;
195                 if (vec->handler && vec->handler != (int (*)()) 1) {
196                         _sigfunc[sig] = vec->handler;
197                         vec->handler = _sigtramp;
198                 }
199         }
200         if (_sigvec_scall(sig,vec,ovec) < 0) {
201                 _sigfunc[sig] = old;
202                 return -1;
203         }
204         if (ovec && ovec->handler == _sigtramp) {
205                 ovec->handler = old;
206         }
207         return 0;
208 }
209 _sigvecscall.s\0\0\0\0\ 2\ 2¤\ 1\0\0Q\0#include "SYS.h"
210
211 #define SYS_sigvec_scall SYS_sigvec
212
213 _SYS_call_3(sigvec_scall)
214 k_times.c\0all.s\0\0\0\0\ 2\ 2¤\ 1\0\0e\ 1#include <sys/types.h>
215
216 #define Xval(xx)        ((xx).l1*60+(xx).l2/(100000/6))
217
218 _times(bp)
219         struct { time_t l1,l2,l3,l4;} *bp;
220 {
221         struct { struct { long l1,l2; }s1,s2; long x[20]; } t;
222         if (_getrusage(0,&t) < 0) return -1;
223         bp->l1 = Xval(t.s1);
224         bp->l2 = Xval(t.s2);
225         if (_getrusage(-1,&t) < 0) return -1;
226         bp->l3 = Xval(t.s1);
227         bp->l4 = Xval(t.s2);
228         return 0;
229 }
230         _unlink.s\0ll.s\0\0\0\0\ 2\ 2¤\ 1\0\0&\0#include "SYS.h"
231
232 _SYS_call_1(unlink)
233 _wait4.s\0\0ll.s\0\0\0\0\ 2\ 2¤\ 1\0\0Ó\0#include "SYS.h"
234
235 .global __wait, __wait3
236
237 __wait:
238         mov     0, %o0
239         ld      [%l0], %o1
240         mov     0, %o2
241         b       wait4
242         mov     0, %o3
243
244 __wait3:
245         ld      [%l0+8], %o3
246         ld      [%l0+4], %o2
247         ld      [%l0], %o1
248         b       wait4
249         mov     0, %o0
250
251 _SYS_call_4(wait4)
252 n_write.s\0\0ll.s\0\0\0\0\ 2\ 2¤\ 1\0\0%\0#include "SYS.h"
253
254 _SYS_call_3(write)
255 aaccept.s\0\0ll.s\0\0\0\0\ 2\ 2¤\ 1\0\0%\0#include "SYS.h"
256
257 SYS_call_3(accept)
258 aaccess.s\0\0ll.s\0\0\0\0\ 2\ 2¤\ 1\0\0&\0#include "SYS.h"
259
260 SYS_call_2(access)
261
262 acct.s\0s\0\0ll.s\0\0\0\0\ 2\ 2¤\ 1\0\0#\0#include "SYS.h"
263
264 SYS_call_1(acct)
265 )adjtime.s\0ll.s\0\0\0\0\ 2\ 2¤\ 1\0\0&\0#include "SYS.h"
266
267 SYS_call_2(adjtime)
268 alarm.c\0s\0ll.s\0\0\0\0\ 2\ 2¤\ 1\0\0Æ\0unsigned
269 alarm(n)
270         unsigned n;
271 {
272         struct { long l1,l2,l3,l4; } t1,t2;
273         t1.l1 = 0;
274         t1.l2 = 0;
275         t1.l4 = 0;
276         t1.l3 = n;
277         if (setitimer(0,&t1,&t2) < 0) return -1;
278         if (t2.l4) t2.l3++;
279         return t2.l3;
280 }
281 bind.s\0\0s\0ll.s\0\0\0\0\ 2\ 2¤\ 1\0\0$\0#include "SYS.h"
282
283 SYS_call_3(bind)
284
285 brk.s\0\0\0s\0ll.s\0\0\0\0\ 2\ 2¤\ 1\0\09\0.global _brk, __brk
286
287 _brk:   
288         set     __brk,%o0
289         jmp     %o0
290         nop
291 lcerror.s\0\0ll.s\0\0\0\0\ 2\ 2¤\ 1\0\0~\0.global _errno
292 .global cerror
293
294 cerror:
295         set     _errno, %o5
296         st      %o0, [%o5]
297         set     -1, %o0
298         retl
299         nop
300
301 .seg    "data"
302 _errno:
303         .long   0
304
305 chdir.s\0\0\0ll.s\0\0\0\0\ 2\ 2¤\ 1\0\0$\0#include "SYS.h"
306
307 SYS_call_1(chdir)
308 chmod.s\0\0\0ll.s\0\0\0\0\ 2\ 2¤\ 1\0\0$\0#include "SYS.h"
309
310 SYS_call_2(chmod)
311 chown.s\0\0\0ll.s\0\0\0\0\ 2\ 2¤\ 1\0\0$\0#include "SYS.h"
312
313 SYS_call_3(chown)
314 chroot.s\0\0ll.s\0\0\0\0\ 2\ 2¤\ 1\0\0%\0#include "SYS.h"
315
316 SYS_call_1(chroot)
317 :cleanup.c\0ll.s\0\0\0\0\ 2\ 2¤\ 1\0\0\ f\0_cleanup() { }
318 "close.s\0c\0ll.s\0\0\0\0\ 2\ 2¤\ 1\0\0$\0#include "SYS.h"
319
320 SYS_call_1(close)
321 connect.s\0ll.s\0\0\0\0\ 2\ 2¤\ 1\0\0'\0#include "SYS.h"
322
323 SYS_call_3(connect)
324
325         creat.s\0s\0ll.s\0\0\0\0\ 2\ 2¤\ 1\0\0$\0#include "SYS.h"
326
327 SYS_call_2(creat)
328 dup.s\0s\0s\0ll.s\0\0\0\0\ 2\ 2¤\ 1\0\0"\0#include "SYS.h"
329
330 SYS_call_1(dup)
331 dup2.s\0\0s\0ll.s\0\0\0\0\ 2\ 2¤\ 1\0\0#\0#include "SYS.h"
332
333 SYS_call_2(dup2)
334
335 execl.c\0s\0ll.s\0\0\0\0\ 2\ 2¤\ 1\0\0c\0execl(name,args)
336         char *name;
337         int args;
338 {
339         extern char **environ;
340
341         execve(name,&args,environ);
342 }
343 gexecle.c\0\0ll.s\0\0\0\0\ 2\ 2¤\ 1\0\0l\0execle(name,args)
344         char *name;
345         char *args;
346 {
347         char **p = &args;
348         while (*p++) ;
349
350         execve(name,&args,*p);
351 }
352 execv.c\0\0\0ll.s\0\0\0\0\ 2\ 2¤\ 1\0\0d\0execv(name,args)
353         char *name;
354         char **args;
355 {
356         extern char **environ;
357         execve(name,args,environ);
358 }
359 execve.s\0\0ll.s\0\0\0\0\ 2\ 2¤\ 1\0\0%\0#include "SYS.h"
360
361 SYS_call_3(execve)
362 *exit.c\0s\0\0ll.s\0\0\0\0\ 2\ 2¤\ 1\0\0$\0exit(n)
363 {
364         _cleanup();
365         _exit(n);
366 }
367 fchdir.s\0\0ll.s\0\0\0\0\ 2\ 2¤\ 1\0\0%\0#include "SYS.h"
368
369 SYS_call_1(fchdir)
370 *fchmod.s\0\0ll.s\0\0\0\0\ 2\ 2¤\ 1\0\0%\0#include "SYS.h"
371
372 SYS_call_2(fchmod)
373 *fchown.s\0\0ll.s\0\0\0\0\ 2\ 2¤\ 1\0\0%\0#include "SYS.h"
374
375 SYS_call_3(fchown)
376 *fchroot.s\0ll.s\0\0\0\0\ 2\ 2¤\ 1\0\0&\0#include "SYS.h"
377
378 SYS_call_1(fchroot)
379 fcntl.s\0s\0ll.s\0\0\0\0\ 2\ 2¤\ 1\0\0%\0#include "SYS.h"
380
381 SYS_call_3(fcntl)
382
383
384 flock.s\0s\0ll.s\0\0\0\0\ 2\ 2¤\ 1\0\0$\0#include "SYS.h"
385
386 SYS_call_2(flock)
387 fork.s\0\0s\0ll.s\0\0\0\0\ 2\ 2¤\ 1\0\0a\0#include "SYS.h"
388
389 LABEL_(fork); BODY1(fork)
390         orcc    %g0, %o1, %g0
391         bne,a   1f
392         clr     %o0
393 1:
394         retl
395         nop
396
397 fstat.s\0s\0ll.s\0\0\0\0\ 2\ 2¤\ 1\0\0$\0#include "SYS.h"
398
399 SYS_call_2(fstat)
400 fstatfs.s\0ll.s\0\0\0\0\ 2\ 2¤\ 1\0\0&\0#include "SYS.h"
401
402 SYS_call_2(fstatfs)
403 fsync.s\0s\0ll.s\0\0\0\0\ 2\ 2¤\ 1\0\0$\0#include "SYS.h"
404
405 SYS_call_1(fsync)
406 ftime.c\0s\0ll.s\0\0\0\0\ 2\ 2¤\ 1\0\0)\ 1#include <sys/types.h>
407
408 ftime(p)
409         struct { time_t time; unsigned short millitm;
410                  short timezone; short dstflag; } *p;
411 {
412         struct { long l1,l2; } t1,t2;
413
414         if (gettimeofday(&t1,&t2) < 0) return -1;
415         p->time = t1.l1;
416         p->millitm = t1.l2/1000;
417         p->dstflag = t2.l2;
418         p->timezone = t2.l1;
419         return 0;
420 }
421 1ftruncate.s\0.s\0\0\0\0\ 2\ 2¤\ 1\0\0(\0#include "SYS.h"
422
423 SYS_call_2(ftruncate)
424 getdents.s\0\0.s\0\0\0\0\ 2\ 2¤\ 1\0\0'\0#include "SYS.h"
425
426 SYS_call_3(getdents)
427
428 getdirent.s\0.s\0\0\0\0\ 2\ 2¤\ 1\0\0-\0#include "SYS.h"
429
430 SYS_call_4(getdirentries)
431
432 mgetdomnam.s\0.s\0\0\0\0\ 2\ 2¤\ 1\0\0-\0#include "SYS.h"
433
434 SYS_call_2(getdomainname)
435
436 mgetdtabsiz.s\0s\0\0\0\0\ 2\ 2¤\ 1\0\0-\0#include "SYS.h"
437
438 SYS_call_0(getdtablesize)
439
440 mgetegid.s\0.s\0s\0\0\0\0\ 2\ 2¤\ 1\0\0µ\0#include <syscall.h>
441
442 .global _getegid
443 _getegid:       
444         mov     SYS_getgid, %g1
445         ta      %g0
446         bgeu    0f
447         sethi   %hi(cerror), %o5
448         or      %o5, %lo(cerror), %o5
449         jmp     %o5
450         nop
451 0:
452         mov     %o1, %o0
453         retl
454         nop
455
456 <geteuid.s\0.s\0s\0\0\0\0\ 2\ 2¤\ 1\0\0µ\0#include <syscall.h>
457
458 .global _geteuid
459 _geteuid:       
460         mov     SYS_getuid, %g1
461         ta      %g0
462         bgeu    0f
463         sethi   %hi(cerror), %o5
464         or      %o5, %lo(cerror), %o5
465         jmp     %o5
466         nop
467 0:
468         mov     %o1, %o0
469         retl
470         nop
471
472 <getgid.s\0\0.s\0s\0\0\0\0\ 2\ 2¤\ 1\0\0%\0#include "SYS.h"
473
474 SYS_call_0(getgid)
475 dgetgroups.s\0\0s\0\0\0\0\ 2\ 2¤\ 1\0\0(\0#include "SYS.h"
476
477 SYS_call_2(getgroups)
478 gethostname.s\0\0\0\0\0\ 2\ 2¤\ 1\0\0*\0#include "SYS.h"
479
480 SYS_call_2(gethostname)
481 getitimer.s\0s\0\0\0\0\0\ 2\ 2¤\ 1\0\0(\0#include "SYS.h"
482
483 SYS_call_2(getitimer)
484 getmsg.s\0.s\0s\0\0\0\0\0\ 2\ 2¤\ 1\0\0%\0#include "SYS.h"
485
486 SYS_call_4(getmsg)
487 rgetpeername.s\0\0\0\0\0\ 2\ 2¤\ 1\0\0*\0#include "SYS.h"
488
489 SYS_call_3(getpeername)
490 getpgrp.s\0e.s\0\0\0\0\0\ 2\ 2¤\ 1\0\0&\0#include "SYS.h"
491
492 SYS_call_1(getpgrp)
493 getpid.s\0\0e.s\0\0\0\0\0\ 2\ 2¤\ 1\0\0%\0#include "SYS.h"
494
495 SYS_call_0(getpid)
496
497 getpriority.s\0\0\0\0\0\ 2\ 2¤\ 1\0\0*\0#include "SYS.h"
498
499 SYS_call_2(getpriority)
500 getrlimit.s\0s\0\0\0\0\0\ 2\ 2¤\ 1\0\0)\0#include "SYS.h"
501
502 SYS_call_2(getrlimit)
503
504
505 getrusage.s\0s\0\0\0\0\0\ 2\ 2¤\ 1\0\0(\0#include "SYS.h"
506
507 SYS_call_2(getrusage)
508 getsockname.s\0\0\0\0\0\ 2\ 2¤\ 1\0\0+\0#include "SYS.h"
509
510 SYS_call_3(getsockname)
511
512 egetsockopt.s\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0)\0#include "SYS.h"
513
514 SYS_call_5(getsockopt)
515
516 gettimeofday.s\0\0\0\0\ 2\ 2¤\ 1\0\0+\0#include "SYS.h"
517
518 SYS_call_2(gettimeofday)
519 egetuid.s\0day.s\0\0\0\0\ 2\ 2¤\ 1\0\0%\0#include "SYS.h"
520
521 SYS_call_0(getuid)
522 fgtty.c\0s\0day.s\0\0\0\0\ 2\ 2¤\ 1\0\0z\0#include <sgtty.h>
523 int
524 gtty(fildes,argp)
525         int fildes ;
526         struct sgttyb *argp ;
527 {
528         return ioctl(fildes,0x40067408,argp) ;
529 }
530 ioctl.s\0\0day.s\0\0\0\0\ 2\ 2¤\ 1\0\0$\0#include "SYS.h"
531
532 SYS_call_3(ioctl)
533 kill.s\0\0\0day.s\0\0\0\0\ 2\ 2¤\ 1\0\0#\0#include "SYS.h"
534
535 SYS_call_2(kill)
536
537 killpg.s\0day.s\0\0\0\0\ 2\ 2¤\ 1\0\0%\0#include "SYS.h"
538
539 SYS_call_2(killpg)
540 glink.s\0s\0day.s\0\0\0\0\ 2\ 2¤\ 1\0\0#\0#include "SYS.h"
541
542 SYS_call_2(link)
543 )listen.s\0day.s\0\0\0\0\ 2\ 2¤\ 1\0\0%\0#include "SYS.h"
544
545 SYS_call_2(listen)
546 glockf.c\0\0day.s\0\0\0\0\ 2\ 2¤\ 1\0\0;\ 2#include <errno.h>
547 lockf(fildes, mode, size)
548         long size;
549 {
550         struct {
551                 short type, whence; long start, end; short pid;
552         } x;
553         int i = 8;
554         extern int errno;
555
556         x.type = 2;
557         x.whence = 1;
558         x.start = 0;
559         x.end = size;
560         switch(mode) {
561         case 0:
562                 x.type = 3;
563                 break;
564         case 1:
565                 i = 9;
566                 break;
567         case 2:
568                 break;
569         case 3:
570                 if (fcntl(fildes,7,&x) == -1) {
571                         return -1;
572                 }
573                 if (x.type == 3) {
574                         return 0;
575                 }
576                 errno = EACCES;
577                 return -1;
578         default:
579                 errno = EINVAL;
580                 return -1;
581         }
582         if (fcntl(fildes,i,&x) == -1) {
583                 if (errno = 79) {
584                         errno = 78;
585                 }
586                 return -1;
587         }
588 }
589 [lseek.s\0\0day.s\0\0\0\0\ 2\ 2¤\ 1\0\0$\0#include "SYS.h"
590
591 SYS_call_3(lseek)
592 lstat.s\0\0day.s\0\0\0\0\ 2\ 2¤\ 1\0\0$\0#include "SYS.h"
593
594 SYS_call_2(lstat)
595 mincore.s\0ay.s\0\0\0\0\ 2\ 2¤\ 1\0\0&\0#include "SYS.h"
596
597 SYS_call_3(mincore)
598 mkdir.s\0s\0ay.s\0\0\0\0\ 2\ 2¤\ 1\0\0$\0#include "SYS.h"
599
600 SYS_call_2(mkdir)
601 mknod.s\0s\0ay.s\0\0\0\0\ 2\ 2¤\ 1\0\0$\0#include "SYS.h"
602
603 SYS_call_3(mknod)
604 mmap.s\0\0s\0ay.s\0\0\0\0\ 2\ 2¤\ 1\0\0#\0#include "SYS.h"
605
606 SYS_call_6(mmap)
607
608 mount.s\0s\0ay.s\0\0\0\0\ 2\ 2¤\ 1\0\0$\0#include "SYS.h"
609
610 SYS_call_4(mount)
611 mprotect.s\0y.s\0\0\0\0\ 2\ 2¤\ 1\0\0'\0#include "SYS.h"
612
613 SYS_call_3(mprotect)
614 smunmap.s\0s\0y.s\0\0\0\0\ 2\ 2¤\ 1\0\0%\0#include "SYS.h"
615
616 SYS_call_2(munmap)
617 )nfssvc.s\0s\0y.s\0\0\0\0\ 2\ 2¤\ 1\0\0%\0#include "SYS.h"
618
619 SYS_call_1(nfssvc)
620 )nice.c\0s\0s\0y.s\0\0\0\0\ 2\ 2¤\ 1\0\0Ô\0nice(incr)
621 {
622         extern int errno;
623         int sav = errno;
624         int prio;
625
626         errno = 0;
627         prio = getpriority(0,0);
628         if (prio == -1 && errno) return -1;
629         if (setpriority(0,0,prio+incr) < 0) return -1;
630         errno = sav;
631         return 0;
632 }
633 open.s\0s\0s\0y.s\0\0\0\0\ 2\ 2¤\ 1\0\0#\0#include "SYS.h"
634
635 SYS_call_3(open)
636 tpause.c\0\0s\0y.s\0\0\0\0\ 2\ 2¤\ 1\0\0#\0pause() {
637         sigpause(sigblock());
638 }
639 tpipe.s\0\0\0s\0y.s\0\0\0\0\ 2\ 2¤\ 1\0\0o\0#include "SYS.h"
640
641 LABEL_(pipe); ENTRY1;
642         mov     %o0,%o2
643         BODY1(pipe)
644         st      %o0,[%o2]
645         st      %o1,[%o2+4]
646         retl
647         clr     %o0
648 =plock.c\0\0s\0y.s\0\0\0\0\ 2\ 2¤\ 1\0\0Q\0#include <errno.h>
649 plock(op)
650 {
651         extern int errno;
652
653         errno = EPERM;
654         return -1;
655 }
656 spoll.s\0\0\0s\0y.s\0\0\0\0\ 2\ 2¤\ 1\0\0#\0#include "SYS.h"
657
658 SYS_call_3(poll)
659 eprofil.s\0s\0y.s\0\0\0\0\ 2\ 2¤\ 1\0\0%\0#include "SYS.h"
660
661 SYS_call_4(profil)
662 nptrace.s\0s\0y.s\0\0\0\0\ 2\ 2¤\ 1\0\0%\0#include "SYS.h"
663
664 SYS_call_5(ptrace)
665 nputmsg.s\0s\0y.s\0\0\0\0\ 2\ 2¤\ 1\0\0%\0#include "SYS.h"
666
667 SYS_call_4(putmsg)
668 nquotactl.s\0y.s\0\0\0\0\ 2\ 2¤\ 1\0\0'\0#include "SYS.h"
669
670 SYS_call_4(quotactl)
671 iread.s\0l.s\0y.s\0\0\0\0\ 2\ 2¤\ 1\0\0#\0#include "SYS.h"
672
673 SYS_call_3(read)
674 treadlink.s\0y.s\0\0\0\0\ 2\ 2¤\ 1\0\0'\0#include "SYS.h"
675
676 SYS_call_3(readlink)
677 ireadv.s\0.s\0y.s\0\0\0\0\ 2\ 2¤\ 1\0\0$\0#include "SYS.h"
678
679 SYS_call_3(readv)
680 reboot.s\0s\0y.s\0\0\0\0\ 2\ 2¤\ 1\0\0%\0#include "SYS.h"
681
682 SYS_call_2(reboot)
683 )recv.s\0s\0s\0y.s\0\0\0\0\ 2\ 2¤\ 1\0\0#\0#include "SYS.h"
684
685 SYS_call_4(recv)
686 )recvfrom.s\0y.s\0\0\0\0\ 2\ 2¤\ 1\0\0(\0#include "SYS.h"
687
688 SYS_call_6(recvfrom)
689
690 recvmsg.s\0\0y.s\0\0\0\0\ 2\ 2¤\ 1\0\0&\0#include "SYS.h"
691
692 SYS_call_3(recvmsg)
693 rename.s\0\0\0y.s\0\0\0\0\ 2\ 2¤\ 1\0\0%\0#include "SYS.h"
694
695 SYS_call_2(rename)
696
697 rmdir.s\0\0\0\0y.s\0\0\0\0\ 2\ 2¤\ 1\0\0$\0#include "SYS.h"
698
699 SYS_call_1(rmdir)
700 sbrk.s\0\0\0\0\0y.s\0\0\0\0\ 2\ 2¤\ 1\0\0=\0.global _sbrk, __sbrk
701
702 _sbrk:  
703         set     __sbrk,%o0
704         jmp     %o0
705         nop
706 Pselect.s\0\0\0y.s\0\0\0\0\ 2\ 2¤\ 1\0\0&\0#include "SYS.h"
707
708 SYS_call_5(select)
709
710 send.s\0s\0\0\0y.s\0\0\0\0\ 2\ 2¤\ 1\0\0#\0#include "SYS.h"
711
712 SYS_call_4(send)
713 )sendmsg.s\0\0y.s\0\0\0\0\ 2\ 2¤\ 1\0\0&\0#include "SYS.h"
714
715 SYS_call_3(sendmsg)
716 sendto.s\0\0\0y.s\0\0\0\0\ 2\ 2¤\ 1\0\0&\0#include "SYS.h"
717
718 SYS_call_6(sendto)
719
720 setdomnam.s\0.s\0\0\0\0\ 2\ 2¤\ 1\0\0,\0#include "SYS.h"
721
722 SYS_call_2(setdomainname)
723 setgid.c\0.s\0.s\0\0\0\0\ 2\ 2¤\ 1\0\0%\0setgid(u)
724 {
725         return setregid(u,u);
726 }
727 nsetgroups.s\0.s\0\0\0\0\ 2\ 2¤\ 1\0\0(\0#include "SYS.h"
728
729 SYS_call_2(setgroups)
730 sethostname.s\0\0\0\0\0\ 2\ 2¤\ 1\0\0*\0#include "SYS.h"
731
732 SYS_call_2(sethostname)
733 setitimer.s\0s\0\0\0\0\0\ 2\ 2¤\ 1\0\0)\0#include "SYS.h"
734
735 SYS_call_3(setitimer)
736
737
738 setpgrp.s\0s\0s\0\0\0\0\0\ 2\ 2¤\ 1\0\0&\0#include "SYS.h"
739
740 SYS_call_2(setpgrp)
741 setpriority.s\0\0\0\0\0\ 2\ 2¤\ 1\0\0*\0#include "SYS.h"
742
743 SYS_call_3(setpriority)
744 setregid.s\0.s\0\0\0\0\0\ 2\ 2¤\ 1\0\0'\0#include "SYS.h"
745
746 SYS_call_2(setregid)
747 ysetreuid.s\0.s\0\0\0\0\0\ 2\ 2¤\ 1\0\0'\0#include "SYS.h"
748
749 SYS_call_2(setreuid)
750 ysetrlimit.s\0s\0\0\0\0\0\ 2\ 2¤\ 1\0\0)\0#include "SYS.h"
751
752 SYS_call_2(setrlimit)
753
754
755 setsockopt.s\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0)\0#include "SYS.h"
756
757 SYS_call_5(setsockopt)
758
759 settimeofday.s\0\0\0\0\ 2\ 2¤\ 1\0\0+\0#include "SYS.h"
760
761 SYS_call_2(settimeofday)
762
763 setuid.c\0day.s\0\0\0\0\ 2\ 2¤\ 1\0\0%\0setuid(u)
764 {
765         return setreuid(u,u);
766 }
767 fshutdown.s\0y.s\0\0\0\0\ 2\ 2¤\ 1\0\0'\0#include "SYS.h"
768
769 SYS_call_2(shutdown)
770 asigblock.s\0y.s\0\0\0\0\ 2\ 2¤\ 1\0\0'\0#include "SYS.h"
771
772 SYS_call_3(sigblock)
773 asignal.c\0s\0y.s\0\0\0\0\ 2\ 2¤\ 1\0\06\ 2static long masks[32];
774 static long flags[32];
775 void (*
776 signal(sig,handler))()
777         void (*handler)();
778 {
779         struct {
780                 void (*sv_handler)();
781                 long    sv_mask;
782                 long    sv_flags;
783         } v, ov;
784
785         v.sv_handler = handler;
786         v.sv_mask = masks[sig];
787         v.sv_flags = flags[sig];
788         if (sigvec(sig,&v, &ov) < 0) return (void (*)()) -1;
789         if (v.sv_mask != ov.sv_mask || v.sv_flags != ov.sv_flags) {
790                 v.sv_mask = ov.sv_mask;
791                 masks[sig] = ov.sv_mask;
792                 v.sv_flags = ov.sv_flags;
793                 flags[sig] = ov.sv_flags;
794                 if (sigvec(sig,&v,(char *) 0) < 0) return (void (*)()) -1;
795         }
796         return ov.sv_handler;
797 }
798 sigpause.s\0y.s\0\0\0\0\ 2\ 2¤\ 1\0\0'\0#include "SYS.h"
799
800 SYS_call_1(sigpause)
801 ssigsetmask.s\0s\0\0\0\0\ 2\ 2¤\ 1\0\0)\0#include "SYS.h"
802
803 SYS_call_1(sigsetmask)
804 3sigstack.s\0s\0s\0\0\0\0\ 2\ 2¤\ 1\0\0'\0#include "SYS.h"
805
806 SYS_call_2(sigstack)
807 )sigtramp.s\0s\0s\0\0\0\0\ 2\ 2¤\ 1\0\0¾\ 6.global __sigtramp
808
809 __sigtramp:
810         dec     0x10, %sp
811         st      %g1, [%sp+0x44]
812         std     %l0, [%sp+0x48]
813         save    %sp, %g4, %sp
814         st      %g0, [%sp + 64]
815         clr     %l1
816         mov     %fp, %l0
817
818         ld      [%fp + 0x58], %o2
819         set     0x1000, %l3
820         ld      [%o2 + 0x14], %o0
821         rd      %y, %l4
822         andcc   %o0, %l3, %g0
823         be      1f
824         st      %l4, [%sp + 0xe4]
825         std     %f0, [%sp + 0x60]
826         std     %f2, [%sp + 0x68]
827         std     %f4, [%sp + 0x70]
828         std     %f6, [%sp + 0x78]
829         std     %f8, [%sp + 0x80]
830         std     %f10, [%sp + 0x88]
831         std     %f12, [%sp + 0x90]
832         std     %f14, [%sp + 0x98]
833         std     %f16, [%sp + 0xa0]
834         std     %f18, [%sp + 0xa8]
835         std     %f20, [%sp + 0xb0]
836         std     %f22, [%sp + 0xb8]
837         std     %f24, [%sp + 0xc0]
838         std     %f26, [%sp + 0xc8]
839         std     %f28, [%sp + 0xd0]
840         std     %f30, [%sp + 0xd8]
841         st      %fsr, [%sp + 0xe0]
842 1:
843         std     %g2, [%sp + 0xe8]
844         std     %g4, [%sp + 0xf0]
845         std     %g6, [%sp + 0xf8]
846
847         ld      [%fp + 0x50], %o0
848         dec     4, %l0
849         st      %o0, [%l0]
850         set     __sigfunc, %g1
851         sll     %o0, 2, %g2
852         add     %g1, %g2, %g3
853         ld      [%g3], %g2
854
855         call    %g2
856         nop
857         add     %fp, %g4, %sp           ! cannot trust %sp after call
858         ld      [%fp + 0x5c], %o3
859         ld      [%fp + 0x58], %i0
860         ld      [%sp + 0xe4], %l1
861         ld      [%i0 + 0x14], %o0
862         mov     %l1, %y
863         andcc   %o0, %l3, %g0
864         be      2f
865         ldd     [%sp + 0xe8], %g2
866         ldd     [%sp + 0x60], %f0
867         ldd     [%sp + 0x68], %f2
868         ldd     [%sp + 0x70], %f4
869         ldd     [%sp + 0x78], %f6
870         ldd     [%sp + 0x80], %f8
871         ldd     [%sp + 0x88], %f10
872         ldd     [%sp + 0x90], %f12
873         ldd     [%sp + 0x98], %f14
874         ldd     [%sp + 0xa0], %f16
875         ldd     [%sp + 0xa8], %f18
876         ldd     [%sp + 0xb0], %f20
877         ldd     [%sp + 0xb8], %f22
878         ldd     [%sp + 0xc0], %f24
879         ldd     [%sp + 0xc8], %f26
880         ldd     [%sp + 0xd0], %f28
881         ldd     [%sp + 0xd8], %f30
882         ld      [%sp + 0xe0], %fsr
883 2:
884         ldd     [%sp + 0xf0], %g4
885         ldd     [%sp + 0xf8], %g6
886
887         restore %g0, 0x8b, %g1
888
889         ldd     [%sp+0x48], %l0
890         inc     0x10, %sp
891         ta      %g0
892         nop
893 sigvec.c\0s\0s\0s\0\0\0\0\ 2\ 2¤\ 1\0\0©\ 2#include "syscall.h"
894 #include <errno.h>
895 struct sigvec { int (*handler)(); int mask,flags; };
896 int (*(_sigfunc[32]))();
897 extern int _sigtramp();
898 extern int errno;
899
900 sigvec(sig,vec,ovec)
901         register struct sigvec *vec;
902         struct sigvec *ovec;
903 {
904         struct sigvec tmp;
905         int (*old)();
906
907         if ((unsigned) sig >= 32) {
908                 errno = EINVAL;
909                 return -1;
910         }
911         old = _sigfunc[sig];
912         if (vec) {
913                 tmp = *vec;
914                 vec = &tmp;
915                 if (vec->handler && vec->handler != (int (*)()) 1) {
916                         _sigfunc[sig] = vec->handler;
917                         vec->handler = _sigtramp;
918                 }
919         }
920         if (sigvec_scall(sig,vec,ovec) < 0) {
921                 _sigfunc[sig] = old;
922                 return -1;
923         }
924         if (ovec && ovec->handler == _sigtramp) {
925                 ovec->handler = old;
926         }
927         return 0;
928 }
929 ssigvec_scall.s\0\0\0\0\ 2\ 2¤\ 1\0\0P\0#include "SYS.h"
930
931 #define SYS_sigvec_scall SYS_sigvec
932
933 SYS_call_3(sigvec_scall)
934 socket.s\0all.s\0\0\0\0\ 2\ 2¤\ 1\0\0&\0#include "SYS.h"
935
936 SYS_call_3(socket)
937
938 socketpair.s\0s\0\0\0\0\ 2\ 2¤\ 1\0\0)\0#include "SYS.h"
939
940 SYS_call_4(socketpair)
941 lstat.s\0air.s\0s\0\0\0\0\ 2\ 2¤\ 1\0\0#\0#include "SYS.h"
942
943 SYS_call_2(stat)
944 pstatfs.s\0r.s\0s\0\0\0\0\ 2\ 2¤\ 1\0\0%\0#include "SYS.h"
945
946 SYS_call_2(statfs)
947 istime.c\0\0r.s\0s\0\0\0\0\ 2\ 2¤\ 1\0\0s\0stime(tp)
948         long *tp;
949 {
950         struct { long l1,l2; } x;
951
952         x.l1 = *tp;
953         x.l2 = 0;
954         return settimeofday(&x, (char *) 0);
955 }
956 )stty.c\0\0\0r.s\0s\0\0\0\0\ 2\ 2¤\ 1\0\0z\0#include <sgtty.h>
957 int stty(fildes,argp)
958         int fildes ;
959         struct sgttyb *argp ;
960 {
961         return ioctl(fildes,0x80067409,argp) ;
962 }
963 swapon.s\0r.s\0s\0\0\0\0\ 2\ 2¤\ 1\0\0%\0#include "SYS.h"
964
965 SYS_call_1(swapon)
966 gsymlink.s\0.s\0s\0\0\0\0\ 2\ 2¤\ 1\0\0&\0#include "SYS.h"
967
968 SYS_call_2(symlink)
969 sync.s\0.s\0.s\0s\0\0\0\0\ 2\ 2¤\ 1\0\0#\0#include "SYS.h"
970
971 SYS_call_0(sync)
972 ktell.c\0.s\0.s\0s\0\0\0\0\ 2\ 2¤\ 1\0\0:\0long
973 tell(f)
974 {
975         long lseek();
976
977         return lseek(f, 0L, 1);
978 }
979 time.c\0.s\0.s\0s\0\0\0\0\ 2\ 2¤\ 1\0\0\9d\0long
980 time(loc)
981         long *loc;
982 {
983         struct { long l1,l2; } t1;
984
985         if (gettimeofday(&t1, (char *) 0) < 0) {
986                 return -1;
987         }
988         if (loc) *loc = t1.l1;
989         return t1.l1;
990 }
991 otimes.c\0s\0.s\0s\0\0\0\0\ 2\ 2¤\ 1\0\0b\ 1#include <sys/types.h>
992
993 #define Xval(xx)        ((xx).l1*60+(xx).l2/(100000/6))
994
995 times(bp)
996         struct { time_t l1,l2,l3,l4;} *bp;
997 {
998         struct { struct { long l1,l2; }s1,s2; long x[20]; } t;
999         if (getrusage(0,&t) < 0) return -1;
1000         bp->l1 = Xval(t.s1);
1001         bp->l2 = Xval(t.s2);
1002         if (getrusage(-1,&t) < 0) return -1;
1003         bp->l3 = Xval(t.s1);
1004         bp->l4 = Xval(t.s2);
1005         return 0;
1006 }
1007 truncate.s\0s\0s\0\0\0\0\ 2\ 2¤\ 1\0\0'\0#include "SYS.h"
1008
1009 SYS_call_2(truncate)
1010 )ulimit.c\0s\0s\0s\0\0\0\0\ 2\ 2¤\ 1\0\0°\ 1#include <errno.h>
1011
1012 ulimit(cmd, newlimit)
1013         long newlimit;
1014 {
1015         extern int errno;
1016         struct {
1017                 long soft, hard;
1018         } x;
1019                 
1020         switch(cmd) {
1021         case 1:
1022                 if (getrlimit(1, &x) < 0) return -1;
1023                 return ((x.soft + 511) & ~511) >> 9;
1024         case 2:
1025                 x.soft = x.hard = (newlimit << 9);
1026                 if (setrlimit(1, &x) < 0) return -1;
1027                 return x.soft;
1028         case 3:
1029                 if (getrlimit(2, &x) < 0) return -1;
1030                 return x.soft;
1031         default:
1032                 errno = EINVAL;
1033                 return -1;
1034         }
1035 }
1036 umask.s\0\0s\0s\0s\0\0\0\0\ 2\ 2¤\ 1\0\0$\0#include "SYS.h"
1037
1038 SYS_call_1(umask)
1039 uname.c\0\0s\0s\0s\0\0\0\0\ 2\ 2¤\ 1\0\0+\ 2extern int errno;
1040
1041 struct utsname {
1042         char sysname[9],nodename[9],release[9],version[9],machine[9];
1043 };
1044
1045 static char def_node[] = "unknown";
1046 static char rel[] = "4.2BSD";
1047 static char ver[] = "vm";
1048 static char mach[] = "sun";
1049
1050 uname(nm)
1051         register struct utsname *nm;
1052 {
1053         register char *p = nm->nodename;
1054
1055         while (p <= nm->release) *p++ = 0;
1056         if (gethostname(nm->nodename,9) == -1) {
1057                 strcpy(nm->nodename, def_node);
1058         }
1059         strncpy(nm->sysname,nm->nodename,9);
1060         strncpy(nm->release,rel,9);
1061         strncpy(nm->version,ver,9);
1062         strncpy(nm->machine,mach,9);
1063         return 0;
1064 }
1065 0unlink.s\0s\0s\0s\0\0\0\0\ 2\ 2¤\ 1\0\0%\0#include "SYS.h"
1066
1067 SYS_call_1(unlink)
1068 cunmount.s\0\0s\0s\0\0\0\0\ 2\ 2¤\ 1\0\0R\0#include "SYS.h"
1069
1070 .globl _unmount
1071
1072 SYS_call_1(umount)
1073
1074 _unmount:       
1075         b       _umount
1076         nop
1077 utime.c\0s\0\0s\0s\0\0\0\0\ 2\ 2¤\ 1\0\0¿\0#include <sys/types.h>
1078
1079 utime(file, timep)
1080         char *file;
1081         time_t timep[2];
1082 {
1083         struct { long l1,l2,l3,l4; } x;
1084
1085         x.l2 = x.l4 = 0;
1086         x.l1 = timep[0];
1087         x.l3 = timep[1];
1088         return utimes(file,&x);
1089 }
1090 mutimes.s\0\0\0s\0s\0\0\0\0\ 2\ 2¤\ 1\0\0%\0#include "SYS.h"
1091
1092 SYS_call_2(utimes)
1093 ivadvise.s\0\0s\0s\0\0\0\0\ 2\ 2¤\ 1\0\0&\0#include "SYS.h"
1094
1095 SYS_call_1(vadvise)
1096 vfork.s\0s\0\0s\0s\0\0\0\0\ 2\ 2¤\ 1\0\0$\0#include "SYS.h"
1097
1098 SYS_call_0(vfork)
1099 wait4.s\0s\0\0s\0s\0\0\0\0\ 2\ 2¤\ 1\0\0Î\0#include "SYS.h"
1100
1101 .global _wait, _wait3
1102
1103 _wait:
1104         mov     0, %o0
1105         ld      [%l0], %o1
1106         mov     0, %o2
1107         b       wait4
1108         mov     0, %o3
1109
1110 _wait3:
1111         ld      [%l0+8], %o3
1112         ld      [%l0+4], %o2
1113         ld      [%l0], %o1
1114         b       wait4
1115         mov     0, %o0
1116
1117 SYS_call_4(wait4)
1118 write.s\0s\0\0s\0s\0\0\0\0\ 2\ 2¤\ 1\0\0$\0#include "SYS.h"
1119
1120 SYS_call_3(write)
1121 writev.s\0\0\0s\0s\0\0\0\0\ 2\ 2¤\ 1\0\0%\0#include "SYS.h"
1122
1123 SYS_call_3(writev)
1124 t