diff options
author | Dale S. Rahn <rahnds@cvs.openbsd.org> | 1998-08-07 01:44:08 +0000 |
---|---|---|
committer | Dale S. Rahn <rahnds@cvs.openbsd.org> | 1998-08-07 01:44:08 +0000 |
commit | 116326e25b984b90b87f7513fcad128ce92c6b89 (patch) | |
tree | c12c26434e565c510e292a40f91eb867dc740270 | |
parent | 280ca7ce21ac6473ab90f687da11974265ce1cef (diff) |
Add correct handling of more systemcalls. either not implemented before
or poorly implemented.
-rw-r--r-- | lib/libc/arch/powerpc/sys/exect.S | 23 | ||||
-rw-r--r-- | lib/libc/arch/powerpc/sys/ptrace.S | 13 | ||||
-rw-r--r-- | lib/libc/arch/powerpc/sys/reboot.S | 1 | ||||
-rw-r--r-- | lib/libc/arch/powerpc/sys/setlogin.S | 1 | ||||
-rw-r--r-- | lib/libc/arch/powerpc/sys/sigpending.S | 12 | ||||
-rw-r--r-- | lib/libc/arch/powerpc/sys/sigreturn.S | 3 |
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) |