summaryrefslogtreecommitdiff
path: root/lib/libc
diff options
context:
space:
mode:
authorDale S. Rahn <rahnds@cvs.openbsd.org>1998-08-07 01:44:08 +0000
committerDale S. Rahn <rahnds@cvs.openbsd.org>1998-08-07 01:44:08 +0000
commit116326e25b984b90b87f7513fcad128ce92c6b89 (patch)
treec12c26434e565c510e292a40f91eb867dc740270 /lib/libc
parent280ca7ce21ac6473ab90f687da11974265ce1cef (diff)
Add correct handling of more systemcalls. either not implemented before
or poorly implemented.
Diffstat (limited to 'lib/libc')
-rw-r--r--lib/libc/arch/powerpc/sys/exect.S23
-rw-r--r--lib/libc/arch/powerpc/sys/ptrace.S13
-rw-r--r--lib/libc/arch/powerpc/sys/reboot.S1
-rw-r--r--lib/libc/arch/powerpc/sys/setlogin.S1
-rw-r--r--lib/libc/arch/powerpc/sys/sigpending.S12
-rw-r--r--lib/libc/arch/powerpc/sys/sigreturn.S3
6 files changed, 47 insertions, 6 deletions
diff --git a/lib/libc/arch/powerpc/sys/exect.S b/lib/libc/arch/powerpc/sys/exect.S
index 31307cc3f2e..46108f9d7b3 100644
--- a/lib/libc/arch/powerpc/sys/exect.S
+++ b/lib/libc/arch/powerpc/sys/exect.S
@@ -1 +1,22 @@
-/* rubbish */
+/*
+ * COPYRIGHT
+ */
+#if defined(SYSLIBC_SCCS)
+ .text
+ .asciz "$OpenBSD: exect.S,v 1.2 1998/08/07 01:44:01 rahnds Exp $"
+#endif /* SYSLIBC_SCCS */
+
+#include "SYS.h"
+
+ .text
+PSEUDO_PREFIX(exect,execve)
+ sc
+
+ /* check for error */
+ cmpwi 0, 0
+ beq+ exect_ok /* OK so this is stupid but I haven't read b */
+ b cerror
+
+ /* update, curbrk and return */
+exect_ok:
+ blr
diff --git a/lib/libc/arch/powerpc/sys/ptrace.S b/lib/libc/arch/powerpc/sys/ptrace.S
index 31307cc3f2e..93627bd0f11 100644
--- a/lib/libc/arch/powerpc/sys/ptrace.S
+++ b/lib/libc/arch/powerpc/sys/ptrace.S
@@ -1 +1,12 @@
-/* rubbish */
+/* int ptrace(int *mask) */
+
+#include "SYS.h"
+
+ .text
+PREFIX(ptrace)
+ sc
+ cmpwi 0, 0
+ beq ok
+ b cerror
+ok:
+ blr
diff --git a/lib/libc/arch/powerpc/sys/reboot.S b/lib/libc/arch/powerpc/sys/reboot.S
index 8063167c8d4..09a34c91815 100644
--- a/lib/libc/arch/powerpc/sys/reboot.S
+++ b/lib/libc/arch/powerpc/sys/reboot.S
@@ -1,3 +1,2 @@
-/* rubbish */
#include <SYS.h>
RSYSCALL(reboot)
diff --git a/lib/libc/arch/powerpc/sys/setlogin.S b/lib/libc/arch/powerpc/sys/setlogin.S
index 793c846e047..8f8ea689bc0 100644
--- a/lib/libc/arch/powerpc/sys/setlogin.S
+++ b/lib/libc/arch/powerpc/sys/setlogin.S
@@ -1,4 +1,3 @@
-/* rubbish */
#include "SYS.h"
.extern __logname_valid
RSYSCALL(setlogin)
diff --git a/lib/libc/arch/powerpc/sys/sigpending.S b/lib/libc/arch/powerpc/sys/sigpending.S
index 31307cc3f2e..5b445d2c299 100644
--- a/lib/libc/arch/powerpc/sys/sigpending.S
+++ b/lib/libc/arch/powerpc/sys/sigpending.S
@@ -1 +1,11 @@
-/* rubbish */
+/*
+ * COPYRIGHT
+ */
+#if defined(SYSLIBC_SCCS)
+ .text
+ .asciz "$OpenBSD: sigpending.S,v 1.2 1998/08/07 01:44:06 rahnds Exp $"
+#endif /* SYSLIBC_SCCS */
+
+#include "SYS.h"
+
+RSYSCALL(sigpending)
diff --git a/lib/libc/arch/powerpc/sys/sigreturn.S b/lib/libc/arch/powerpc/sys/sigreturn.S
index 31307cc3f2e..2a75ad341f2 100644
--- a/lib/libc/arch/powerpc/sys/sigreturn.S
+++ b/lib/libc/arch/powerpc/sys/sigreturn.S
@@ -1 +1,2 @@
-/* rubbish */
+#include <SYS.h>
+RSYSCALL(sigreturn)