about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/alpha/sigsuspend.S
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2007-03-13 16:05:44 +0000
committerRichard Henderson <rth@redhat.com>2007-03-13 16:05:44 +0000
commitb8097bed55c6d3e4fcdeedc231d659de60911d61 (patch)
treeaaea4d41ee381a1c492fce42f89f82e85d71eafb /sysdeps/unix/sysv/linux/alpha/sigsuspend.S
parent6bf4a686f5a8fc2df9b3406fe3954c224a3846ba (diff)
downloadglibc-b8097bed55c6d3e4fcdeedc231d659de60911d61.tar.gz
glibc-b8097bed55c6d3e4fcdeedc231d659de60911d61.tar.xz
glibc-b8097bed55c6d3e4fcdeedc231d659de60911d61.zip
* sysdeps/unix/sysv/linux/alpha/sigsuspend.S: Add support for
__sigsuspend_nocancel.
2007-03-13  Richard Henderson  <rth@redhat.com>

	* sysdeps/unix/sysv/linux/alpha/sigsuspend.S: Add support for
	__sigsuspend_nocancel.
Diffstat (limited to 'sysdeps/unix/sysv/linux/alpha/sigsuspend.S')
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sigsuspend.S13
1 files changed, 13 insertions, 0 deletions
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 <sysdep.h>
+
+#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 <sysdep-cancel.h>
 
 #undef PSEUDO_PREPARE_ARGS