diff options
author | 1998-07-21 16:27:59 +0000 | |
---|---|---|
committer | 1998-07-21 16:27:59 +0000 | |
commit | 677e972b8ddd8750f1a326181c9abc12677faa70 (patch) | |
tree | 719f670d8d8671d16cef44a67b07b5e7af4260dc /lib/libpthread/arch/sparc | |
parent | remove irrelevant files (diff) | |
download | wireguard-openbsd-677e972b8ddd8750f1a326181c9abc12677faa70.tar.xz wireguard-openbsd-677e972b8ddd8750f1a326181c9abc12677faa70.zip |
move unchanged files from machdep/ into appropriate arch/${MACHINE}
directories. These files have been renamed as appropriate, but
hackers of these files should note those that started off as netbsd
files (alpha and sparc).
also moved machdep/openbsd-2.0/ to include/sys/
Diffstat (limited to 'lib/libpthread/arch/sparc')
-rw-r--r-- | lib/libpthread/arch/sparc/syscall-template.S | 40 | ||||
-rw-r--r-- | lib/libpthread/arch/sparc/syscall.S | 102 |
2 files changed, 142 insertions, 0 deletions
diff --git a/lib/libpthread/arch/sparc/syscall-template.S b/lib/libpthread/arch/sparc/syscall-template.S new file mode 100644 index 00000000000..2d07892a315 --- /dev/null +++ b/lib/libpthread/arch/sparc/syscall-template.S @@ -0,0 +1,40 @@ +/* ==== syscall.S ============================================================ + * Copyright (c) 1994 Chris Provenzano, proven@mit.edu + * All rights reserved. + * + */ + +#include <sys/syscall.h> + +#define SYSCALL(x) \ + .globl _machdep_sys_##x; \ + \ +_machdep_sys_##x:; \ + \ + mov SYS_##x, %g1; \ + ta 0; \ + bcs,a 2b; \ + sub %r0,%o0,%o0; \ + retl; \ + nop + +/* + * Initial asm stuff for all functions. + */ + .text + .align 4 + +/* ========================================================================== + * error code for all syscalls. The error value is returned as the negative + * of the errno value. + */ + +1: + sub %r0, %o0, %o0 +2: + retl + nop + +#define XSYSCALL(NAME) SYSCALL(NAME) + +XSYSCALL(SYSCALL_NAME) diff --git a/lib/libpthread/arch/sparc/syscall.S b/lib/libpthread/arch/sparc/syscall.S new file mode 100644 index 00000000000..9312ef7352a --- /dev/null +++ b/lib/libpthread/arch/sparc/syscall.S @@ -0,0 +1,102 @@ +/* ==== syscall.S ============================================================ + * Copyright (c) 1994 Chris Provenzano, proven@mit.edu + * All rights reserved. + * + */ + +#ifndef lint + .text + .asciz "$Id: syscall.S,v 1.1 1998/07/21 16:28:06 peter Exp $"; +#endif + +#include <sys/syscall.h> + +#define SYSCALL(x) \ + .globl _machdep_sys_##x; \ + \ +_machdep_sys_##x:; \ + \ + mov SYS_##x, %g1; \ + ta 0; \ + bcs,a 2b; \ + sub %r0,%o0,%o0; \ + retl + + +/* + * Initial asm stuff for all functions. + */ + .text + .align 4 + +/* ========================================================================== + * error code for all syscalls. The error value is returned as the negative + * of the errno value. + */ + +1: + sub %r0, %o0, %o0 +2: + retl + nop + +/* ========================================================================== + * machdep_sys_pipe() + */ + .globl _machdep_sys_pipe + +_machdep_sys_pipe: + mov %o0, %o2 + mov SYS_pipe, %g1 + ta 0 + bcs 1b + nop + st %o0, [ %o2 ] + st %o1, [ %o2 + 4 ] + retl + mov %g0, %o0 + +/* ========================================================================== + * machdep_sys_fork() + */ + .globl _machdep_sys_fork; + +_machdep_sys_fork:; + + mov SYS_fork, %g1; + ta 0; + bcs 1b; + nop; + dec %o1; + retl; + and %o0, %o1, %o0; ! return 0 in child, pid in parent + +/* ========================================================================== + * machdep_sys_sigprocmask() + */ + .globl _machdep_sys_sigprocmask; + +_machdep_sys_sigprocmask:; + + ld [%o1], %o1; + mov SYS_sigprocmask, %g1; + ta 0; + bcs 1b; + nop; + retl + nop + +/* ========================================================================== + * machdep_sys_sigsuspend() + */ + .globl _machdep_sys_sigsuspend; + +_machdep_sys_sigsuspend:; + + ld [%o0], %o0; + mov SYS_sigsuspend, %g1; + ta 0; + bcs 1b; + nop; + retl + nop |