extern int sigaction (int __sig, __const struct sigaction *__restrict __act,
struct sigaction *__restrict __oact) __THROW;
#ifdef _LIBC
+# if 0 /* this is in headers */
+/* In uclibc, userspace struct sigaction is identical to
+ * "new" struct kernel_sigaction (one from the Linux 2.1.68 kernel).
+ * See sigaction.h
+ */
+struct old_kernel_sigaction;
+extern int __syscall_sigaction(int, __const struct old_kernel_sigaction *,
+ struct old_kernel_sigaction *) attribute_hidden;
+# else /* this is how the function is built */
+extern __typeof(sigaction) __syscall_sigaction attribute_hidden;
+# endif
+/* candidate for attribute_hidden, if NPTL would behave */
+extern int __syscall_rt_sigaction(int, __const struct sigaction *,
+ struct sigaction *, size_t)
+# ifndef __UCLIBC_HAS_THREADS_NATIVE__
+ attribute_hidden
+# endif
+ ;
extern __typeof(sigaction) __libc_sigaction;
libc_hidden_proto(sigaction)
#endif
unsigned int sa_flags;
};
-/* In uclibc, userspace struct sigaction is identical to
- * "new" struct kernel_sigaction (one from the Linux 2.1.68 kernel).
- * See sigaction.h
- */
-
-extern int __syscall_rt_sigaction (int, const struct sigaction *,
- struct sigaction *, size_t) attribute_hidden;
-
#endif
#ifdef __NR_rt_sigaction
#include <signal.h>
-int __syscall_rt_sigaction (int __signum, const struct sigaction *__act,
- struct sigaction *__oldact, size_t __size);
-
#define __NR___syscall_rt_sigaction __NR_rt_sigaction
_syscall4(int, __syscall_rt_sigaction, int, signum,
- const struct sigaction *, act, struct sigaction *, oldact,
- size_t, size)
+ const struct sigaction *, act, struct sigaction *, oldact,
+ size_t, size)
#endif
#ifndef __NR_rt_sigaction
#define __NR___syscall_sigaction __NR_sigaction
#include <signal.h>
-int __syscall_sigaction (int __signum, const struct sigaction *__act, struct sigaction *__oldact) attribute_hidden;
_syscall3(int, __syscall_sigaction, int, signum, const struct sigaction *,
- act, struct sigaction *, oldact)
+ act, struct sigaction *, oldact)
#endif
unsigned long sa_flags;
void (*sa_restorer)(void);
};
-/* In uclibc, userspace struct sigaction is identical to
- * "new" struct kernel_sigaction (one from the Linux 2.1.68 kernel).
- * See sigaction.h
- */
-
-extern int __syscall_sigaction(int, const struct old_kernel_sigaction *,
- struct old_kernel_sigaction *);
-
#endif
-
-extern int __syscall_rt_sigaction(int, const struct sigaction *,
- struct sigaction *, size_t);
-
#endif /* _BITS_SIGACTION_STRUCT_H */
unsigned long sa_flags;
};
-/* In uclibc, userspace struct sigaction is identical to
- * "new" struct kernel_sigaction (one from the Linux 2.1.68 kernel).
- * See sigaction.h
- */
-
-extern int __syscall_rt_sigaction (int, const struct sigaction *,
- struct sigaction *, size_t) attribute_hidden;
-
#endif
#endif
};
-/* In uclibc, userspace struct sigaction is identical to
- * "new" struct kernel_sigaction (one from the Linux 2.1.68 kernel).
- * See sigaction.h
- */
-
-extern int __syscall_rt_sigaction (int, const struct sigaction *,
- struct sigaction *, size_t) attribute_hidden;
-
#endif