-#include <errno.h>
#include "sys.h"
-rtt = 6
-.globl _signal
-.globl _errno
+EINVAL = 026
+.define _signal
+.extern _errno
-NSIGNALS = 0
+NSIGNALS = 024
tvect:
- jsr r0,1f; NSIGNALS=NSIGNALS+1
- jsr r0,1f; NSIGNALS=NSIGNALS+1
- jsr r0,1f; NSIGNALS=NSIGNALS+1
- jsr r0,1f; NSIGNALS=NSIGNALS+1
- jsr r0,1f; NSIGNALS=NSIGNALS+1
- jsr r0,1f; NSIGNALS=NSIGNALS+1
- jsr r0,1f; NSIGNALS=NSIGNALS+1
- jsr r0,1f; NSIGNALS=NSIGNALS+1
- jsr r0,1f; NSIGNALS=NSIGNALS+1
- jsr r0,1f; NSIGNALS=NSIGNALS+1
- jsr r0,1f; NSIGNALS=NSIGNALS+1
- jsr r0,1f; NSIGNALS=NSIGNALS+1
- jsr r0,1f; NSIGNALS=NSIGNALS+1
- jsr r0,1f; NSIGNALS=NSIGNALS+1
- jsr r0,1f; NSIGNALS=NSIGNALS+1
- jsr r0,1f; NSIGNALS=NSIGNALS+1
- jsr r0,1f; NSIGNALS=NSIGNALS+1
- jsr r0,1f; NSIGNALS=NSIGNALS+1
- jsr r0,1f; NSIGNALS=NSIGNALS+1
- jsr r0,1f; NSIGNALS=NSIGNALS+1
+ jsr r0,1f
+ jsr r0,1f
+ jsr r0,1f
+ jsr r0,1f
+ jsr r0,1f
+ jsr r0,1f
+ jsr r0,1f
+ jsr r0,1f
+ jsr r0,1f
+ jsr r0,1f
+ jsr r0,1f
+ jsr r0,1f
+ jsr r0,1f
+ jsr r0,1f
+ jsr r0,1f
+ jsr r0,1f
+ jsr r0,1f
+ jsr r0,1f
+ jsr r0,1f
+ jsr r0,1f
1:
mov r1,-(sp)
add $tvect,r1
mov r1,0f+4
1:
- sys indir; 0f
- bes 3f
+ sys indir; .data2 0f
+ bcs 3f
bit $1,r0
beq 1f
mov r0,(sp)
mov (sp)+,r5
rts pc
2:
- mov $EINVAL.,r0
+ mov $EINVAL,r0
3:
mov r0,_errno
mov $-1,r0
mov (sp)+,r5
rts pc
-.data
+.sect .data
0:
- sys signal; ..; ..
-.bss
-dvect: .=.+[NSIGNALS*2]
+ sys signal
+ .data2 0, 0
+.sect .bss
+dvect: .space [NSIGNALS*2]
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
* See the copyright notice in the ACK home directory, in the file "Copyright".
*/
-#define indir 0.
-#define exit 1.
-#define fork 2.
-#define read 3.
-#define write 4.
-#define open 5.
-#define close 6.
-#define wait 7.
-#define creat 8.
-#define link 9.
-#define unlink 10.
-#define exec 11.
-#define chdir 12.
-#define time 13.
-#define mknod 14.
-#define chmod 15.
-#define chown 16.
-#define break 17.
-#define stat 18.
-#define lseek 19.
-#define getpid 20.
-#define mount 21.
-#define umount 22.
-#define setuid 23.
-#define getuid 24.
-#define stime 25.
-#define ptrace 26.
-#define alarm 27.
-#define fstat 28.
-#define pause 29.
-#define utime 30.
-#define smdate 30.
-#define stty 31.
-#define gtty 32.
-#define access 33.
-#define nice 34.
-#define sleep 35.
-#define ftime 35.
-#define sync 36.
-#define kill 37.
-#define csw 38.
-#define setpgrp 39.
-#define dup 41.
-#define pipe 42.
-#define times 43.
-#define profil 44.
-#define getgrp 45.
-#define setgid 46.
-#define getgid 47.
-#define signal 48.
-#define rtp 49.
-#define setgrp 50.
-#define acct 51.
-#define phys 52.
-#define lock 53.
-#define ioctl 54.
-#define reboot 55.
-#define mpx 56.
-#define vfork 57.
-#define setinf 59.
-#define exece 59.
-#define local 58.
-#define umask 60.
-#define getinf 60.
-#define chroot 61.
+#define indir 0
+#define exit 1
+#define fork 2
+#define read 3
+#define write 4
+#define open 5
+#define close 6
+#define wait 7
+#define creat 010
+#define link 011
+#define unlink 012
+#define exec 013
+#define chdir 014
+#define time 015
+#define mknod 016
+#define chmod 017
+#define chown 020
+#define break 021
+#define stat 022
+#define lseek 023
+#define getpid 024
+#define mount 025
+#define umount 026
+#define setuid 027
+#define getuid 030
+#define stime 031
+#define ptrace 032
+#define alarm 033
+#define fstat 034
+#define pause 035
+#define utime 036
+#define smdate 036
+#define stty 037
+#define gtty 040
+#define access 041
+#define nice 042
+#define sleep 043
+#define ftime 043
+#define sync 044
+#define kill 045
+#define csw 046
+#define setpgrp 047
+#define dup 051
+#define pipe 052
+#define times 053
+#define profil 054
+#define getgrp 055
+#define setgid 056
+#define getgid 057
+#define signal 060
+#define rtp 061
+#define setgrp 062
+#define acct 063
+#define phys 064
+#define lock 065
+#define ioctl 066
+#define reboot 067
+#define mpx 070
+#define vfork 071
+#define setinf 073
+#define exece 073
+#define local 072
+#define umask 074
+#define getinf 074
+#define chroot 075
-#define login 1.
-#define lstat 2.
-#define submit 3.
-#define nostk 4.
-#define killbkg 5.
-#define killpg 6.
-#define renice 7.
-#define fetchi 8.
-#define ucall 9.
-#define quota 10.
-#define qfstat 11.
-#define qstat 12.
-#define gldav 14.
-#define fperr 15.
-#define vhangup 16.
-#define symlink 29.
-#define readlink 30.
+#define login 01
+#define lstat 02
+#define submit 03
+#define nostk 04
+#define killbkg 05
+#define killpg 06
+#define renice 07
+#define fetchi 010
+#define ucall 011
+#define quota 012
+#define qfstat 013
+#define qstat 014
+#define gldav 016
+#define fperr 017
+#define vhangup 020
+#define symlink 035
+#define readlink 036
-#define select 18.
-#define gethost 19.
-#define sethost 20.
-#define socket 21.
-#define connect 22.
-#define accept 23.
-#define send 24.
-#define receive 25.
-#define socketa 26.
-#define setreuid 27.
-#define setregid 28.
-#define gethstid 31.
-#define sethstid 32.
+#define select 022
+#define gethost 023
+#define sethost 024
+#define socket 025
+#define connect 026
+#define accept 027
+#define send 030
+#define receive 031
+#define socketa 032
+#define setreuid 033
+#define setregid 034
+#define gethstid 037
+#define sethstid 040
+
+.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text