public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* [PATCH v3 00/17] Consolidate Linux sysvipc implementation
@ 2016-11-08 20:30 Adhemerval Zanella
  2016-11-08 20:30 ` [PATCH v3 11/17] Consolidate Linux semtimedop implementation Adhemerval Zanella
                   ` (18 more replies)
  0 siblings, 19 replies; 31+ messages in thread
From: Adhemerval Zanella @ 2016-11-08 20:30 UTC (permalink / raw)
  To: libc-alpha

Changes from previous version:

  - Refactor ipc_priv.h header to have working definition for all
    architectures.  The header basically contains Linux specific
    ABI definitions for the architecture to correctly use default
    implementation, including old ipc_perm definition, calling
    convention, and __IPC_64 value.

  - Set all architectures to use the default implementation.  It
    leaded to some code changes to accomodate all the architectures
    calling convention (with ipc_priv.h change) and some fixes
    on new default implementation.

  - Change mips64 implementation way to use the default one.

  - Some tests changes (name typos).

--

This patchset is a continuation of my Linux syscall consolidation
implementation and aimed for SySV IPC (message queue, semaphore,
and shared memory).

Current Linux default implementation only defines the old ipc
syscall method.  Architectures need to either to imply the generic
syscalls.list or reimplement the syscall definition.  To simplify
and allow to remove some old arch-specific implementation, I added
the direct syscall method for all supported IPC mechanisms.

Other changes are simple code reorganization to simplify and all
compatibility required for various ports.

The patchset also adds 3 simple tests that aims to check for correct
argument passing on syscall.  The idea is not to be an extensive
testing of all supported IPC.

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

Adhemerval Zanella (17):
  Add __ASSUME_SYSVIPC_SYSCALL for Linux
  Refactor Linux ipc_priv header
  Consolidate Linux msgctl implementation
  Consolidate Linux msgrcv implementation
  Use msgsnd syscall for Linux implementation
  Use msgget syscall for Linux implementation
  Add SYSV message queue test
  Consolidate Linux semctl implementation
  Use semget syscall for Linux implementation
  Use semop syscall for Linux implementation
  Consolidate Linux semtimedop implementation
  Add SYSV semaphore test
  Use shmat syscall for Linux implementation
  Consolidate Linux shmctl implementation
  Use shmdt syscall for linux implementation
  Use shmget syscall for linux implementation
  Add SYSV shared memory test

 ChangeLog                                          | 229 +++++++++++++++++++++
 sysdeps/unix/sysv/linux/aarch64/ipc_priv.h         |  32 +++
 sysdeps/unix/sysv/linux/alpha/Makefile             |   3 -
 sysdeps/unix/sysv/linux/alpha/ipc_priv.h           |  33 ++-
 sysdeps/unix/sysv/linux/alpha/kernel-features.h    |   3 +
 sysdeps/unix/sysv/linux/alpha/msgctl.c             |   1 -
 sysdeps/unix/sysv/linux/alpha/semctl.c             |   1 -
 sysdeps/unix/sysv/linux/alpha/shmctl.c             |   1 -
 sysdeps/unix/sysv/linux/alpha/syscalls.list        |  13 --
 sysdeps/unix/sysv/linux/arm/msgctl.c               |  33 ---
 sysdeps/unix/sysv/linux/arm/semctl.c               |  54 -----
 sysdeps/unix/sysv/linux/arm/shmctl.c               |  34 ---
 sysdeps/unix/sysv/linux/arm/syscalls.list          |  12 --
 sysdeps/unix/sysv/linux/generic/syscalls.list      |  14 --
 sysdeps/unix/sysv/linux/hppa/syscalls.list         |  14 --
 sysdeps/unix/sysv/linux/i386/kernel-features.h     |   3 +
 sysdeps/unix/sysv/linux/ia64/syscalls.list         |  14 --
 sysdeps/unix/sysv/linux/ipc_ops.h                  |  30 +++
 sysdeps/unix/sysv/linux/ipc_priv.h                 |  23 +--
 sysdeps/unix/sysv/linux/kernel-features.h          |   4 +
 sysdeps/unix/sysv/linux/m68k/kernel-features.h     |   3 +
 sysdeps/unix/sysv/linux/m68k/semtimedop.S          |  69 -------
 sysdeps/unix/sysv/linux/microblaze/msgctl.c        |   1 -
 sysdeps/unix/sysv/linux/microblaze/semctl.c        |   1 -
 sysdeps/unix/sysv/linux/microblaze/shmctl.c        |   1 -
 sysdeps/unix/sysv/linux/microblaze/syscalls.list   |  12 --
 sysdeps/unix/sysv/linux/mips/ipc_priv.h            |   1 -
 sysdeps/unix/sysv/linux/mips/kernel-features.h     |   2 +
 sysdeps/unix/sysv/linux/mips/mips64/ipc_priv.h     |  32 +++
 sysdeps/unix/sysv/linux/mips/mips64/msgctl.c       |  17 +-
 sysdeps/unix/sysv/linux/mips/mips64/semctl.c       |  38 +---
 sysdeps/unix/sysv/linux/mips/mips64/shmctl.c       |  17 +-
 sysdeps/unix/sysv/linux/mips/mips64/syscalls.list  |  12 --
 sysdeps/unix/sysv/linux/msgctl.c                   |  45 ++--
 sysdeps/unix/sysv/linux/msgget.c                   |  11 +-
 sysdeps/unix/sysv/linux/msgrcv.c                   |  26 +--
 sysdeps/unix/sysv/linux/msgsnd.c                   |  11 +-
 sysdeps/unix/sysv/linux/powerpc/ipc_priv.h         |  23 +--
 sysdeps/unix/sysv/linux/powerpc/kernel-features.h  |   3 +
 sysdeps/unix/sysv/linux/s390/kernel-features.h     |   3 +
 sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list |  14 --
 sysdeps/unix/sysv/linux/s390/semtimedop.c          |  12 +-
 sysdeps/unix/sysv/linux/semctl.c                   |  58 +++---
 sysdeps/unix/sysv/linux/semget.c                   |  11 +-
 sysdeps/unix/sysv/linux/semop.c                    |  10 +-
 sysdeps/unix/sysv/linux/semtimedop.c               |  13 +-
 sysdeps/unix/sysv/linux/sh/kernel-features.h       |   3 +
 sysdeps/unix/sysv/linux/shmat.c                    |  17 +-
 sysdeps/unix/sysv/linux/shmctl.c                   |  59 +++---
 sysdeps/unix/sysv/linux/shmdt.c                    |  12 +-
 sysdeps/unix/sysv/linux/shmget.c                   |  13 +-
 sysdeps/unix/sysv/linux/sparc/kernel-features.h    |   3 +
 sysdeps/unix/sysv/linux/sparc/sparc64/ipc_priv.h   |  41 ++++
 sysdeps/unix/sysv/linux/sparc/sparc64/msgrcv.c     |  32 ---
 sysdeps/unix/sysv/linux/sparc/sparc64/semctl.c     |  54 -----
 sysdeps/unix/sysv/linux/x86_64/ipc_priv.h          |  32 +++
 sysdeps/unix/sysv/linux/x86_64/syscalls.list       |  12 --
 sysvipc/Makefile                                   |   2 +
 sysvipc/test-sysvmsg.c                             | 128 ++++++++++++
 sysvipc/test-sysvsem.c                             | 116 +++++++++++
 sysvipc/test-sysvshm.c                             | 130 ++++++++++++
 test-skeleton.c                                    |   2 +
 62 files changed, 1010 insertions(+), 643 deletions(-)
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ipc_priv.h
 delete mode 100644 sysdeps/unix/sysv/linux/alpha/msgctl.c
 delete mode 100644 sysdeps/unix/sysv/linux/alpha/semctl.c
 delete mode 100644 sysdeps/unix/sysv/linux/alpha/shmctl.c
 delete mode 100644 sysdeps/unix/sysv/linux/arm/msgctl.c
 delete mode 100644 sysdeps/unix/sysv/linux/arm/semctl.c
 delete mode 100644 sysdeps/unix/sysv/linux/arm/shmctl.c
 create mode 100644 sysdeps/unix/sysv/linux/ipc_ops.h
 delete mode 100644 sysdeps/unix/sysv/linux/m68k/semtimedop.S
 delete mode 100644 sysdeps/unix/sysv/linux/microblaze/msgctl.c
 delete mode 100644 sysdeps/unix/sysv/linux/microblaze/semctl.c
 delete mode 100644 sysdeps/unix/sysv/linux/microblaze/shmctl.c
 delete mode 100644 sysdeps/unix/sysv/linux/mips/ipc_priv.h
 create mode 100644 sysdeps/unix/sysv/linux/mips/mips64/ipc_priv.h
 delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list
 create mode 100644 sysdeps/unix/sysv/linux/sparc/sparc64/ipc_priv.h
 delete mode 100644 sysdeps/unix/sysv/linux/sparc/sparc64/msgrcv.c
 delete mode 100644 sysdeps/unix/sysv/linux/sparc/sparc64/semctl.c
 create mode 100644 sysdeps/unix/sysv/linux/x86_64/ipc_priv.h
 create mode 100644 sysvipc/test-sysvmsg.c
 create mode 100644 sysvipc/test-sysvsem.c
 create mode 100644 sysvipc/test-sysvshm.c

-- 
2.7.4

^ permalink raw reply	[flat|nested] 31+ messages in thread

end of thread, other threads:[~2017-01-05 20:57 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-11-08 20:30 [PATCH v3 00/17] Consolidate Linux sysvipc implementation Adhemerval Zanella
2016-11-08 20:30 ` [PATCH v3 11/17] Consolidate Linux semtimedop implementation Adhemerval Zanella
2016-11-08 20:30 ` [PATCH v3 12/17] Add SYSV semaphore test Adhemerval Zanella
2016-11-08 20:30 ` [PATCH v3 15/17] Use shmdt syscall for linux implementation Adhemerval Zanella
2016-11-08 20:30 ` [PATCH v3 13/17] Use shmat syscall for Linux implementation Adhemerval Zanella
2016-11-08 20:30 ` [PATCH v3 02/17] Refactor Linux ipc_priv header Adhemerval Zanella
2016-11-08 20:30 ` [PATCH v3 10/17] Use semop syscall for Linux implementation Adhemerval Zanella
2016-11-08 20:30 ` [PATCH v3 03/17] Consolidate Linux msgctl implementation Adhemerval Zanella
2016-11-08 20:30 ` [PATCH v3 04/17] Consolidate Linux msgrcv implementation Adhemerval Zanella
2016-11-08 20:30 ` [PATCH v3 01/17] Add __ASSUME_SYSVIPC_SYSCALL for Linux Adhemerval Zanella
2016-11-08 21:19   ` Andreas Schwab
2016-11-09 13:23     ` Adhemerval Zanella
2016-11-08 20:31 ` [PATCH v3 17/17] Add SYSV shared memory test Adhemerval Zanella
2016-11-08 20:31 ` [PATCH v3 06/17] Use msgget syscall for Linux implementation Adhemerval Zanella
2016-11-08 20:31 ` [PATCH v3 07/17] Add SYSV message queue test Adhemerval Zanella
2016-11-08 21:23   ` Andreas Schwab
2016-11-09 13:28     ` Adhemerval Zanella
2016-11-08 20:31 ` [PATCH v3 16/17] Use shmget syscall for linux implementation Adhemerval Zanella
2016-11-08 20:31 ` [PATCH v3 08/17] Consolidate Linux semctl implementation Adhemerval Zanella
2016-11-08 20:31 ` [PATCH v3 05/17] Use msgsnd syscall for Linux implementation Adhemerval Zanella
2016-11-08 21:13   ` Andreas Schwab
2016-11-09 13:23     ` Adhemerval Zanella
2016-11-08 20:31 ` [PATCH v3 14/17] Consolidate Linux shmctl implementation Adhemerval Zanella
2016-11-08 20:31 ` [PATCH v3 09/17] Use semget syscall for Linux implementation Adhemerval Zanella
2016-11-09 13:57 ` [PATCH v3 00/17] Consolidate Linux sysvipc implementation Yury Norov
2016-11-25 14:02 ` Adhemerval Zanella
2016-12-07 19:14   ` Adhemerval Zanella
2016-12-09 18:31     ` Steve Ellcey
2016-12-09 20:04       ` Arnd Bergmann
2017-01-05 20:57         ` Yury Norov
2016-12-09 20:18       ` Adhemerval Zanella

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).