glibc/sysdeps/unix/sysv/linux/alpha/sigaction.c
Richard Henderson 141749ca16 * 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.
	* 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  Richard Henderson  <rth@redhat.com>

	    Paolo Bonzini  <bonzini@gnu.org>
	Compare the node sets after all the other comparisons.
	the old thread-m.h header too.
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>