Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'libgloss/sparc/libsys/syscallasm.h')
-rw-r--r--libgloss/sparc/libsys/syscallasm.h93
1 files changed, 0 insertions, 93 deletions
diff --git a/libgloss/sparc/libsys/syscallasm.h b/libgloss/sparc/libsys/syscallasm.h
deleted file mode 100644
index 55f25cd41..000000000
--- a/libgloss/sparc/libsys/syscallasm.h
+++ /dev/null
@@ -1,93 +0,0 @@
-#ifndef _SYSCALLASM_H_
-#define _SYSCALLASM_H_
-
-/*
- * This file defines the system calls for SPARC for the assembler.
- * Anything C-ish is not allowed in this file.
- * C files should include syscall.h.
- */
-
-#include "syscall.h"
-
-/* Some macros for writing assember syscall stubs. */
-
-#ifdef SVR4
-#define TEXT_SECTION .section ".text"
-#define DATA_SECTION .section ".data"
-#define ALIGN(x) .align x
-#define GLOBAL(sym) .global sym
-#define WORD(x) .long x
-#define ASM_SYMBOL(name) name
-#define ASM_PRIVATE_SYMBOL(name) _##name
-#define SYSCALL_TRAP 8
-#else
-#define TEXT_SECTION .text
-#define DATA_SECTION .data
-#define ALIGN(x) .align x
-#define GLOBAL(sym) .global sym
-#define WORD(x) .word x
-#define ASM_SYMBOL(name) _##name
-#define ASM_PRIVATE_SYMBOL(name) name
-#define SYSCALL_TRAP 0
-#endif
-
-#define defsyscall(name, n) \
- TEXT_SECTION ; \
- ALIGN (4) ; \
- GLOBAL (ASM_SYMBOL (name)) ; \
-ASM_SYMBOL (name): \
- mov n,%g1 ; \
- ta SYSCALL_TRAP ; \
- bcc noerr ; \
- sethi %hi (ASM_PRIVATE_SYMBOL (cerror)),%g1 ; \
- or %g1,%lo (ASM_PRIVATE_SYMBOL (cerror)),%g1 ; \
- jmpl %g1+%g0,%g0 ; \
- nop ; \
-noerr: \
- jmpl %o7+8,%g0 ; \
- nop
-
-/* Support for reentrant syscalls. The "struct _reent *" arg is always the
- the first one. After that we allow up to four additional args. We could
- allow more, but that's all we need for now.
-
- It may seem inefficient to have the reent arg be the first one as it means
- copying all the other args into place (as opposed to making the reent arg
- the last one in which case there wouldn't be any copying). I chose a clean
- design over an extra four instructions in a system call. All other
- reentrant functions use the first arg this way.
- ??? Of course this scheme breaks down if we need to support 6 or more args.
-
- And of course the system calls aren't *really* reentrant. The intent
- is to exercise the reentrancy framework rather than provide/claim
- real reentrancy for this port.
-*/
-
-#define defsyscall_r(name, n) \
- TEXT_SECTION ; \
- ALIGN (4) ; \
- GLOBAL (ASM_SYMBOL (name)) ; \
-ASM_SYMBOL (name): \
- mov n,%g1 ; \
- mov %o0,%o5 ; \
- mov %o1,%o0 ; \
- mov %o2,%o1 ; \
- mov %o3,%o2 ; \
- mov %o4,%o3 ; \
- ta SYSCALL_TRAP ; \
- bcc noerr ; \
- sethi %hi (ASM_PRIVATE_SYMBOL (cerror_r)),%g1 ; \
- or %g1,%lo (ASM_PRIVATE_SYMBOL (cerror_r)),%g1 ; \
- jmpl %g1+%g0,%g0 ; \
- mov %o5,%o1 ; \
-noerr: \
- jmpl %o7+8,%g0 ; \
- nop
-
-#define seterrno() \
- sethi %hi (ASM_PRIVATE_SYMBOL (cerror)),%g1 ; \
- or %g1,%lo (ASM_PRIVATE_SYMBOL (cerror)),%g1 ; \
- jmpl %g1+%g0,%g0 ; \
- nop
-
-#endif /* _SYSCALLASM_H_ */