From b8097bed55c6d3e4fcdeedc231d659de60911d61 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Tue, 13 Mar 2007 16:05:44 +0000 Subject: * sysdeps/unix/sysv/linux/alpha/sigsuspend.S: Add support for __sigsuspend_nocancel. 2007-03-13 Richard Henderson * sysdeps/unix/sysv/linux/alpha/sigsuspend.S: Add support for __sigsuspend_nocancel. --- sysdeps/unix/sysv/linux/alpha/sigsuspend.S | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'sysdeps/unix/sysv/linux/alpha') diff --git a/sysdeps/unix/sysv/linux/alpha/sigsuspend.S b/sysdeps/unix/sysv/linux/alpha/sigsuspend.S index 48c3f271c7..6863c07ec1 100644 --- a/sysdeps/unix/sysv/linux/alpha/sigsuspend.S +++ b/sysdeps/unix/sysv/linux/alpha/sigsuspend.S @@ -20,6 +20,19 @@ /* sigsuspend is a special syscall since it needs to dereference the sigset. This will have to change when we have more than 64 signals. */ +#ifndef NO_CANCELLATION +#include + +#undef PSEUDO_PREPARE_ARGS +#define PSEUDO_PREPARE_ARGS ldq a0, 0(a0); + +PSEUDO(__sigsuspend_nocancel, sigsuspend, 1) + ret +/* Use END, not PSEUDO_END, so that we don't issue two $syscall_error + symbols; we'll jump into __sigsuspend for the error case. */ +END(__sigsuspend_nocancel) +#endif /* NO_CANCELLATION */ + #include #undef PSEUDO_PREPARE_ARGS -- cgit v1.2.1