diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2016-10-25 20:38:37 -0200 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2016-12-28 20:28:56 -0200 |
commit | 356c0aabd0191cdd7287ccf1ec8bbaa4862a0823 (patch) | |
tree | ff179c3d7a7a1b95ff22ffccf88554ec2137b9df /sysdeps/unix/sysv/linux/mips | |
parent | 1e5834c38a22bc6bee7bae4347f21baee5196724 (diff) | |
download | glibc-356c0aabd0191cdd7287ccf1ec8bbaa4862a0823.tar.gz glibc-356c0aabd0191cdd7287ccf1ec8bbaa4862a0823.tar.xz glibc-356c0aabd0191cdd7287ccf1ec8bbaa4862a0823.zip |
Consolidate Linux msgctl implementation
This patch consolidates the msgctl Linux implementation in only one default file, sysdeps/unix/sysv/linux/msgctl.c. If tries to use the direct syscall if it is supported, otherwise will use the old ipc multiplex mechanism. The patch also simplify header inclusion and reorganize internal compat symbol to be built only if old ipc is defined. Checked on x86_64, i686, powerpc64le, aarch64, and armhf. * sysdeps/unix/sysv/linux/alpha/Makefile (sysdeps_routines): Remove oldmsgctl. * sysdeps/unix/sysv/linux/alpha/msgctl.c: Remove file. * sysdeps/unix/sysv/linux/arm/msgctl.c: Likewise. * sysdeps/unix/sysv/linux/microblaze/msgctl.c: Likewise. * sysdeps/unix/sysv/linux/alpha/syscalls.list (oldmsgctl): Remove. * sysdeps/unix/sysv/linux/generic/syscalls.list (msgctl): Likewise. * sysdeps/unix/sysv/linux/hppa/syscalls.list (msgctl): Likewise. * sysdeps/unix/sysv/linux/ia64/syscalls.list (msgctl): Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list (msgctl): Likewise. * sysdeps/unix/sysv/linux/x86_64/syscalls.list (msgctl): Likewise. * sysdeps/unix/sysv/linux/mips/mips64/msgctl.c: Use default implementation. * sysdeps/unix/sysv/linux/msgctl.c (__new_msgctl): Use msgctl syscall if defined.
Diffstat (limited to 'sysdeps/unix/sysv/linux/mips')
-rw-r--r-- | sysdeps/unix/sysv/linux/mips/mips64/msgctl.c | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/msgctl.c b/sysdeps/unix/sysv/linux/mips/mips64/msgctl.c index c4dc7ff4c8..928c3dc587 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/msgctl.c +++ b/sysdeps/unix/sysv/linux/mips/mips64/msgctl.c @@ -15,18 +15,11 @@ License along with the GNU C Library. If not, see <http://www.gnu.org/licenses/>. */ -#include <errno.h> -#include <sys/msg.h> -#include <ipc_priv.h> -#include <sysdep.h> +#include <shlib-compat.h> -int __msgctl (int msqid, int cmd, struct msqid_ds *buf); +#undef SHLIB_COMPAT +#define SHLIB_COMPAT(a, b, c) 0 -int -__msgctl (int msqid, int cmd, struct msqid_ds *buf) -{ - return INLINE_SYSCALL (msgctl, 3, msqid, cmd | __IPC_64, buf); -} +#define DEFAULT_VERSION GLIBC_2_0 -#include <shlib-compat.h> -versioned_symbol (libc, __msgctl, msgctl, GLIBC_2_0); +#include <sysdeps/unix/sysv/linux/msgctl.c> |