]> git.ipfire.org Git - thirdparty/glibc.git/blame - sysdeps/unix/sysv/linux/alpha/sysdep.h
Update copyright dates with scripts/update-copyrights.
[thirdparty/glibc.git] / sysdeps / unix / sysv / linux / alpha / sysdep.h
CommitLineData
688903eb 1/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
36e28152
UD
2 This file is part of the GNU C Library.
3 Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 1995.
6932e444 4
36e28152 5 The GNU C Library is free software; you can redistribute it and/or
3214b89b
AJ
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.
6932e444 9
36e28152
UD
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
3214b89b 13 Lesser General Public License for more details.
6932e444 14
3214b89b 15 You should have received a copy of the GNU Lesser General Public
ab84e3ff
PE
16 License along with the GNU C Library. If not, see
17 <http://www.gnu.org/licenses/>. */
6932e444 18
543d2ed9
RM
19#ifndef _LINUX_ALPHA_SYSDEP_H
20#define _LINUX_ALPHA_SYSDEP_H 1
21
e0ebc3b2 22#ifdef __ASSEMBLER__
6932e444
RM
23#include <asm/pal.h>
24#include <alpha/regdef.h>
6932e444
RM
25#endif
26
27/* There is some commonality. */
fb1cf108 28#include <sysdeps/unix/sysv/linux/sysdep.h>
6932e444
RM
29#include <sysdeps/unix/alpha/sysdep.h>
30
ceb34e81
JJ
31#include <tls.h>
32
6932e444
RM
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
4ca39b2a 38#define SYS_ify(syscall_name) __NR_##syscall_name
6932e444 39
3dbefc47
RM
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. */
6932e444 43#define __NR_getpid __NR_getxpid
6932e444 44#define __NR_getuid __NR_getxuid
6932e444 45#define __NR_getgid __NR_getxgid
3dbefc47
RM
46#define SYS_getpid __NR_getxpid
47#define SYS_getuid __NR_getxuid
48#define SYS_getgid __NR_getxgid
6932e444
RM
49
50/*
51 * Some syscalls no Linux program should know about:
52 */
53#define __NR_osf_sigprocmask 48
54#define __NR_osf_shmat 209
55#define __NR_osf_getsysinfo 256
56#define __NR_osf_setsysinfo 257
26ecf6a8 57
a382880a
RH
58/* Help old kernel headers where particular syscalls are not available. */
59#ifndef __NR_semtimedop
60# define __NR_semtimedop 423
61#endif
62
240d7112
UD
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
72
09c76a74
AZ
73#define SINGLE_THREAD_BY_GLOBAL 1
74
26ecf6a8
UD
75/*
76 * In order to get the hidden arguments for rt_sigaction set up
ebcd2cd1
RH
77 * properly, we need to call the assembly version. This shouldn't
78 * happen except for inside sigaction.c, where we handle this
79 * specially. Catch other uses and error.
26ecf6a8
UD
80 */
81
82#undef INLINE_SYSCALL
ebcd2cd1
RH
83#define INLINE_SYSCALL(name, nr, args...) \
84({ \
85 extern char ChEcK[__NR_##name == __NR_rt_sigaction ? -1 : 1] \
86 __attribute__((unused)); \
87 INLINE_SYSCALL1(name, nr, args); \
88})
54df0cf5 89
411c121b
UD
90#undef INTERNAL_SYSCALL
91#define INTERNAL_SYSCALL(name, err_out, nr, args...) \
92({ \
3de1f4af
RM
93 extern char ChEcK[__NR_##name == __NR_rt_sigaction ? -1 : 1] \
94 __attribute__((unused)); \
411c121b 95 INTERNAL_SYSCALL1(name, err_out, nr, args); \
54df0cf5
RM
96})
97
543d2ed9 98#endif /* _LINUX_ALPHA_SYSDEP_H */