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

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

* sysdeps/unix/sysv/linux/alpha/syscalls.list (semget): Remove.
* sysdeps/unix/sysv/linux/arm/syscalls.list (semget): Likewise.
* sysdeps/unix/sysv/linux/generic/syscalls.list (semget): Likewise.
* sysdeps/unix/sysv/linux/hppa/syscalls.list (semget): Likewise.
* sysdeps/unix/sysv/linux/ia64/syscalls.list (semget): Likewise.
* sysdeps/unix/sysv/linux/microblaze/syscalls.list (semget): Likewise.
* sysdeps/unix/sysv/linux/mips/mips64/syscalls.list (semget):
Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list (semget):
Likewise.
* sysdeps/unix/sysv/linux/x86_64/syscalls.list (semget): Likewise.
* sysdeps/unix/sysv/linux/semget.c (semget): Use semget 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
sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list
sysdeps/unix/sysv/linux/semget.c
sysdeps/unix/sysv/linux/x86_64/syscalls.list

index b9e40cc12d910ca9997dc9e132ae5a008903cfa7..f4de0e318a7d5e6c3258353d643529400a1d4fcd 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 (semget): Remove.
+       * sysdeps/unix/sysv/linux/arm/syscalls.list (semget): Likewise.
+       * sysdeps/unix/sysv/linux/generic/syscalls.list (semget): Likewise.
+       * sysdeps/unix/sysv/linux/hppa/syscalls.list (semget): Likewise.
+       * sysdeps/unix/sysv/linux/ia64/syscalls.list (semget): Likewise.
+       * sysdeps/unix/sysv/linux/microblaze/syscalls.list (semget): Likewise.
+       * sysdeps/unix/sysv/linux/mips/mips64/syscalls.list (semget):
+       Likewise.
+       * sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list (semget):
+       Likewise.
+       * sysdeps/unix/sysv/linux/x86_64/syscalls.list (semget): Likewise.
+       * sysdeps/unix/sysv/linux/semget.c (semget): Use semget syscall
+       if it is defined.
+
        * sysdeps/unix/sysv/linux/alpha/Makefile (sysdeps_routines): Remove
        oldsemctl.
        * sysdeps/unix/sysv/linux/alpha/semctl.c: Remove file.
index c12620a382633e132db0f2593fb936b0d4bb3931..2533263114b510a0bddeb89b8a7c39b6f2e67534 100644 (file)
@@ -6,7 +6,6 @@ shmdt           -       shmdt           i:s     __shmdt         shmdt
 shmget         -       shmget          i:iii   __shmget        shmget
 semop          -       semop           i:ipi   __semop         semop
 semtimedop     -       semtimedop      i:ipip  semtimedop
-semget         -       semget          i:iii   __semget        semget
 
 sigstack       -       sigstack        2       sigstack
 
index 4bf482623c54ec24b4b61a23e1cde75d9ac54a3b..ef5bd0152c580217aa0f59a9f4d5f21873c179d3 100644 (file)
@@ -28,7 +28,6 @@ shmdt         -       shmdt           i:s     __shmdt         shmdt
 shmget         -       shmget          i:iii   __shmget        shmget
 semop          -       semop           i:ipi   __semop         semop
 semtimedop     -       semtimedop      i:ipip  semtimedop
-semget         -       semget          i:iii   __semget        semget
 
 # proper socket implementations:
 accept         -       accept          Ci:iBN  __libc_accept   __accept accept
index f95f1f7a490335b675b7f970339880c9fa3a344b..485f6fe4c87dfd1838f89a2e8451bf6c4d003885 100644 (file)
@@ -1,7 +1,6 @@
 # File name    Caller  Syscall name    # args  Strong name     Weak names
 
 # SysV APIs
-semget         -       semget          i:iii   __semget        semget
 semtimedop     -       semtimedop      i:ipip  semtimedop
 semop          -       semop           i:ipi   __semop         semop
 shmget         -       shmget          i:iii   __shmget        shmget
index 5040ef34ecb0ae9b622c027b6ead4fa982f5e06d..685ab93a4fd91500bc29f847e3e5a14b2afde225 100644 (file)
@@ -7,7 +7,6 @@ shmdt           -       shmdt           i:s     __shmdt         shmdt
 shmget         -       shmget          i:iii   __shmget        shmget
 semop          -       semop           i:ipi   __semop         semop
 semtimedop      -       semtimedop      i:ipip  semtimedop
-semget         -       semget          i:iii   __semget        semget
 
 # proper socket implementations:
 accept         -       accept          Ci:iBN  __libc_accept   __accept accept
index ca5cba46f86a59911ac5b9028ab00b6705c9947b..56200ba2d2ccbc7897df644db9e6c7c58069eaa5 100644 (file)
@@ -11,7 +11,6 @@ shmdt         -       shmdt           i:s     __shmdt         shmdt
 shmget         -       shmget          i:iii   __shmget        shmget
 semop          -       semop           i:ipi   __semop         semop
 semtimedop     -       semtimedop      i:ipip  semtimedop
-semget         -       semget          i:iii   __semget        semget
 
 # proper socket implementations:
 accept         -       accept          Ci:iBN  __libc_accept   __accept accept
index c40bac3eb0cc658fb9b1d68409911f6ba3bc94b5..a0b8ebf14872a2a0f0b84c16342f925351b11397 100644 (file)
@@ -13,4 +13,3 @@ shmdt           -       shmdt           i:s     __shmdt         shmdt
 shmget          -       shmget          i:iii   __shmget        shmget
 semop           -       semop           i:ipi   __semop         semop
 semtimedop      -       semtimedop      i:ipip  semtimedop
-semget          -       semget          i:iii   __semget        semget
index 7c992d775f6f0f800cfab7d34bd8507581380530..374fcc221334207ae3ebb7543805e73da8085b15 100644 (file)
@@ -7,4 +7,3 @@ shmdt           -       shmdt           i:s     __shmdt         shmdt
 shmget         -       shmget          i:iii   __shmget        shmget
 semop          -       semop           i:ipi   __semop         semop
 semtimedop     -       semtimedop      i:ipip  semtimedop
-semget         -       semget          i:iii   __semget        semget
index 09ab5805048bacfd6d84ffd6ff61a493054b7141..288e0808d85d364cc34be12030536141f03f3795 100644 (file)
@@ -6,4 +6,3 @@ shmctl          -       shmctl          i:iip   __shmctl        shmctl
 shmdt          -       shmdt           i:s     __shmdt         shmdt
 shmget         -       shmget          i:iii   __shmget        shmget
 semop          -       semop           i:ipi   __semop         semop
-semget         -       semget          i:iii   __semget        semget
index 52189fd693261f3065cbce09166aacdfc777d1ed..a8876f5a399721b5ad32212d79fa7dcfb8002cda 100644 (file)
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
-#include <errno.h>
 #include <sys/sem.h>
 #include <ipc_priv.h>
-#include <stdlib.h>            /* for definition of NULL */
-
 #include <sysdep.h>
-#include <sys/syscall.h>
+#include <errno.h>
 
 /* Return identifier for array of NSEMS semaphores associated with
    KEY.  */
@@ -30,5 +27,9 @@
 int
 semget (key_t key, int nsems, int semflg)
 {
-  return INLINE_SYSCALL (ipc, 5, IPCOP_semget, key, nsems, semflg, NULL);
+#ifdef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+  return INLINE_SYSCALL_CALL (semget, key, nsems, semflg);
+#else
+  return INLINE_SYSCALL_CALL (ipc, IPCOP_semget, key, nsems, semflg, NULL);
+#endif
 }
index f3a15416a47b87e10d7473183e3138f3212bc7cb..d77a7ca5895d509dbbda77f2585174424a805b0b 100644 (file)
@@ -12,7 +12,6 @@ shmdt         -       shmdt           i:s     __shmdt         shmdt
 shmget         -       shmget          i:iii   __shmget        shmget
 semop          -       semop           i:ipi   __semop         semop
 semtimedop     -       semtimedop      i:ipip  semtimedop
-semget         -       semget          i:iii   __semget        semget
 syscall_clock_gettime  EXTRA   clock_gettime   Ei:ip           __syscall_clock_gettime