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/mips64/msgctl.c | |
parent | 1e5834c38a22bc6bee7bae4347f21baee5196724 (diff) | |
download | glibc-356c0aabd0191cdd7287ccf1ec8bbaa4862a0823.tar glibc-356c0aabd0191cdd7287ccf1ec8bbaa4862a0823.tar.gz glibc-356c0aabd0191cdd7287ccf1ec8bbaa4862a0823.tar.bz2 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/mips64/msgctl.c')
-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> |