diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2015-11-04 10:40:20 -0200 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2017-05-18 18:06:47 -0300 |
commit | 332e01c6276e05ece5953007c98aa84725c4fda4 (patch) | |
tree | be3d0853b7cf11598b10183dd50108e2d4062f3b | |
parent | a5fdd305970adc9b245f97dd18ff813efea36484 (diff) | |
download | glibc-332e01c6276e05ece5953007c98aa84725c4fda4.tar.gz glibc-332e01c6276e05ece5953007c98aa84725c4fda4.tar.xz glibc-332e01c6276e05ece5953007c98aa84725c4fda4.zip |
posix: Consolidate Linux mq_timedsend syscall
This patch consolidates the mq_timedsend Linux syscall generation on sysdeps/unix/sysv/linux/mq_timedsend.c. It basically removes it from architecture auto-generation list. Checked on i686-linux-gnu, x86_64-linux-gnu, x86_64-linux-gnux32, arch64-linux-gnu, arm-linux-gnueabihf, powerpc64le-linux-gnu, sparc64-linux-gnu, and sparcv9-linux-gnu. * rt/Makefile (CFLAGS-mq_timedsend.c): New flag. * sysdeps/unix/sysv/linux/mq_timedsend.c: New file. * sysdeps/unix/sysv/linux/syscalls.list (mq_timedsend): Remove from auto-generation list.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | rt/Makefile | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/mq_timedsend.c | 33 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/syscalls.list | 1 |
4 files changed, 39 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog index 65784a9061..527e4e4776 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2017-05-18 Adhemerval Zanella <adhemerval.zanella@linaro.org> + * rt/Makefile (CFLAGS-mq_timedsend.c): New flag. + * sysdeps/unix/sysv/linux/mq_timedsend.c: New file. + * sysdeps/unix/sysv/linux/syscalls.list (mq_timedsend): Remove from + auto-generation list. + * rt/Makefile (CFLAGS-mq_timedreceive.c): New flag. * sysdeps/unix/sysv/linux/mq_timedreceive.c: New file. * sysdeps/unix/sysv/linux/syscalls.list (mq_timedreceive): Remove diff --git a/rt/Makefile b/rt/Makefile index 0ffa12db4c..9740dc2ad8 100644 --- a/rt/Makefile +++ b/rt/Makefile @@ -62,6 +62,7 @@ include ../Rules CFLAGS-aio_suspend.c = -fexceptions CFLAGS-mq_timedreceive.c = -fexceptions -fasynchronous-unwind-tables +CFLAGS-mq_timedsend.c = -fexceptions -fasynchronous-unwind-tables CFLAGS-clock_nanosleep.c = -fexceptions -fasynchronous-unwind-tables CFLAGS-librt-cancellation.c = -fasynchronous-unwind-tables diff --git a/sysdeps/unix/sysv/linux/mq_timedsend.c b/sysdeps/unix/sysv/linux/mq_timedsend.c new file mode 100644 index 0000000000..799555440e --- /dev/null +++ b/sysdeps/unix/sysv/linux/mq_timedsend.c @@ -0,0 +1,33 @@ +/* Send a message to a message queue with a timeout. Linux version. + Copyright (C) 2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <mqueue.h> +#include <sysdep-cancel.h> + +/* Add message pointed by MSG_PTR to message queue MQDES, stop blocking + on full message queue if ABS_TIMEOUT expires. */ +int +__mq_timedsend (mqd_t mqdes, const char *msg_ptr, size_t msg_len, + unsigned int msg_prio, const struct timespec *abs_timeout) +{ + return SYSCALL_CANCEL (mq_timedsend, mqdes, msg_ptr, msg_len, msg_prio, + abs_timeout); +} +hidden_def (__mq_timedsend) +weak_alias (__mq_timedsend, mq_timedsend) +hidden_weak (mq_timedsend) diff --git a/sysdeps/unix/sysv/linux/syscalls.list b/sysdeps/unix/sysv/linux/syscalls.list index 63914bcc82..8bfb080d80 100644 --- a/sysdeps/unix/sysv/linux/syscalls.list +++ b/sysdeps/unix/sysv/linux/syscalls.list @@ -95,7 +95,6 @@ removexattr - removexattr i:ss removexattr lremovexattr - lremovexattr i:ss lremovexattr fremovexattr - fremovexattr i:is fremovexattr -mq_timedsend - mq_timedsend Ci:ipiip __mq_timedsend mq_timedsend mq_setattr - mq_getsetattr i:ipp mq_setattr timerfd_create EXTRA timerfd_create i:ii timerfd_create |