about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2017-11-01 11:53:12 -0200
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2017-11-06 17:37:57 -0200
commit6a4235f129b75ad9963ae93d9f386b8b366cb65a (patch)
treeff1d970b9baa4fc9609d594f0e2261a18fe87ad1
parent8b0e795aaa445e9167aa07b282c5720b35342c07 (diff)
downloadglibc-6a4235f129b75ad9963ae93d9f386b8b366cb65a.tar.gz
glibc-6a4235f129b75ad9963ae93d9f386b8b366cb65a.tar.xz
glibc-6a4235f129b75ad9963ae93d9f386b8b366cb65a.zip
Cleanup Linux sigqueue implementation
This patch simplify Linux sigqueue implementation by assuming
__NR_rt_sigqueueinfo existence due minimum kernel requirement
(it pre-dates Linux git inclusion for Linux 2.6.12).

Checked on x86_64-linux-gnu.

	* sysdeps/unix/sysv/linux/sigqueue.c (__sigqueue): Asssume
	__NR_rt_sigqueueinfo.

Signed-off-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Reviewed-by: Zack Weinberg <zackw@panix.com>
-rw-r--r--ChangeLog3
-rw-r--r--sysdeps/unix/sysv/linux/sigqueue.c10
2 files changed, 5 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 89e0f11b70..9861b97e8f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2017-11-06  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
 
+	* sysdeps/unix/sysv/linux/sigqueue.c (__sigqueue): Asssume
+	__NR_rt_sigqueueinfo.
+
 	* sysdeps/unix/sysv/linux/Versions (libc) [GLIBC_PRIVATE]: Add
 	__sigtimedwait.
 	* sysdeps/unix/sysv/linux/sigtimedwait.c: Simplify includes and
diff --git a/sysdeps/unix/sysv/linux/sigqueue.c b/sysdeps/unix/sysv/linux/sigqueue.c
index 059e524528..67bb6b23ca 100644
--- a/sysdeps/unix/sysv/linux/sigqueue.c
+++ b/sysdeps/unix/sysv/linux/sigqueue.c
@@ -17,13 +17,10 @@
 
 #include <errno.h>
 #include <signal.h>
-#include <unistd.h>
 #include <string.h>
-
+#include <unistd.h>
 #include <sysdep.h>
-#include <sys/syscall.h>
 
-#ifdef __NR_rt_sigqueueinfo
 /* Return any pending signal or wait for one for the given time.  */
 int
 __sigqueue (pid_t pid, int sig, const union sigval val)
@@ -40,9 +37,6 @@ __sigqueue (pid_t pid, int sig, const union sigval val)
   info.si_uid = __getuid ();
   info.si_value = val;
 
-  return INLINE_SYSCALL (rt_sigqueueinfo, 3, pid, sig, &info);
+  return INLINE_SYSCALL_CALL (rt_sigqueueinfo, pid, sig, &info);
 }
 weak_alias (__sigqueue, sigqueue)
-#else
-# include <signal/sigqueue.c>
-#endif