aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix/syscall-template.S
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/syscall-template.S')
-rw-r--r--sysdeps/unix/syscall-template.S90
1 files changed, 0 insertions, 90 deletions
diff --git a/sysdeps/unix/syscall-template.S b/sysdeps/unix/syscall-template.S
deleted file mode 100644
index 4993ff562d..0000000000
--- a/sysdeps/unix/syscall-template.S
+++ /dev/null
@@ -1,90 +0,0 @@
-/* Assembly code template for system call stubs.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-/* The real guts of this work are in the macros defined in the
- machine- and kernel-specific sysdep.h header file. When we
- are defining a cancellable system call, the sysdep-cancel.h
- versions of those macros are what we really use.
-
- Each system call's object is built by a rule in sysd-syscalls
- generated by make-syscalls.sh that #include's this file after
- defining a few macros:
- SYSCALL_NAME syscall name
- SYSCALL_NARGS number of arguments this call takes
- SYSCALL_SYMBOL primary symbol name
- SYSCALL_CANCELLABLE 1 if the call is a cancelation point
- SYSCALL_NOERRNO 1 to define a no-errno version (see below)
- SYSCALL_ERRVAL 1 to define an error-value version (see below)
-
- We used to simply pipe the correct three lines below through cpp into
- the assembler. The main reason to have this file instead is so that
- stub objects can be assembled with -g and get source line information
- that leads a user back to a source file and these fine comments. The
- average user otherwise has a hard time knowing which "syscall-like"
- functions in libc are plain stubs and which have nontrivial C wrappers.
- Some versions of the "plain" stub generation macros are more than a few
- instructions long and the untrained eye might not distinguish them from
- some compiled code that inexplicably lacks source line information. */
-
-#if SYSCALL_CANCELLABLE
-# include <sysdep-cancel.h>
-#else
-# include <sysdep.h>
-#endif
-
-/* This indirection is needed so that SYMBOL gets macro-expanded. */
-#define syscall_hidden_def(SYMBOL) hidden_def (SYMBOL)
-
-#define T_PSEUDO(SYMBOL, NAME, N) PSEUDO (SYMBOL, NAME, N)
-#define T_PSEUDO_NOERRNO(SYMBOL, NAME, N) PSEUDO_NOERRNO (SYMBOL, NAME, N)
-#define T_PSEUDO_ERRVAL(SYMBOL, NAME, N) PSEUDO_ERRVAL (SYMBOL, NAME, N)
-#define T_PSEUDO_END(SYMBOL) PSEUDO_END (SYMBOL)
-#define T_PSEUDO_END_NOERRNO(SYMBOL) PSEUDO_END_NOERRNO (SYMBOL)
-#define T_PSEUDO_END_ERRVAL(SYMBOL) PSEUDO_END_ERRVAL (SYMBOL)
-
-#if SYSCALL_NOERRNO
-
-/* This kind of system call stub never returns an error.
- We return the return value register to the caller unexamined. */
-
-T_PSEUDO_NOERRNO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)
- ret_NOERRNO
-T_PSEUDO_END_NOERRNO (SYSCALL_SYMBOL)
-
-#elif SYSCALL_ERRVAL
-
-/* This kind of system call stub returns the errno code as its return
- value, or zero for success. We may massage the kernel's return value
- to meet that ABI, but we never set errno here. */
-
-T_PSEUDO_ERRVAL (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)
- ret_ERRVAL
-T_PSEUDO_END_ERRVAL (SYSCALL_SYMBOL)
-
-#else
-
-/* This is a "normal" system call stub: if there is an error,
- it returns -1 and sets errno. */
-
-T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)
- ret
-T_PSEUDO_END (SYSCALL_SYMBOL)
-
-#endif
-
-syscall_hidden_def (SYSCALL_SYMBOL)