Update copyright dates with scripts/update-copyrights.
[glibc.git] / sysdeps / unix / sysv / linux / alpha / sysdep.h
blob4dc2d46ecfe9eada6996d867c8c58287119d8b70
1 /* Copyright (C) 1992-2017 Free Software Foundation, Inc.
2 This file is part of the GNU C Library.
3 Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 1995.
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library. If not, see
17 <http://www.gnu.org/licenses/>. */
19 #ifndef _LINUX_ALPHA_SYSDEP_H
20 #define _LINUX_ALPHA_SYSDEP_H 1
22 #ifdef __ASSEMBLER__
23 #include <asm/pal.h>
24 #include <alpha/regdef.h>
25 #endif
27 /* There is some commonality. */
28 #include <sysdeps/unix/sysv/linux/sysdep.h>
29 #include <sysdeps/unix/alpha/sysdep.h>
31 #include <tls.h>
33 /* For Linux we can use the system call table in the header file
34 /usr/include/asm/unistd.h
35 of the kernel. But these symbols do not follow the SYS_* syntax
36 so we have to redefine the `SYS_ify' macro here. */
37 #undef SYS_ify
38 #define SYS_ify(syscall_name) __NR_##syscall_name
40 /* Define some aliases to make automatic syscall generation work
41 properly. The SYS_* variants are for the benefit of the files in
42 sysdeps/unix. */
43 #define __NR_getpid __NR_getxpid
44 #define __NR_getuid __NR_getxuid
45 #define __NR_getgid __NR_getxgid
46 #define SYS_getpid __NR_getxpid
47 #define SYS_getuid __NR_getxuid
48 #define SYS_getgid __NR_getxgid
51 * Some syscalls no Linux program should know about:
53 #define __NR_osf_sigprocmask 48
54 #define __NR_osf_shmat 209
55 #define __NR_osf_getsysinfo 256
56 #define __NR_osf_setsysinfo 257
58 /* Help old kernel headers where particular syscalls are not available. */
59 #ifndef __NR_semtimedop
60 # define __NR_semtimedop 423
61 #endif
63 /* This is a kludge to make syscalls.list find these under the names
64 pread and pwrite, since some kernel headers define those names
65 and some define the *64 names for the same system calls. */
66 #if !defined __NR_pread && defined __NR_pread64
67 # define __NR_pread __NR_pread64
68 #endif
69 #if !defined __NR_pwrite && defined __NR_pwrite64
70 # define __NR_pwrite __NR_pwrite64
71 #endif
74 * In order to get the hidden arguments for rt_sigaction set up
75 * properly, we need to call the assembly version. This shouldn't
76 * happen except for inside sigaction.c, where we handle this
77 * specially. Catch other uses and error.
80 #undef INLINE_SYSCALL
81 #define INLINE_SYSCALL(name, nr, args...) \
82 ({ \
83 extern char ChEcK[__NR_##name == __NR_rt_sigaction ? -1 : 1] \
84 __attribute__((unused)); \
85 INLINE_SYSCALL1(name, nr, args); \
88 #undef INTERNAL_SYSCALL
89 #define INTERNAL_SYSCALL(name, err_out, nr, args...) \
90 ({ \
91 extern char ChEcK[__NR_##name == __NR_rt_sigaction ? -1 : 1] \
92 __attribute__((unused)); \
93 INTERNAL_SYSCALL1(name, err_out, nr, args); \
96 #endif /* _LINUX_ALPHA_SYSDEP_H */