]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Use msgget syscall for Linux implementation
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Wed, 26 Oct 2016 13:00:24 +0000 (11:00 -0200)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Wed, 28 Dec 2016 22:28:56 +0000 (20:28 -0200)
This patch add a direct call to msgget syscall if it is supported by
kernel features.

hecked on x86_64, i686, powerpc64le, aarch64, and armhf.

* sysdeps/unix/sysv/linux/alpha/syscalls.list (msgget): Remove.
* sysdeps/unix/sysv/linux/arm/syscalls.list (msgget): Likewise.
* sysdeps/unix/sysv/linux/generic/syscalls.list (msgget): Likewise.
* sysdeps/unix/sysv/linux/hppa/syscalls.list (msgget): Likewise.
* sysdeps/unix/sysv/linux/ia64/syscalls.list (msgget): Likewise.
* sysdeps/unix/sysv/linux/microblaze/syscalls.list (msgget): Likewise.
* sysdeps/unix/sysv/linux/mips/mips64/syscalls.list (msgget):
Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list (msgget):
Likewise.
* sysdeps/unix/sysv/linux/x86_64/syscalls.list (msgget): Likewise.
* sysdeps/unix/sysv/linux/msgget.c (msgget): Use msgget syscall if
define.

ChangeLog
sysdeps/unix/sysv/linux/alpha/syscalls.list
sysdeps/unix/sysv/linux/arm/syscalls.list
sysdeps/unix/sysv/linux/generic/syscalls.list
sysdeps/unix/sysv/linux/hppa/syscalls.list
sysdeps/unix/sysv/linux/ia64/syscalls.list
sysdeps/unix/sysv/linux/microblaze/syscalls.list
sysdeps/unix/sysv/linux/mips/mips64/syscalls.list
sysdeps/unix/sysv/linux/msgget.c
sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list
sysdeps/unix/sysv/linux/x86_64/syscalls.list

index b494042a2b2db73f5c735de4696a965c349ba2a9..87c96361bf5392ca23698026942cb60b872c31ff 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,19 @@
 2016-12-28  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
 
+       * sysdeps/unix/sysv/linux/alpha/syscalls.list (msgget): Remove.
+       * sysdeps/unix/sysv/linux/arm/syscalls.list (msgget): Likewise.
+       * sysdeps/unix/sysv/linux/generic/syscalls.list (msgget): Likewise.
+       * sysdeps/unix/sysv/linux/hppa/syscalls.list (msgget): Likewise.
+       * sysdeps/unix/sysv/linux/ia64/syscalls.list (msgget): Likewise.
+       * sysdeps/unix/sysv/linux/microblaze/syscalls.list (msgget): Likewise.
+       * sysdeps/unix/sysv/linux/mips/mips64/syscalls.list (msgget):
+       Likewise.
+       * sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list (msgget):
+       Likewise.
+       * sysdeps/unix/sysv/linux/x86_64/syscalls.list (msgget): Likewise.
+       * sysdeps/unix/sysv/linux/msgget.c (msgget): Use msgget syscall if
+       define.
+
        * sysdeps/unix/sysv/linux/alpha/syscalls.list (msgsnd): Remove.
        * sysdeps/unix/sysv/linux/arm/syscalls.list (msgsnd): Likewise.
        * sysdeps/unix/sysv/linux/generic/syscalls.list (msgsnd): Likewise.
index ced9c108fc0d4bddae280429c801bb43c1461846..54c175252292f2f3def4d704e3db06331bfbe90a 100644 (file)
@@ -1,6 +1,5 @@
 # File name    Caller  Syscall name    # args  Strong name     Weak names
 
-msgget         -       msgget          i:ii    __msgget        msgget
 shmat          -       osf_shmat       i:ipi   __shmat         shmat
 oldshmctl      EXTRA   shmctl          i:iip   __old_shmctl    shmctl@GLIBC_2.0
 shmdt          -       shmdt           i:s     __shmdt         shmdt
index 43c464d29847a7f640d6e3337153043b87db57a1..4bf482623c54ec24b4b61a23e1cde75d9ac54a3b 100644 (file)
@@ -23,7 +23,6 @@ personality   EXTRA   personality     Ei:i    __personality   personality
 
 # Semaphore and shm system calls.  msgctl, shmctl, and semctl have C
 # wrappers (to set __IPC_64).
-msgget         -       msgget          i:ii    __msgget        msgget
 shmat          -       shmat           i:ipi   __shmat         shmat
 shmdt          -       shmdt           i:s     __shmdt         shmdt
 shmget         -       shmget          i:iii   __shmget        shmget
index f65598aea04cb7a937f8e9c89bd55aef8e275ab8..ad752238845f26fa109ccfca4b031b631270431f 100644 (file)
@@ -1,7 +1,6 @@
 # File name    Caller  Syscall name    # args  Strong name     Weak names
 
 # SysV APIs
-msgget         -       msgget          i:ii    __msgget        msgget
 semget         -       semget          i:iii   __semget        semget
 semctl         -       semctl          i:iiii  __semctl        semctl
 semtimedop     -       semtimedop      i:ipip  semtimedop
index 3fbd81a8cd30ec0ad168426f255ea2cd543d75c2..da2c9abbbf0f824f5f08735f74e6eabd20e7ffa6 100644 (file)
@@ -1,7 +1,6 @@
 # File name    Caller  Syscall name    # args  Strong name     Weak names
 
 # semaphore and shm system calls
-msgget         -       msgget          i:ii    __msgget        msgget
 shmat          -       shmat           i:ipi   __shmat         shmat
 shmctl         -       shmctl          i:iip   __shmctl        shmctl
 shmdt          -       shmdt           i:s     __shmdt         shmdt
index 9edcbe62e6d5c97d23520ebad087345b88da738e..8056781e41bad7710354e7dafee9225cdabdd206 100644 (file)
@@ -5,7 +5,6 @@ umount2         -       umount          2       __umount2       umount2
 getpriority    -       getpriority     i:ii    __getpriority   getpriority
 
 # semaphore and shm system calls
-msgget         -       msgget          i:ii    __msgget        msgget
 shmat          -       shmat           i:ipi   __shmat         shmat
 shmctl         -       shmctl          i:iip   __shmctl        shmctl
 shmdt          -       shmdt           i:s     __shmdt         shmdt
index ed715bac91e0c1c5ca1e482d77a851096272a372..c40bac3eb0cc658fb9b1d68409911f6ba3bc94b5 100644 (file)
@@ -8,7 +8,6 @@ personality     EXTRA   personality     Ei:i    __personality   personality
 
 # Semaphore and shm system calls.  msgctl, shmctl, and semctl have C
 # wrappers (to set __IPC_64).
-msgget          -       msgget          i:ii    __msgget        msgget
 shmat           -       shmat           i:ipi   __shmat         shmat
 shmdt           -       shmdt           i:s     __shmdt         shmdt
 shmget          -       shmget          i:iii   __shmget        shmget
index 4c59a33fa399fdb1eaac0818e0c9925af6e29f88..7c992d775f6f0f800cfab7d34bd8507581380530 100644 (file)
@@ -2,7 +2,6 @@
 
 # Semaphore and shm system calls.  msgctl, shmctl, and semctl have C
 # wrappers (to set __IPC_64).
-msgget         -       msgget          i:ii    __msgget        msgget
 shmat          -       shmat           i:ipi   __shmat         shmat
 shmdt          -       shmdt           i:s     __shmdt         shmdt
 shmget         -       shmget          i:iii   __shmget        shmget
index ef98c758611467c158280fe01557fa5caf776c51..d487f04edd8b57829a91b73d72040143f97a8311 100644 (file)
    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 <stdlib.h>            /* for definition of NULL */
-
 #include <sysdep.h>
-#include <sys/syscall.h>
+#include <errno.h>
 
 /* Return descriptor for message queue associated with KEY.  The MSGFLG
    parameter describes how to proceed with clashing of key values.  */
@@ -30,5 +27,9 @@
 int
 msgget (key_t key, int msgflg)
 {
-  return INLINE_SYSCALL (ipc, 5, IPCOP_msgget, key, msgflg, 0, NULL);
+#ifdef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+  return INLINE_SYSCALL_CALL (msgget, key, msgflg);
+#else
+  return INLINE_SYSCALL_CALL (ipc, IPCOP_msgget, key, msgflg, 0, NULL);
+#endif
 }
index 259bdfc961ba81f1a67ccdf2176a90d1537869f1..f23b3798b4e9a47299a02f56eb318d5d7430afed 100644 (file)
@@ -1,7 +1,6 @@
 # File name    Caller  Syscall name    # args  Strong name     Weak names
 
 # semaphore and shm system calls
-msgget         -       msgget          i:ii    __msgget        msgget
 shmat          -       shmat           i:ipi   __shmat         shmat
 shmctl         -       shmctl          i:iip   __shmctl        shmctl
 shmdt          -       shmdt           i:s     __shmdt         shmdt
index 2d46bb36d03ffdc1396b2b4d713539751f690d4a..75b25a1b33cfe87b13a54170ba12b58164ae779a 100644 (file)
@@ -2,7 +2,6 @@
 
 arch_prctl     EXTRA   arch_prctl      i:ii    __arch_prctl    arch_prctl
 modify_ldt     EXTRA   modify_ldt      i:ipi   __modify_ldt    modify_ldt
-msgget         -       msgget          i:ii    __msgget        msgget
 pread64                -       pread64         Ci:ipii __libc_pread    __libc_pread64 __pread64 pread64 __pread pread
 preadv64       -       preadv          Ci:ipii preadv64        preadv
 pwrite64       -       pwrite64        Ci:ipii __libc_pwrite   __libc_pwrite64 __pwrite64 pwrite64 __pwrite pwrite