This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[RFC PATCH 3/3] Consolidate Linux sigprocmask() implementationa for alpha
- From: Yury Norov <ynorov at caviumnetworks dot com>
- To: libc-alpha at sourceware dot org
- Cc: Yury Norov <ynorov at caviumnetworks dot com>
- Date: Mon, 16 Oct 2017 07:34:07 +0300
- Subject: [RFC PATCH 3/3] Consolidate Linux sigprocmask() implementationa for alpha
- Authentication-results: sourceware.org; auth=none
- Authentication-results: spf=none (sender IP is ) smtp.mailfrom=Yuri dot Norov at cavium dot com;
- References: <20171016043407.1142-1-ynorov@caviumnetworks.com>
- Spamdiagnosticmetadata: NSPM
- Spamdiagnosticoutput: 1:99
Currently alpha port uses osf_sigprocmask to implement sigprocmask().
Minimal supported kernel version is 3.2, and it exposes rt_sigprocmask
system call for alpha. This RFC patch switches alpha to rt_sigprocmask,
similarly to other ports. If alpha community OK, please pull it.
* sysdeps/unix/sysv/linux/alpha/sigprocmask.c: Consolidate
sigprocmask() implementation.
---
sysdeps/unix/sysv/linux/alpha/sigprocmask.c | 41 ++---------------------------
1 file changed, 2 insertions(+), 39 deletions(-)
diff --git a/sysdeps/unix/sysv/linux/alpha/sigprocmask.c b/sysdeps/unix/sysv/linux/alpha/sigprocmask.c
index ebec70cff0..c8e515860f 100644
--- a/sysdeps/unix/sysv/linux/alpha/sigprocmask.c
+++ b/sysdeps/unix/sysv/linux/alpha/sigprocmask.c
@@ -16,43 +16,6 @@
License along with the GNU C Library. If not, see
<http://www.gnu.org/licenses/>. */
-#include <errno.h>
-#include <sysdep.h>
-#include <signal.h>
+#define NEED_CLEAR_SIGCANCEL_SIGSETXID 0
-/* When there is kernel support for more than 64 signals, we'll have to
- switch to a new system call convention here. */
-
-int
-__sigprocmask (int how, const sigset_t *set, sigset_t *oset)
-{
- unsigned long int setval;
- long result;
-
- if (set)
- setval = set->__val[0];
- else
- {
- setval = 0;
- how = SIG_BLOCK; /* ensure blocked mask doesn't get changed */
- }
-
- result = INLINE_SYSCALL (osf_sigprocmask, 2, how, setval);
- if (result == -1)
- /* If there are ever more than 63 signals, we need to recode this
- in assembler since we wouldn't be able to distinguish a mask of
- all 1s from -1, but for now, we're doing just fine... */
- return result;
-
- if (oset)
- {
- oset->__val[0] = result;
- result = _SIGSET_NWORDS;
- while (--result > 0)
- oset->__val[result] = 0;
- }
- return 0;
-}
-
-libc_hidden_def (__sigprocmask)
-weak_alias (__sigprocmask, sigprocmask);
+#include <sysdeps/unix/sysv/linux/sigprocmask.c>
--
2.11.0