Added sparc_solaris stuff
authorceriel <none@none>
Wed, 6 Oct 1993 17:04:49 +0000 (17:04 +0000)
committerceriel <none@none>
Wed, 6 Oct 1993 17:04:49 +0000 (17:04 +0000)
145 files changed:
mach/sparc_solaris/libsys/.distr [new file with mode: 0644]
mach/sparc_solaris/libsys/LIST [new file with mode: 0644]
mach/sparc_solaris/libsys/SYS.h [new file with mode: 0644]
mach/sparc_solaris/libsys/_alarm.s [new file with mode: 0644]
mach/sparc_solaris/libsys/_brk.s [new file with mode: 0644]
mach/sparc_solaris/libsys/_close.s [new file with mode: 0644]
mach/sparc_solaris/libsys/_creat.s [new file with mode: 0644]
mach/sparc_solaris/libsys/_dup.s [new file with mode: 0644]
mach/sparc_solaris/libsys/_dup2.s [new file with mode: 0644]
mach/sparc_solaris/libsys/_execl.c [new file with mode: 0644]
mach/sparc_solaris/libsys/_execve.s [new file with mode: 0644]
mach/sparc_solaris/libsys/_exit.s [new file with mode: 0644]
mach/sparc_solaris/libsys/_fork.s [new file with mode: 0644]
mach/sparc_solaris/libsys/_fstat.s [new file with mode: 0644]
mach/sparc_solaris/libsys/_getpid.s [new file with mode: 0644]
mach/sparc_solaris/libsys/_gtty.s [new file with mode: 0644]
mach/sparc_solaris/libsys/_ioctl.s [new file with mode: 0644]
mach/sparc_solaris/libsys/_kill.s [new file with mode: 0644]
mach/sparc_solaris/libsys/_link.s [new file with mode: 0644]
mach/sparc_solaris/libsys/_lseek.s [new file with mode: 0644]
mach/sparc_solaris/libsys/_open.s [new file with mode: 0644]
mach/sparc_solaris/libsys/_pause.s [new file with mode: 0644]
mach/sparc_solaris/libsys/_pipe.s [new file with mode: 0644]
mach/sparc_solaris/libsys/_read.s [new file with mode: 0644]
mach/sparc_solaris/libsys/_sig_catch.s [new file with mode: 0644]
mach/sparc_solaris/libsys/_signal.s [new file with mode: 0644]
mach/sparc_solaris/libsys/_stty.s [new file with mode: 0644]
mach/sparc_solaris/libsys/_times.s [new file with mode: 0644]
mach/sparc_solaris/libsys/_unlink.s [new file with mode: 0644]
mach/sparc_solaris/libsys/_wait.s [new file with mode: 0644]
mach/sparc_solaris/libsys/_write.s [new file with mode: 0644]
mach/sparc_solaris/libsys/access.s [new file with mode: 0644]
mach/sparc_solaris/libsys/acct.s [new file with mode: 0644]
mach/sparc_solaris/libsys/adjtime.s [new file with mode: 0644]
mach/sparc_solaris/libsys/alarm.s [new file with mode: 0644]
mach/sparc_solaris/libsys/brk.s [new file with mode: 0644]
mach/sparc_solaris/libsys/cerror.s [new file with mode: 0644]
mach/sparc_solaris/libsys/chdir.s [new file with mode: 0644]
mach/sparc_solaris/libsys/chmod.s [new file with mode: 0644]
mach/sparc_solaris/libsys/chown.s [new file with mode: 0644]
mach/sparc_solaris/libsys/chroot.s [new file with mode: 0644]
mach/sparc_solaris/libsys/cleanup.c [new file with mode: 0644]
mach/sparc_solaris/libsys/close.s [new file with mode: 0644]
mach/sparc_solaris/libsys/creat.s [new file with mode: 0644]
mach/sparc_solaris/libsys/dup.s [new file with mode: 0644]
mach/sparc_solaris/libsys/dup2.s [new file with mode: 0644]
mach/sparc_solaris/libsys/execl.c [new file with mode: 0644]
mach/sparc_solaris/libsys/execle.c [new file with mode: 0644]
mach/sparc_solaris/libsys/execv.c [new file with mode: 0644]
mach/sparc_solaris/libsys/execve.s [new file with mode: 0644]
mach/sparc_solaris/libsys/exit.c [new file with mode: 0644]
mach/sparc_solaris/libsys/fchdir.s [new file with mode: 0644]
mach/sparc_solaris/libsys/fchmod.s [new file with mode: 0644]
mach/sparc_solaris/libsys/fchown.s [new file with mode: 0644]
mach/sparc_solaris/libsys/fchroot.s [new file with mode: 0644]
mach/sparc_solaris/libsys/fcntl.s [new file with mode: 0644]
mach/sparc_solaris/libsys/fork.s [new file with mode: 0644]
mach/sparc_solaris/libsys/fstat.s [new file with mode: 0644]
mach/sparc_solaris/libsys/fsync.s [new file with mode: 0644]
mach/sparc_solaris/libsys/ftruncate.s [new file with mode: 0644]
mach/sparc_solaris/libsys/getdents.s [new file with mode: 0644]
mach/sparc_solaris/libsys/getegid.s [new file with mode: 0644]
mach/sparc_solaris/libsys/geteuid.s [new file with mode: 0644]
mach/sparc_solaris/libsys/getgid.s [new file with mode: 0644]
mach/sparc_solaris/libsys/getgroups.s [new file with mode: 0644]
mach/sparc_solaris/libsys/getitimer.s [new file with mode: 0644]
mach/sparc_solaris/libsys/getmsg.s [new file with mode: 0644]
mach/sparc_solaris/libsys/getpgid.s [new file with mode: 0644]
mach/sparc_solaris/libsys/getpgrp.s [new file with mode: 0644]
mach/sparc_solaris/libsys/getpid.s [new file with mode: 0644]
mach/sparc_solaris/libsys/getpmsg.s [new file with mode: 0644]
mach/sparc_solaris/libsys/getppid.s [new file with mode: 0644]
mach/sparc_solaris/libsys/getrlimit.s [new file with mode: 0644]
mach/sparc_solaris/libsys/getsid.s [new file with mode: 0644]
mach/sparc_solaris/libsys/gettimeofday.s [new file with mode: 0644]
mach/sparc_solaris/libsys/getuid.s [new file with mode: 0644]
mach/sparc_solaris/libsys/gtty.s [new file with mode: 0644]
mach/sparc_solaris/libsys/head_em.s [new file with mode: 0644]
mach/sparc_solaris/libsys/ioctl.s [new file with mode: 0644]
mach/sparc_solaris/libsys/kill.s [new file with mode: 0644]
mach/sparc_solaris/libsys/lchown.s [new file with mode: 0644]
mach/sparc_solaris/libsys/link.s [new file with mode: 0644]
mach/sparc_solaris/libsys/lockf.s [new file with mode: 0644]
mach/sparc_solaris/libsys/lseek.s [new file with mode: 0644]
mach/sparc_solaris/libsys/lstat.s [new file with mode: 0644]
mach/sparc_solaris/libsys/mincore.s [new file with mode: 0644]
mach/sparc_solaris/libsys/mkdir.s [new file with mode: 0644]
mach/sparc_solaris/libsys/mknod.s [new file with mode: 0644]
mach/sparc_solaris/libsys/mmap.s [new file with mode: 0644]
mach/sparc_solaris/libsys/mount.s [new file with mode: 0644]
mach/sparc_solaris/libsys/mprotect.s [new file with mode: 0644]
mach/sparc_solaris/libsys/munmap.s [new file with mode: 0644]
mach/sparc_solaris/libsys/nice.s [new file with mode: 0644]
mach/sparc_solaris/libsys/open.s [new file with mode: 0644]
mach/sparc_solaris/libsys/pause.s [new file with mode: 0644]
mach/sparc_solaris/libsys/pipe.s [new file with mode: 0644]
mach/sparc_solaris/libsys/plock.s [new file with mode: 0644]
mach/sparc_solaris/libsys/poll.s [new file with mode: 0644]
mach/sparc_solaris/libsys/pread.s [new file with mode: 0644]
mach/sparc_solaris/libsys/profil.s [new file with mode: 0644]
mach/sparc_solaris/libsys/ptrace.s [new file with mode: 0644]
mach/sparc_solaris/libsys/putmsg.s [new file with mode: 0644]
mach/sparc_solaris/libsys/putpmsg.s [new file with mode: 0644]
mach/sparc_solaris/libsys/pwrite.s [new file with mode: 0644]
mach/sparc_solaris/libsys/read.s [new file with mode: 0644]
mach/sparc_solaris/libsys/readlink.s [new file with mode: 0644]
mach/sparc_solaris/libsys/readv.s [new file with mode: 0644]
mach/sparc_solaris/libsys/rename.s [new file with mode: 0644]
mach/sparc_solaris/libsys/rmdir.s [new file with mode: 0644]
mach/sparc_solaris/libsys/setegid.s [new file with mode: 0644]
mach/sparc_solaris/libsys/seteuid.s [new file with mode: 0644]
mach/sparc_solaris/libsys/setgid.s [new file with mode: 0644]
mach/sparc_solaris/libsys/setgroups.s [new file with mode: 0644]
mach/sparc_solaris/libsys/setitimer.s [new file with mode: 0644]
mach/sparc_solaris/libsys/setpgrp.s [new file with mode: 0644]
mach/sparc_solaris/libsys/setrlimit.s [new file with mode: 0644]
mach/sparc_solaris/libsys/setsid.s [new file with mode: 0644]
mach/sparc_solaris/libsys/settimeofday.s [new file with mode: 0644]
mach/sparc_solaris/libsys/setuid.s [new file with mode: 0644]
mach/sparc_solaris/libsys/sighold.s [new file with mode: 0644]
mach/sparc_solaris/libsys/sigignore.s [new file with mode: 0644]
mach/sparc_solaris/libsys/signal.c [new file with mode: 0644]
mach/sparc_solaris/libsys/sigpause.s [new file with mode: 0644]
mach/sparc_solaris/libsys/sigrelse.s [new file with mode: 0644]
mach/sparc_solaris/libsys/sigset.s [new file with mode: 0644]
mach/sparc_solaris/libsys/stat.s [new file with mode: 0644]
mach/sparc_solaris/libsys/stime.s [new file with mode: 0644]
mach/sparc_solaris/libsys/stty.s [new file with mode: 0644]
mach/sparc_solaris/libsys/symlink.s [new file with mode: 0644]
mach/sparc_solaris/libsys/sync.s [new file with mode: 0644]
mach/sparc_solaris/libsys/tell.c [new file with mode: 0644]
mach/sparc_solaris/libsys/time.s [new file with mode: 0644]
mach/sparc_solaris/libsys/times.s [new file with mode: 0644]
mach/sparc_solaris/libsys/truncate.s [new file with mode: 0644]
mach/sparc_solaris/libsys/ulimit.s [new file with mode: 0644]
mach/sparc_solaris/libsys/umask.s [new file with mode: 0644]
mach/sparc_solaris/libsys/umount.s [new file with mode: 0644]
mach/sparc_solaris/libsys/uname.s [new file with mode: 0644]
mach/sparc_solaris/libsys/unlink.s [new file with mode: 0644]
mach/sparc_solaris/libsys/utime.s [new file with mode: 0644]
mach/sparc_solaris/libsys/utimes.s [new file with mode: 0644]
mach/sparc_solaris/libsys/vfork.s [new file with mode: 0644]
mach/sparc_solaris/libsys/wait.s [new file with mode: 0644]
mach/sparc_solaris/libsys/write.s [new file with mode: 0644]
mach/sparc_solaris/libsys/writev.s [new file with mode: 0644]

diff --git a/mach/sparc_solaris/libsys/.distr b/mach/sparc_solaris/libsys/.distr
new file mode 100644 (file)
index 0000000..0a68a58
--- /dev/null
@@ -0,0 +1,4 @@
+LIST
+libmon_s.a
+head_em.s
+SYS.h
diff --git a/mach/sparc_solaris/libsys/LIST b/mach/sparc_solaris/libsys/LIST
new file mode 100644 (file)
index 0000000..44e7273
--- /dev/null
@@ -0,0 +1,142 @@
+libmon_s.a
+_execl.c
+cleanup.c
+execl.c
+execle.c
+execv.c
+exit.c
+tell.c
+signal.c
+_alarm.s
+_brk.s
+_close.s
+_creat.s
+_dup.s
+_dup2.s
+_execve.s
+_exit.s
+_fork.s
+_fstat.s
+_getpid.s
+_gtty.s
+_ioctl.s
+_kill.s
+_link.s
+_lseek.s
+_open.s
+_pause.s
+_pipe.s
+_read.s
+_signal.s
+_sig_catch.s
+_stty.s
+_times.s
+_unlink.s
+_wait.s
+_write.s
+access.s
+acct.s
+adjtime.s
+alarm.s
+brk.s
+chdir.s
+chmod.s
+chown.s
+chroot.s
+close.s
+creat.s
+dup.s
+dup2.s
+execve.s
+fchdir.s
+fchmod.s
+fchown.s
+fchroot.s
+fcntl.s
+fork.s
+fstat.s
+fsync.s
+ftruncate.s
+getdents.s
+getegid.s
+geteuid.s
+getgid.s
+getgroups.s
+getitimer.s
+getmsg.s
+getpgid.s
+getpgrp.s
+getpid.s
+getpmsg.s
+getppid.s
+getrlimit.s
+getsid.s
+gettimeofday.s
+getuid.s
+gtty.s
+ioctl.s
+kill.s
+lchown.s
+link.s
+lockf.s
+lseek.s
+lstat.s
+mincore.s
+mkdir.s
+mknod.s
+mmap.s
+mount.s
+mprotect.s
+munmap.s
+nice.s
+open.s
+pause.s
+pipe.s
+plock.s
+poll.s
+pread.s
+profil.s
+ptrace.s
+putmsg.s
+putpmsg.s
+pwrite.s
+read.s
+readlink.s
+readv.s
+rename.s
+rmdir.s
+setegid.s
+seteuid.s
+setgid.s
+setgroups.s
+setitimer.s
+setpgrp.s
+setrlimit.s
+setsid.s
+settimeofday.s
+setuid.s
+sighold.s
+sigignore.s
+sigpause.s
+sigrelse.s
+sigset.s
+stat.s
+stime.s
+stty.s
+symlink.s
+sync.s
+time.s
+times.s
+truncate.s
+ulimit.s
+umask.s
+umount.s
+uname.s
+unlink.s
+utime.s
+utimes.s
+vfork.s
+wait.s
+write.s
+writev.s
+cerror.s
diff --git a/mach/sparc_solaris/libsys/SYS.h b/mach/sparc_solaris/libsys/SYS.h
new file mode 100644 (file)
index 0000000..d69092c
--- /dev/null
@@ -0,0 +1,119 @@
+/*
+SYS.h
+*/
+
+#ifndef SYS_H
+#define SYS_H
+
+#define SYS_call_0(x) \
+       LABEL_(x); \
+       BODY(x)
+
+#define _SYS_call_0(x) \
+       LABEL__(x); \
+       BODY(x)
+
+#define SYS_call_1(x) \
+       LABEL_(x); \
+       ENTRY1; \
+       BODY(x)
+
+#define _SYS_call_1(x) \
+       LABEL__(x); \
+       ENTRY1; \
+       BODY(x)
+
+#define SYS_call_2(x) \
+       LABEL_(x); \
+       ENTRY2; \
+       BODY(x)
+
+#define _SYS_call_2(x) \
+       LABEL__(x); \
+       ENTRY2; \
+       BODY(x)
+
+#define SYS_call_3(x) \
+       LABEL_(x); \
+       ENTRY3; \
+       BODY(x)
+
+#define _SYS_call_3(x) \
+       LABEL__(x); \
+       ENTRY3; \
+       BODY(x)
+
+#define SYS_call_4(x) \
+       LABEL_(x); \
+       ENTRY4; \
+       BODY(x)
+
+#define _SYS_call_4(x) \
+       LABEL__(x); \
+       ENTRY4; \
+       BODY(x)
+
+#define SYS_call_5(x) \
+       LABEL_(x); \
+       ENTRY5; \
+       BODY(x)
+
+#define _SYS_call_5(x) \
+       LABEL__(x); \
+       ENTRY5; \
+       BODY(x)
+
+#define SYS_call_6(x) \
+       LABEL_(x); \
+       ENTRY6; \
+       BODY(x)
+
+#define _SYS_call_6(x) \
+       LABEL__(x); \
+       ENTRY6; \
+       BODY(x)
+
+#define BODY(x) \
+       b x; \
+       nop
+
+#if __STDC__
+#define LABEL_(x) \
+       .global $ ## x; \
+       $ ## x:
+#define LABEL__(x) \
+       .global $_ ## x; \
+       $_ ## x:
+#else
+#define LABEL_(x) \
+       .global $/**/x; \
+       $/**/x:
+#define LABEL__(x) \
+       .global $_/**/x; \
+       $_/**/x:
+#endif
+
+#define ENTRY1 \
+       ld      [%l0], %o0 \
+
+#define ENTRY2 \
+       ENTRY1; \
+       ld      [%l0+4], %o1 \
+
+#define ENTRY3 \
+       ENTRY2; \
+       ld      [%l0+8], %o2 \
+
+#define ENTRY4 \
+       ENTRY3; \
+       ld      [%l0+12], %o3 \
+
+#define ENTRY5 \
+       ENTRY4; \
+       ld      [%l0+16], %o4 \
+
+#define ENTRY6 \
+       ENTRY5; \
+       ld      [%l0+20], %o5 \
+
+#endif /* SYS_H */
diff --git a/mach/sparc_solaris/libsys/_alarm.s b/mach/sparc_solaris/libsys/_alarm.s
new file mode 100644 (file)
index 0000000..cabcd34
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+_SYS_call_1(alarm)
diff --git a/mach/sparc_solaris/libsys/_brk.s b/mach/sparc_solaris/libsys/_brk.s
new file mode 100644 (file)
index 0000000..aee44f7
--- /dev/null
@@ -0,0 +1,44 @@
+#include "SYS.h"
+
+LABEL__(brk)
+       mov     %o7,%g2
+       ld      [%l0], %o0
+       inc     7, %o0
+       andn    %o0, 7, %o0
+       call    brk
+       mov     %o0, %o2
+       mov     %g2,%o7
+       tst     %o0
+       bge     0f
+       nop
+       retl
+       nop
+0:
+       set     limhp, %g1
+       st      %o2, [%g1]
+       retl
+       nop
+
+
+LABEL__(sbrk)
+       mov     %o7,%g2
+       ld      [%l0], %o0
+       inc     7, %o0
+       andn    %o0, 7, %o0
+       set     limhp, %o1
+       ld      [%o1], %o2
+       inc     7, %o2
+       andn    %o2, 7, %o3
+       add     %o3, %o0, %o0
+       call    brk
+       mov     %o0, %o4
+       mov     %g2,%o7
+       tst     %o0
+       blt     0f
+       nop
+       set     limhp, %g1
+       st      %o4, [%g1]
+       mov     %o3, %o0
+0:
+       retl
+       nop
diff --git a/mach/sparc_solaris/libsys/_close.s b/mach/sparc_solaris/libsys/_close.s
new file mode 100644 (file)
index 0000000..757e782
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+_SYS_call_1(close)
diff --git a/mach/sparc_solaris/libsys/_creat.s b/mach/sparc_solaris/libsys/_creat.s
new file mode 100644 (file)
index 0000000..49110f3
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+_SYS_call_2(creat)
diff --git a/mach/sparc_solaris/libsys/_dup.s b/mach/sparc_solaris/libsys/_dup.s
new file mode 100644 (file)
index 0000000..8cfdc7d
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+_SYS_call_1(dup)
diff --git a/mach/sparc_solaris/libsys/_dup2.s b/mach/sparc_solaris/libsys/_dup2.s
new file mode 100644 (file)
index 0000000..7d5fcf0
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+_SYS_call_2(dup2)
diff --git a/mach/sparc_solaris/libsys/_execl.c b/mach/sparc_solaris/libsys/_execl.c
new file mode 100644 (file)
index 0000000..93b8a37
--- /dev/null
@@ -0,0 +1,8 @@
+_execl(name,args)
+       char *name;
+       int args;
+{
+       extern char **environ;
+
+       _execve(name,&args,environ);
+}
diff --git a/mach/sparc_solaris/libsys/_execve.s b/mach/sparc_solaris/libsys/_execve.s
new file mode 100644 (file)
index 0000000..e44a98f
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+_SYS_call_3(execve)
diff --git a/mach/sparc_solaris/libsys/_exit.s b/mach/sparc_solaris/libsys/_exit.s
new file mode 100644 (file)
index 0000000..ab7c806
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+_SYS_call_1(exit)
diff --git a/mach/sparc_solaris/libsys/_fork.s b/mach/sparc_solaris/libsys/_fork.s
new file mode 100644 (file)
index 0000000..9d60aae
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+_SYS_call_0(fork)
diff --git a/mach/sparc_solaris/libsys/_fstat.s b/mach/sparc_solaris/libsys/_fstat.s
new file mode 100644 (file)
index 0000000..9532771
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+_SYS_call_2(fstat)
diff --git a/mach/sparc_solaris/libsys/_getpid.s b/mach/sparc_solaris/libsys/_getpid.s
new file mode 100644 (file)
index 0000000..af2d2bf
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+_SYS_call_0(getpid)
diff --git a/mach/sparc_solaris/libsys/_gtty.s b/mach/sparc_solaris/libsys/_gtty.s
new file mode 100644 (file)
index 0000000..b4738dc
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+_SYS_call_2(gtty)
diff --git a/mach/sparc_solaris/libsys/_ioctl.s b/mach/sparc_solaris/libsys/_ioctl.s
new file mode 100644 (file)
index 0000000..b91c716
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+_SYS_call_3(ioctl)
diff --git a/mach/sparc_solaris/libsys/_kill.s b/mach/sparc_solaris/libsys/_kill.s
new file mode 100644 (file)
index 0000000..49b69a1
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+_SYS_call_2(kill)
diff --git a/mach/sparc_solaris/libsys/_link.s b/mach/sparc_solaris/libsys/_link.s
new file mode 100644 (file)
index 0000000..1cceebe
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+_SYS_call_2(link)
diff --git a/mach/sparc_solaris/libsys/_lseek.s b/mach/sparc_solaris/libsys/_lseek.s
new file mode 100644 (file)
index 0000000..617f2b5
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+_SYS_call_3(lseek)
diff --git a/mach/sparc_solaris/libsys/_open.s b/mach/sparc_solaris/libsys/_open.s
new file mode 100644 (file)
index 0000000..ba2eba1
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+_SYS_call_3(open)
diff --git a/mach/sparc_solaris/libsys/_pause.s b/mach/sparc_solaris/libsys/_pause.s
new file mode 100644 (file)
index 0000000..fdcd79a
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+_SYS_call_0(pause)
diff --git a/mach/sparc_solaris/libsys/_pipe.s b/mach/sparc_solaris/libsys/_pipe.s
new file mode 100644 (file)
index 0000000..a7807a8
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+_SYS_call_1(pipe)
diff --git a/mach/sparc_solaris/libsys/_read.s b/mach/sparc_solaris/libsys/_read.s
new file mode 100644 (file)
index 0000000..4af50aa
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+_SYS_call_3(read)
diff --git a/mach/sparc_solaris/libsys/_sig_catch.s b/mach/sparc_solaris/libsys/_sig_catch.s
new file mode 100644 (file)
index 0000000..b018b5f
--- /dev/null
@@ -0,0 +1,21 @@
+#include "SYS.h"
+
+LABEL__(sig_catch)
+       save    %sp, %g4, %sp
+       mov     %fp, %l0                ! get new EM frame pointer
+
+       dec     4, %l0
+       st      %i0, [%l0]              ! push signal number on EM stack
+
+       set     $_sig_funcs, %l1
+       dec     1, %i0
+       sll     %i0, 2, %l2
+       add     %l1, %l2, %l3
+       ld      [%l3], %l2              ! get signal handler into %l2
+
+       call    %l2
+       nop
+
+       restore
+       retl
+       add     %sp,%g4,%sp
diff --git a/mach/sparc_solaris/libsys/_signal.s b/mach/sparc_solaris/libsys/_signal.s
new file mode 100644 (file)
index 0000000..81ea2bf
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+_SYS_call_2(signal)
diff --git a/mach/sparc_solaris/libsys/_stty.s b/mach/sparc_solaris/libsys/_stty.s
new file mode 100644 (file)
index 0000000..0f3b6f5
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+_SYS_call_2(stty)
diff --git a/mach/sparc_solaris/libsys/_times.s b/mach/sparc_solaris/libsys/_times.s
new file mode 100644 (file)
index 0000000..63efc51
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+_SYS_call_1(times)
diff --git a/mach/sparc_solaris/libsys/_unlink.s b/mach/sparc_solaris/libsys/_unlink.s
new file mode 100644 (file)
index 0000000..d639528
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+_SYS_call_1(unlink)
diff --git a/mach/sparc_solaris/libsys/_wait.s b/mach/sparc_solaris/libsys/_wait.s
new file mode 100644 (file)
index 0000000..8c97b67
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+_SYS_call_1(wait)
diff --git a/mach/sparc_solaris/libsys/_write.s b/mach/sparc_solaris/libsys/_write.s
new file mode 100644 (file)
index 0000000..5c0e7a3
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+_SYS_call_3(write)
diff --git a/mach/sparc_solaris/libsys/access.s b/mach/sparc_solaris/libsys/access.s
new file mode 100644 (file)
index 0000000..6f31e73
--- /dev/null
@@ -0,0 +1,4 @@
+#include "SYS.h"
+
+SYS_call_2(access)
+
diff --git a/mach/sparc_solaris/libsys/acct.s b/mach/sparc_solaris/libsys/acct.s
new file mode 100644 (file)
index 0000000..c50c361
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_1(acct)
diff --git a/mach/sparc_solaris/libsys/adjtime.s b/mach/sparc_solaris/libsys/adjtime.s
new file mode 100644 (file)
index 0000000..eeba608
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_2(adjtime)
diff --git a/mach/sparc_solaris/libsys/alarm.s b/mach/sparc_solaris/libsys/alarm.s
new file mode 100644 (file)
index 0000000..c79a762
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_1(alarm)
diff --git a/mach/sparc_solaris/libsys/brk.s b/mach/sparc_solaris/libsys/brk.s
new file mode 100644 (file)
index 0000000..ce9da39
--- /dev/null
@@ -0,0 +1,44 @@
+#include "SYS.h"
+
+LABEL_(brk)
+       mov     %o7,%g2
+       ld      [%l0], %o0
+       inc     7, %o0
+       andn    %o0, 7, %o0
+       call    brk
+       mov     %o0, %o2
+       mov     %g2,%o7
+       tst     %o0
+       bge     0f
+       nop
+       retl
+       nop
+0:
+       set     limhp, %g1
+       st      %o2, [%g1]
+       retl
+       nop
+
+
+LABEL_(sbrk)
+       mov     %o7,%g2
+       ld      [%l0], %o0
+       inc     7, %o0
+       andn    %o0, 7, %o0
+       set     limhp, %o1
+       ld      [%o1], %o2
+       inc     7, %o2
+       andn    %o2, 7, %o3
+       add     %o3, %o0, %o0
+       call    brk
+       mov     %o0, %o4
+       mov     %g2,%o7
+       tst     %o0
+       blt     0f
+       nop
+       set     limhp, %g1
+       st      %o4, [%g1]
+       mov     %o3, %o0
+0:
+       retl
+       nop
diff --git a/mach/sparc_solaris/libsys/cerror.s b/mach/sparc_solaris/libsys/cerror.s
new file mode 100644 (file)
index 0000000..ad59105
--- /dev/null
@@ -0,0 +1,18 @@
+.global $errno, cerror, _cerror
+
+.type _cerror, #function
+
+.section ".text"
+cerror:
+_cerror:
+       set     $errno, %o5
+       st      %o0, [%o5]
+       set     errno, %o5
+       st      %o0, [%o5]
+       set     -1, %o0
+       retl
+       nop
+
+.section ".data"
+$errno:
+       .long   0
diff --git a/mach/sparc_solaris/libsys/chdir.s b/mach/sparc_solaris/libsys/chdir.s
new file mode 100644 (file)
index 0000000..b7023ff
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_1(chdir)
diff --git a/mach/sparc_solaris/libsys/chmod.s b/mach/sparc_solaris/libsys/chmod.s
new file mode 100644 (file)
index 0000000..849e433
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_2(chmod)
diff --git a/mach/sparc_solaris/libsys/chown.s b/mach/sparc_solaris/libsys/chown.s
new file mode 100644 (file)
index 0000000..fabd62a
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_3(chown)
diff --git a/mach/sparc_solaris/libsys/chroot.s b/mach/sparc_solaris/libsys/chroot.s
new file mode 100644 (file)
index 0000000..f090698
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_1(chroot)
diff --git a/mach/sparc_solaris/libsys/cleanup.c b/mach/sparc_solaris/libsys/cleanup.c
new file mode 100644 (file)
index 0000000..6cd9c63
--- /dev/null
@@ -0,0 +1 @@
+_cleanup() { }
diff --git a/mach/sparc_solaris/libsys/close.s b/mach/sparc_solaris/libsys/close.s
new file mode 100644 (file)
index 0000000..c726542
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_1(close)
diff --git a/mach/sparc_solaris/libsys/creat.s b/mach/sparc_solaris/libsys/creat.s
new file mode 100644 (file)
index 0000000..3798974
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_2(creat)
diff --git a/mach/sparc_solaris/libsys/dup.s b/mach/sparc_solaris/libsys/dup.s
new file mode 100644 (file)
index 0000000..26872ed
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_1(dup)
diff --git a/mach/sparc_solaris/libsys/dup2.s b/mach/sparc_solaris/libsys/dup2.s
new file mode 100644 (file)
index 0000000..1468d78
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_2(dup2)
diff --git a/mach/sparc_solaris/libsys/execl.c b/mach/sparc_solaris/libsys/execl.c
new file mode 100644 (file)
index 0000000..9989439
--- /dev/null
@@ -0,0 +1,8 @@
+execl(name,args)
+       char *name;
+       int args;
+{
+       extern char **environ;
+
+       execve(name,&args,environ);
+}
diff --git a/mach/sparc_solaris/libsys/execle.c b/mach/sparc_solaris/libsys/execle.c
new file mode 100644 (file)
index 0000000..aed0363
--- /dev/null
@@ -0,0 +1,9 @@
+execle(name,args)
+       char *name;
+       char *args;
+{
+       char **p = &args;
+       while (*p++) ;
+
+       execve(name,&args,*p);
+}
diff --git a/mach/sparc_solaris/libsys/execv.c b/mach/sparc_solaris/libsys/execv.c
new file mode 100644 (file)
index 0000000..200486f
--- /dev/null
@@ -0,0 +1,7 @@
+execv(name,args)
+       char *name;
+       char **args;
+{
+       extern char **environ;
+       execve(name,args,environ);
+}
diff --git a/mach/sparc_solaris/libsys/execve.s b/mach/sparc_solaris/libsys/execve.s
new file mode 100644 (file)
index 0000000..01ab6be
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_3(execve)
diff --git a/mach/sparc_solaris/libsys/exit.c b/mach/sparc_solaris/libsys/exit.c
new file mode 100644 (file)
index 0000000..afd54b3
--- /dev/null
@@ -0,0 +1,5 @@
+exit(n)
+{
+       _cleanup();
+       _exit(n);
+}
diff --git a/mach/sparc_solaris/libsys/fchdir.s b/mach/sparc_solaris/libsys/fchdir.s
new file mode 100644 (file)
index 0000000..6d94145
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_1(fchdir)
diff --git a/mach/sparc_solaris/libsys/fchmod.s b/mach/sparc_solaris/libsys/fchmod.s
new file mode 100644 (file)
index 0000000..e9a8605
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_2(fchmod)
diff --git a/mach/sparc_solaris/libsys/fchown.s b/mach/sparc_solaris/libsys/fchown.s
new file mode 100644 (file)
index 0000000..e7877fd
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_3(fchown)
diff --git a/mach/sparc_solaris/libsys/fchroot.s b/mach/sparc_solaris/libsys/fchroot.s
new file mode 100644 (file)
index 0000000..e3a609b
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_1(fchroot)
diff --git a/mach/sparc_solaris/libsys/fcntl.s b/mach/sparc_solaris/libsys/fcntl.s
new file mode 100644 (file)
index 0000000..c0dc408
--- /dev/null
@@ -0,0 +1,4 @@
+#include "SYS.h"
+
+SYS_call_3(fcntl)
+
diff --git a/mach/sparc_solaris/libsys/fork.s b/mach/sparc_solaris/libsys/fork.s
new file mode 100644 (file)
index 0000000..99b4d21
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_0(fork)
diff --git a/mach/sparc_solaris/libsys/fstat.s b/mach/sparc_solaris/libsys/fstat.s
new file mode 100644 (file)
index 0000000..b6d80b4
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_2(fstat)
diff --git a/mach/sparc_solaris/libsys/fsync.s b/mach/sparc_solaris/libsys/fsync.s
new file mode 100644 (file)
index 0000000..39e67ef
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_1(fsync)
diff --git a/mach/sparc_solaris/libsys/ftruncate.s b/mach/sparc_solaris/libsys/ftruncate.s
new file mode 100644 (file)
index 0000000..535165e
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_2(ftruncate)
diff --git a/mach/sparc_solaris/libsys/getdents.s b/mach/sparc_solaris/libsys/getdents.s
new file mode 100644 (file)
index 0000000..5d3309f
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_3(getdents)
diff --git a/mach/sparc_solaris/libsys/getegid.s b/mach/sparc_solaris/libsys/getegid.s
new file mode 100644 (file)
index 0000000..c994205
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_0(getegid)
diff --git a/mach/sparc_solaris/libsys/geteuid.s b/mach/sparc_solaris/libsys/geteuid.s
new file mode 100644 (file)
index 0000000..098e215
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_0(geteuid)
diff --git a/mach/sparc_solaris/libsys/getgid.s b/mach/sparc_solaris/libsys/getgid.s
new file mode 100644 (file)
index 0000000..98e4cab
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_0(getgid)
diff --git a/mach/sparc_solaris/libsys/getgroups.s b/mach/sparc_solaris/libsys/getgroups.s
new file mode 100644 (file)
index 0000000..23e1bda
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_2(getgroups)
diff --git a/mach/sparc_solaris/libsys/getitimer.s b/mach/sparc_solaris/libsys/getitimer.s
new file mode 100644 (file)
index 0000000..eb74267
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_2(getitimer)
diff --git a/mach/sparc_solaris/libsys/getmsg.s b/mach/sparc_solaris/libsys/getmsg.s
new file mode 100644 (file)
index 0000000..8a0bdf5
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_4(getmsg)
diff --git a/mach/sparc_solaris/libsys/getpgid.s b/mach/sparc_solaris/libsys/getpgid.s
new file mode 100644 (file)
index 0000000..7da3592
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_1(getpgid)
diff --git a/mach/sparc_solaris/libsys/getpgrp.s b/mach/sparc_solaris/libsys/getpgrp.s
new file mode 100644 (file)
index 0000000..e4d5ea3
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_1(getpgrp)
diff --git a/mach/sparc_solaris/libsys/getpid.s b/mach/sparc_solaris/libsys/getpid.s
new file mode 100644 (file)
index 0000000..65cce6f
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_0(getpid)
diff --git a/mach/sparc_solaris/libsys/getpmsg.s b/mach/sparc_solaris/libsys/getpmsg.s
new file mode 100644 (file)
index 0000000..944969f
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_5(getpmsg)
diff --git a/mach/sparc_solaris/libsys/getppid.s b/mach/sparc_solaris/libsys/getppid.s
new file mode 100644 (file)
index 0000000..92dadd4
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_1(getppid)
diff --git a/mach/sparc_solaris/libsys/getrlimit.s b/mach/sparc_solaris/libsys/getrlimit.s
new file mode 100644 (file)
index 0000000..7beed8a
--- /dev/null
@@ -0,0 +1,4 @@
+#include "SYS.h"
+
+SYS_call_2(getrlimit)
+
diff --git a/mach/sparc_solaris/libsys/getsid.s b/mach/sparc_solaris/libsys/getsid.s
new file mode 100644 (file)
index 0000000..dce82ed
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_1(getsid)
diff --git a/mach/sparc_solaris/libsys/gettimeofday.s b/mach/sparc_solaris/libsys/gettimeofday.s
new file mode 100644 (file)
index 0000000..9f59b8e
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_1(gettimeofday)
diff --git a/mach/sparc_solaris/libsys/getuid.s b/mach/sparc_solaris/libsys/getuid.s
new file mode 100644 (file)
index 0000000..4a8ca3d
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_0(getuid)
diff --git a/mach/sparc_solaris/libsys/gtty.s b/mach/sparc_solaris/libsys/gtty.s
new file mode 100644 (file)
index 0000000..138d44e
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_2(gtty)
diff --git a/mach/sparc_solaris/libsys/head_em.s b/mach/sparc_solaris/libsys/head_em.s
new file mode 100644 (file)
index 0000000..508e82e
--- /dev/null
@@ -0,0 +1,84 @@
+.global lino,filn
+.global EXIT
+.global        begtext,begdata,begbss
+.global        EARRAY,ERANGE,ESET,EIDIVZ,EHEAP,EILLINS,ECASE,EBADGTO
+.global        hol0,reghp,limhp,trpim,trppc
+.global _start
+
+! runtime startof for sparc on sun4
+
+
+LINO_AD        = 0
+FILN_AD        = 4
+
+EARRAY = 0
+ERANGE = 1
+ESET   = 2
+EIDIVZ = 6
+EHEAP  = 17
+EILLINS        = 18
+ECASE  = 20
+EBADGTO = 27
+
+       .section ".text"
+
+begtext:
+_start:
+       clr     %fp
+        ld     [%sp + 0x40], %o0
+       add     %sp, 0x44, %o1
+
+       sub     %sp, 32, %sp
+
+       sll     %o0, 0x2, %o2
+       add     %o2, 0x4, %o2
+       add     %o1, %o2, %o2
+       set     -0x100000, %g4          ! should be a few M
+       clr     %l1
+       mov     %sp, %l0
+       add     %sp, %g4, %sp
+       dec     12, %l0
+                                       ! enable divide by 0 trap and improper
+                                       ! trap
+       st      %fsr, [%l0]
+       ld      [%l0], %o3
+       set     0x09000000, %o4
+       or      %o3, %o4, %o3
+       st      %o3, [%l0]
+       ld      [%l0], %fsr
+
+       st      %o0, [%l0]
+       st      %o1, [%l0+4]
+       st      %o2, [%l0+8]
+
+       call    $_m_a_i_n
+       nop
+       dec     4, %l0
+       st      %g0, [%l0]
+EXIT:
+       call    $_exit
+       nop
+
+.type _start,#function
+.size _start,.-_start
+
+       .section ".data"
+begdata:
+       .word 0         ! may be at virtual address 0 with no problem
+hol0:
+lino:
+       .word   0       ! lino
+filn:
+       .word   0       ! filn
+reghp:
+       .word   $_end
+limhp:
+       .word   $_end
+trppc:
+       .word   0
+trpim:
+       .word   0       ! USED TO BE 2 BYTES; IS THIS RIGHT?
+
+
+       .section ".bss"
+begbss: !initialization is not needed because ALL entries are in zero space!
diff --git a/mach/sparc_solaris/libsys/ioctl.s b/mach/sparc_solaris/libsys/ioctl.s
new file mode 100644 (file)
index 0000000..14b240f
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_3(ioctl)
diff --git a/mach/sparc_solaris/libsys/kill.s b/mach/sparc_solaris/libsys/kill.s
new file mode 100644 (file)
index 0000000..8a723ad
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_2(kill)
diff --git a/mach/sparc_solaris/libsys/lchown.s b/mach/sparc_solaris/libsys/lchown.s
new file mode 100644 (file)
index 0000000..b24cc85
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_3(lchown)
diff --git a/mach/sparc_solaris/libsys/link.s b/mach/sparc_solaris/libsys/link.s
new file mode 100644 (file)
index 0000000..a7ca30a
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_2(link)
diff --git a/mach/sparc_solaris/libsys/lockf.s b/mach/sparc_solaris/libsys/lockf.s
new file mode 100644 (file)
index 0000000..545013c
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_3(lockf)
diff --git a/mach/sparc_solaris/libsys/lseek.s b/mach/sparc_solaris/libsys/lseek.s
new file mode 100644 (file)
index 0000000..e75e915
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_3(lseek)
diff --git a/mach/sparc_solaris/libsys/lstat.s b/mach/sparc_solaris/libsys/lstat.s
new file mode 100644 (file)
index 0000000..dfec6af
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_2(lstat)
diff --git a/mach/sparc_solaris/libsys/mincore.s b/mach/sparc_solaris/libsys/mincore.s
new file mode 100644 (file)
index 0000000..eca218a
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_3(mincore)
diff --git a/mach/sparc_solaris/libsys/mkdir.s b/mach/sparc_solaris/libsys/mkdir.s
new file mode 100644 (file)
index 0000000..90b1ac7
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_2(mkdir)
diff --git a/mach/sparc_solaris/libsys/mknod.s b/mach/sparc_solaris/libsys/mknod.s
new file mode 100644 (file)
index 0000000..d0fe9c8
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_3(mknod)
diff --git a/mach/sparc_solaris/libsys/mmap.s b/mach/sparc_solaris/libsys/mmap.s
new file mode 100644 (file)
index 0000000..de7c71d
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_6(mmap)
diff --git a/mach/sparc_solaris/libsys/mount.s b/mach/sparc_solaris/libsys/mount.s
new file mode 100644 (file)
index 0000000..a42aa8f
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_4(mount)
diff --git a/mach/sparc_solaris/libsys/mprotect.s b/mach/sparc_solaris/libsys/mprotect.s
new file mode 100644 (file)
index 0000000..ef0e568
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_3(mprotect)
diff --git a/mach/sparc_solaris/libsys/munmap.s b/mach/sparc_solaris/libsys/munmap.s
new file mode 100644 (file)
index 0000000..41c8a1a
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_2(munmap)
diff --git a/mach/sparc_solaris/libsys/nice.s b/mach/sparc_solaris/libsys/nice.s
new file mode 100644 (file)
index 0000000..52df77b
--- /dev/null
@@ -0,0 +1,4 @@
+#include "SYS.h"
+
+SYS_call_1(nice)
+
diff --git a/mach/sparc_solaris/libsys/open.s b/mach/sparc_solaris/libsys/open.s
new file mode 100644 (file)
index 0000000..96406ea
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_3(open)
diff --git a/mach/sparc_solaris/libsys/pause.s b/mach/sparc_solaris/libsys/pause.s
new file mode 100644 (file)
index 0000000..74e47c7
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_0(pause)
diff --git a/mach/sparc_solaris/libsys/pipe.s b/mach/sparc_solaris/libsys/pipe.s
new file mode 100644 (file)
index 0000000..eb5caa0
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_1(pipe)
diff --git a/mach/sparc_solaris/libsys/plock.s b/mach/sparc_solaris/libsys/plock.s
new file mode 100644 (file)
index 0000000..2c2ba8d
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_1(plock)
diff --git a/mach/sparc_solaris/libsys/poll.s b/mach/sparc_solaris/libsys/poll.s
new file mode 100644 (file)
index 0000000..bbeff2b
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_3(poll)
diff --git a/mach/sparc_solaris/libsys/pread.s b/mach/sparc_solaris/libsys/pread.s
new file mode 100644 (file)
index 0000000..f138fe6
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_4(pread)
diff --git a/mach/sparc_solaris/libsys/profil.s b/mach/sparc_solaris/libsys/profil.s
new file mode 100644 (file)
index 0000000..efb9f48
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_4(profil)
diff --git a/mach/sparc_solaris/libsys/ptrace.s b/mach/sparc_solaris/libsys/ptrace.s
new file mode 100644 (file)
index 0000000..53277ea
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_4(ptrace)
diff --git a/mach/sparc_solaris/libsys/putmsg.s b/mach/sparc_solaris/libsys/putmsg.s
new file mode 100644 (file)
index 0000000..be34c58
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_4(putmsg)
diff --git a/mach/sparc_solaris/libsys/putpmsg.s b/mach/sparc_solaris/libsys/putpmsg.s
new file mode 100644 (file)
index 0000000..e680638
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_5(putpmsg)
diff --git a/mach/sparc_solaris/libsys/pwrite.s b/mach/sparc_solaris/libsys/pwrite.s
new file mode 100644 (file)
index 0000000..24e02d1
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_4(pwrite)
diff --git a/mach/sparc_solaris/libsys/read.s b/mach/sparc_solaris/libsys/read.s
new file mode 100644 (file)
index 0000000..db50478
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_3(read)
diff --git a/mach/sparc_solaris/libsys/readlink.s b/mach/sparc_solaris/libsys/readlink.s
new file mode 100644 (file)
index 0000000..c4673f3
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_3(readlink)
diff --git a/mach/sparc_solaris/libsys/readv.s b/mach/sparc_solaris/libsys/readv.s
new file mode 100644 (file)
index 0000000..50ea57d
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_3(readv)
diff --git a/mach/sparc_solaris/libsys/rename.s b/mach/sparc_solaris/libsys/rename.s
new file mode 100644 (file)
index 0000000..22d7f44
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_2(rename)
diff --git a/mach/sparc_solaris/libsys/rmdir.s b/mach/sparc_solaris/libsys/rmdir.s
new file mode 100644 (file)
index 0000000..36b3c8d
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_1(rmdir)
diff --git a/mach/sparc_solaris/libsys/setegid.s b/mach/sparc_solaris/libsys/setegid.s
new file mode 100644 (file)
index 0000000..96874bd
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_1(setegid)
diff --git a/mach/sparc_solaris/libsys/seteuid.s b/mach/sparc_solaris/libsys/seteuid.s
new file mode 100644 (file)
index 0000000..16b9ae5
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_1(seteuid)
diff --git a/mach/sparc_solaris/libsys/setgid.s b/mach/sparc_solaris/libsys/setgid.s
new file mode 100644 (file)
index 0000000..9d43f6d
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_1(setgid)
diff --git a/mach/sparc_solaris/libsys/setgroups.s b/mach/sparc_solaris/libsys/setgroups.s
new file mode 100644 (file)
index 0000000..1c399c1
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_2(setgroups)
diff --git a/mach/sparc_solaris/libsys/setitimer.s b/mach/sparc_solaris/libsys/setitimer.s
new file mode 100644 (file)
index 0000000..fce43cb
--- /dev/null
@@ -0,0 +1,4 @@
+#include "SYS.h"
+
+SYS_call_3(setitimer)
+
diff --git a/mach/sparc_solaris/libsys/setpgrp.s b/mach/sparc_solaris/libsys/setpgrp.s
new file mode 100644 (file)
index 0000000..8ceb40c
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_0(setpgrp)
diff --git a/mach/sparc_solaris/libsys/setrlimit.s b/mach/sparc_solaris/libsys/setrlimit.s
new file mode 100644 (file)
index 0000000..4574182
--- /dev/null
@@ -0,0 +1,4 @@
+#include "SYS.h"
+
+SYS_call_2(setrlimit)
+
diff --git a/mach/sparc_solaris/libsys/setsid.s b/mach/sparc_solaris/libsys/setsid.s
new file mode 100644 (file)
index 0000000..944c275
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_0(setsid)
diff --git a/mach/sparc_solaris/libsys/settimeofday.s b/mach/sparc_solaris/libsys/settimeofday.s
new file mode 100644 (file)
index 0000000..048f5a6
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_1(settimeofday)
diff --git a/mach/sparc_solaris/libsys/setuid.s b/mach/sparc_solaris/libsys/setuid.s
new file mode 100644 (file)
index 0000000..b554c9e
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_1(setuid)
diff --git a/mach/sparc_solaris/libsys/sighold.s b/mach/sparc_solaris/libsys/sighold.s
new file mode 100644 (file)
index 0000000..5dcb190
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_1(sighold)
diff --git a/mach/sparc_solaris/libsys/sigignore.s b/mach/sparc_solaris/libsys/sigignore.s
new file mode 100644 (file)
index 0000000..df32977
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_1(sigignore)
diff --git a/mach/sparc_solaris/libsys/signal.c b/mach/sparc_solaris/libsys/signal.c
new file mode 100644 (file)
index 0000000..52dab9b
--- /dev/null
@@ -0,0 +1,37 @@
+#include <errno.h>
+
+extern int errno;
+
+#define MAXSIG 128
+void   (*_sig_funcs[MAXSIG])();
+void   _sig_catch();
+void   (*_signal())();
+
+void
+(*
+signal(sig, handler))()
+       void    (*handler)();
+{
+       void    (*old)(), (*retval)();
+
+       if (sig <= 0 || sig > MAXSIG) {
+               errno = EINVAL;
+               return (void (*)()) -1;
+       }
+       if ((long) handler >= 0 && (long) handler <= 2) {
+               retval = _signal(sig, handler);
+               if (retval != (void (*)()) -1) {
+                       old = _sig_funcs[sig-1];
+                       _sig_funcs[sig-1] = handler;
+                       return old;
+               }
+               return retval;
+       }
+       retval = _signal(sig, _sig_catch);
+       if (retval != (void (*)()) -1) {
+               old = _sig_funcs[sig-1];
+               _sig_funcs[sig-1] = handler;
+               return old;
+       }
+       return retval;
+}
diff --git a/mach/sparc_solaris/libsys/sigpause.s b/mach/sparc_solaris/libsys/sigpause.s
new file mode 100644 (file)
index 0000000..ac31bbb
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_1(sigpause)
diff --git a/mach/sparc_solaris/libsys/sigrelse.s b/mach/sparc_solaris/libsys/sigrelse.s
new file mode 100644 (file)
index 0000000..4647289
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_1(sigrelse)
diff --git a/mach/sparc_solaris/libsys/sigset.s b/mach/sparc_solaris/libsys/sigset.s
new file mode 100644 (file)
index 0000000..b882dd1
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_2(sigset)
diff --git a/mach/sparc_solaris/libsys/stat.s b/mach/sparc_solaris/libsys/stat.s
new file mode 100644 (file)
index 0000000..3f26d59
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_2(stat)
diff --git a/mach/sparc_solaris/libsys/stime.s b/mach/sparc_solaris/libsys/stime.s
new file mode 100644 (file)
index 0000000..72d4a5c
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_1(stime)
diff --git a/mach/sparc_solaris/libsys/stty.s b/mach/sparc_solaris/libsys/stty.s
new file mode 100644 (file)
index 0000000..ccb6b1f
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_2(stty)
diff --git a/mach/sparc_solaris/libsys/symlink.s b/mach/sparc_solaris/libsys/symlink.s
new file mode 100644 (file)
index 0000000..d310b77
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_2(symlink)
diff --git a/mach/sparc_solaris/libsys/sync.s b/mach/sparc_solaris/libsys/sync.s
new file mode 100644 (file)
index 0000000..6acbba9
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_0(sync)
diff --git a/mach/sparc_solaris/libsys/tell.c b/mach/sparc_solaris/libsys/tell.c
new file mode 100644 (file)
index 0000000..49e2a91
--- /dev/null
@@ -0,0 +1,7 @@
+long
+tell(f)
+{
+       long lseek();
+
+       return lseek(f, 0L, 1);
+}
diff --git a/mach/sparc_solaris/libsys/time.s b/mach/sparc_solaris/libsys/time.s
new file mode 100644 (file)
index 0000000..840db98
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_1(time)
diff --git a/mach/sparc_solaris/libsys/times.s b/mach/sparc_solaris/libsys/times.s
new file mode 100644 (file)
index 0000000..60f84d8
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_1(times)
diff --git a/mach/sparc_solaris/libsys/truncate.s b/mach/sparc_solaris/libsys/truncate.s
new file mode 100644 (file)
index 0000000..c8cdc47
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_2(truncate)
diff --git a/mach/sparc_solaris/libsys/ulimit.s b/mach/sparc_solaris/libsys/ulimit.s
new file mode 100644 (file)
index 0000000..e0fce72
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_2(ulimit)
diff --git a/mach/sparc_solaris/libsys/umask.s b/mach/sparc_solaris/libsys/umask.s
new file mode 100644 (file)
index 0000000..31f5105
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_1(umask)
diff --git a/mach/sparc_solaris/libsys/umount.s b/mach/sparc_solaris/libsys/umount.s
new file mode 100644 (file)
index 0000000..d0bb4bd
--- /dev/null
@@ -0,0 +1,7 @@
+#include "SYS.h"
+
+SYS_call_1(umount)
+
+LABEL_(unmount)
+ENTRY1
+BODY(umount)
diff --git a/mach/sparc_solaris/libsys/uname.s b/mach/sparc_solaris/libsys/uname.s
new file mode 100644 (file)
index 0000000..ec180e5
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_1(uname)
diff --git a/mach/sparc_solaris/libsys/unlink.s b/mach/sparc_solaris/libsys/unlink.s
new file mode 100644 (file)
index 0000000..4690d65
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_1(unlink)
diff --git a/mach/sparc_solaris/libsys/utime.s b/mach/sparc_solaris/libsys/utime.s
new file mode 100644 (file)
index 0000000..30e5e34
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_2(utime)
diff --git a/mach/sparc_solaris/libsys/utimes.s b/mach/sparc_solaris/libsys/utimes.s
new file mode 100644 (file)
index 0000000..b08b63b
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_2(utimes)
diff --git a/mach/sparc_solaris/libsys/vfork.s b/mach/sparc_solaris/libsys/vfork.s
new file mode 100644 (file)
index 0000000..a84a2b1
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_0(vfork)
diff --git a/mach/sparc_solaris/libsys/wait.s b/mach/sparc_solaris/libsys/wait.s
new file mode 100644 (file)
index 0000000..b1728bf
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_1(wait)
diff --git a/mach/sparc_solaris/libsys/write.s b/mach/sparc_solaris/libsys/write.s
new file mode 100644 (file)
index 0000000..9196564
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_3(write)
diff --git a/mach/sparc_solaris/libsys/writev.s b/mach/sparc_solaris/libsys/writev.s
new file mode 100644 (file)
index 0000000..9e7c212
--- /dev/null
@@ -0,0 +1,3 @@
+#include "SYS.h"
+
+SYS_call_3(writev)