glibc/sysdeps/unix/sysv/linux/alpha/sigaction.c
Richard Henderson cfbf1a2f78 * sysdeps/alpha/bits/atomic.h (__arch_compare_and_exchange_xxx_8_int):
Cast old up to uint64_t before back down to inner width.
        (__arch_compare_and_exchange_xxx_16_int): Likewise.
        (__arch_compare_and_exchange_xxx_32_int): Likewise.
        (__arch_compare_and_exchange_xxx_64_int): Likewise.
        (__arch_compare_and_exchange_val_8_int): Cast result to
        the type of the memory.
        (__arch_compare_and_exchange_val_16_int): Likewise.
        (__arch_compare_and_exchange_val_32_int): Likewise.
        (__arch_compare_and_exchange_val_64_int): Likewise.
        (atomic_compare_and_exchange_bool_acq): Use __atomic_bool_bysize.
        (atomic_compare_and_exchange_bool_rel): Likewise.

        * sysdeps/unix/alpha/sysdep.h: Select inline_syscall_r0_asm
        based on HAVE___THREAD instead of USE_TLS.

        * sysdeps/unix/sysv/linux/alpha/adjtime.c (ADJTIMEX32): New.
        (__adjtimex_tv64): Use it.

        * sysdeps/unix/sysv/linux/alpha/semctl.c (__new_semctl): Cast
        to void* rather than directly to the compatibility structure type.
        * sysdeps/unix/sysv/linux/alpha/shmctl.c (__new_shmctl): Likewise.

        * sysdeps/unix/sysv/linux/alpha/sigaction.c (struct kernel_sigaction):
        Forward declare.
2004-01-13 09:15:58 +00:00

38 lines
1.5 KiB
C

/* Copyright (C) 2003 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, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <sysdep.h>
/*
* In order to get the hidden arguments for rt_sigaction set up
* properly, we need to call the assembly version. Detect this in the
* INLINE_SYSCALL macro, and fail to expand inline in that case.
*/
#undef INLINE_SYSCALL
#define INLINE_SYSCALL(name, nr, args...) \
(__NR_##name == __NR_rt_sigaction \
? __syscall_rt_sigaction(args) \
: INLINE_SYSCALL1(name, nr, args))
struct kernel_sigaction;
extern int __syscall_rt_sigaction (int, const struct kernel_sigaction *__unbounded,
struct kernel_sigaction *__unbounded, size_t);
#include <sysdeps/unix/sysv/linux/sigaction.c>