]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Use shmget syscall for linux implementation
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Wed, 26 Oct 2016 20:24:53 +0000 (18:24 -0200)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Wed, 28 Dec 2016 22:31:05 +0000 (20:31 -0200)
this patch add a direct call to shmget syscall if it is supported by
kernel features.

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

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

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 [deleted file]
sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list [deleted file]
sysdeps/unix/sysv/linux/shmget.c
sysdeps/unix/sysv/linux/x86_64/syscalls.list

index d6505cd9643356393f7eaf188947ad795ec52f01..041262c5ddc4138a5dce1228709708c10a596002 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 (shmget): Remove.
+       * sysdeps/unix/sysv/linux/arm/syscalls.list (shmget): Likewise.
+       * sysdeps/unix/sysv/linux/generic/syscalls.list (shmget): Likewise.
+       * sysdeps/unix/sysv/linux/hppa/syscalls.list (shmget): Likewise.
+       * sysdeps/unix/sysv/linux/ia64/syscalls.list (shmget): Likewise.
+       * sysdeps/unix/sysv/linux/microblaze/syscalls.list (shmget): Likewise.
+       * sysdeps/unix/sysv/linux/mips/mips64/syscalls.list (shmget):
+       Likewise.
+       * sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list (shmget):
+       Likewise.
+       * sysdeps/unix/sysv/linux/x86_64/syscalls.list (shmget): Likewise.
+       * sysdeps/unix/sysv/linux/shmget.c (shmget): Use shmget syscall if it
+       is defined.
+
        * sysdeps/unix/sysv/linux/alpha/syscalls.list (shmdt): Remove.
        * sysdeps/unix/sysv/linux/arm/syscalls.list (shmdt): Likewise.
        * sysdeps/unix/sysv/linux/generic/syscalls.list (shmdt): Likewise.
index 096bf229cc87c795adbe4c45b9e1e6784a4c0586..4001020a6f684569d65b17b46393798763129eb1 100644 (file)
@@ -1,7 +1,5 @@
 # File name    Caller  Syscall name    # args  Strong name     Weak names
 
-shmget         -       shmget          i:iii   __shmget        shmget
-
 sigstack       -       sigstack        2       sigstack
 
 getpriority    -       getpriority     i:ii    __getpriority   getpriority
index b1ea6641f3e638c41152056eaf465d798e07ccd2..0263eee406ef9c6fa43b8cebff29e334d5639d83 100644 (file)
@@ -21,10 +21,6 @@ fanotify_mark        EXTRA   fanotify_mark   i:iiiiis        fanotify_mark
 
 personality    EXTRA   personality     Ei:i    __personality   personality
 
-# Semaphore and shm system calls.  msgctl, shmctl, and semctl have C
-# wrappers (to set __IPC_64).
-shmget         -       shmget          i:iii   __shmget        shmget
-
 # proper socket implementations:
 accept         -       accept          Ci:iBN  __libc_accept   __accept accept
 bind           -       bind            i:ipi   __bind          bind
index 51ce1481590b4011b709e545aa77aa12983d5b23..3bb547303efdc49e6848d806793df4aa8eb20cc3 100644 (file)
@@ -1,8 +1,5 @@
 # File name    Caller  Syscall name    # args  Strong name     Weak names
 
-# SysV APIs
-shmget         -       shmget          i:iii   __shmget        shmget
-
 # Socket APIs
 socket         -       socket          i:iii   __socket        socket
 socketpair     -       socketpair      i:iiif  __socketpair    socketpair
index e75dd43566e81398a7967751ea980dcf3eaae406..6d47b11f8a61cdb87e093749752c35989ea8227e 100644 (file)
@@ -1,8 +1,5 @@
 # File name    Caller  Syscall name    # args  Strong name     Weak names
 
-# semaphore and shm system calls
-shmget         -       shmget          i:iii   __shmget        shmget
-
 # proper socket implementations:
 accept         -       accept          Ci:iBN  __libc_accept   __accept accept
 bind           -       bind            i:ipi   __bind          bind
index 5ebade11212b3dea22d0725a0d981c090477479c..dd07db3539549f6ee379bf7805e8bdeb69791035 100644 (file)
@@ -4,9 +4,6 @@ umount2         -       umount          2       __umount2       umount2
 
 getpriority    -       getpriority     i:ii    __getpriority   getpriority
 
-# semaphore and shm system calls
-shmget         -       shmget          i:iii   __shmget        shmget
-
 # proper socket implementations:
 accept         -       accept          Ci:iBN  __libc_accept   __accept accept
 bind           -       bind            i:ipi   __bind          bind
index 7a5666f2705be07c268c353ed7aa966139218e78..932c9cccc8dddce6b8b7d1a2742c9f1c421584ea 100644 (file)
@@ -5,7 +5,3 @@ cacheflush      EXTRA   cacheflush      i:iiii  __cacheflush    cacheflush
 prlimit64      EXTRA   prlimit64       i:iipp  prlimit64
 fanotify_mark  EXTRA   fanotify_mark   i:iiiiis        fanotify_mark
 personality    EXTRA   personality     Ei:i    __personality   personality
-
-# Semaphore and shm system calls.  msgctl, shmctl, and semctl have C
-# wrappers (to set __IPC_64).
-shmget          -       shmget          i:iii   __shmget        shmget
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/syscalls.list b/sysdeps/unix/sysv/linux/mips/mips64/syscalls.list
deleted file mode 100644 (file)
index e8e381b..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-# File name    Caller  Syscall name    Args    Strong name     Weak names
-
-# Semaphore and shm system calls.  msgctl, shmctl, and semctl have C
-# wrappers (to set __IPC_64).
-shmget         -       shmget          i:iii   __shmget        shmget
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list b/sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list
deleted file mode 100644 (file)
index 0ccbffa..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-# File name     Caller  Syscall name    # args  Strong name     Weak names
-
-# semaphore and shm system calls
-shmget          -       shmget          i:iii   __shmget        shmget
index bd624fc40b09c5a78abb5d0a246f0b957fbd58db..2cea6960d1a593437c2a0a832102901e3ceb36dc 100644 (file)
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
-#include <errno.h>
-#include <sys/shm.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 an identifier for an shared memory segment of at least size SIZE
    which is associated with KEY.  */
@@ -30,5 +27,9 @@
 int
 shmget (key_t key, size_t size, int shmflg)
 {
-  return INLINE_SYSCALL (ipc, 5, IPCOP_shmget, key, size, shmflg, NULL);
+#ifdef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+  return INLINE_SYSCALL_CALL (shmget, key, size, shmflg, NULL);
+#else
+  return INLINE_SYSCALL_CALL (ipc, IPCOP_shmget, key, size, shmflg, NULL);
+#endif
 }
index cb1a9f97f883dd8037927190d5217f9c57cb9708..45d5ebf59bd17bd8d6ba382e55b0a48557f97540 100644 (file)
@@ -6,7 +6,6 @@ pread64         -       pread64         Ci:ipii __libc_pread    __libc_pread64 __pread64 pread64 __prea
 preadv64       -       preadv          Ci:ipii preadv64        preadv
 pwrite64       -       pwrite64        Ci:ipii __libc_pwrite   __libc_pwrite64 __pwrite64 pwrite64 __pwrite pwrite
 pwritev64      -       pwritev         Ci:ipii pwritev64       pwritev
-shmget         -       shmget          i:iii   __shmget        shmget
 syscall_clock_gettime  EXTRA   clock_gettime   Ei:ip           __syscall_clock_gettime