From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 64142 invoked by alias); 2 Nov 2016 19:27:14 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 64116 invoked by uid 89); 2 Nov 2016 19:27:13 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=continuation, HX-Received:sk:j7mr385 X-HELO: mail-vk0-f48.google.com X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:subject:date:message-id; bh=CSASHJW8+RKlMKxRjDPQpHH2nWqUQGlLJG/m3HUR604=; b=cbLQ5RW15S4tGmRkkXIfM0Qfn0I43XmHX4UDsGPFWBYyoZylo84ae7ms5DuXlhJEb8 N82Xko+4aP2B7WaffoKwL2lg/sRI2VdY8Qv5zwc8jKxLP6/64CvEWr0/Dt/6oXpD+01s yxU7q1TsMfLbbY214lWVF49ATAGnAmx5Nx3CRnZA/J3o8Hd3J5se+sOrazh6ieV+A8kN SGHt9JmTquwT2RV/cfxWq9X5DN9uGASjtcf6QzCJB6pRS2wx5h20EBjK/hlhux9IhBtL itqcqz27K6Rjv4czdpSEdV2x7ZtNSjhVEwAc9qycbLITubt3cqhSvjFfK9UAGyl3+8RY eFIw== X-Gm-Message-State: ABUngvernw4UYtFMkrE1gOrVW9O6rX4twdFIjybzIyLlxok4FKirZKjNWdv9U9zPk9/HyRNq X-Received: by 10.31.60.7 with SMTP id j7mr3853203vka.30.1478114821234; Wed, 02 Nov 2016 12:27:01 -0700 (PDT) From: Adhemerval Zanella To: libc-alpha@sourceware.org Subject: [PATCH v2 00/16] Consolidate Linux sysvipc implementation Date: Wed, 02 Nov 2016 19:27:00 -0000 Message-Id: <1478114813-3526-1-git-send-email-adhemerval.zanella@linaro.org> X-SW-Source: 2016-11/txt/msg00069.txt.bz2 Changes from previous version: - Add __ASSUME_SYSVIPC_SYSCALL define on default linux kernel features headers and undefine it on architectures that do not support wired sysvipc syscalls. - Use __ASSUME_SYSVIPC_SYSCALL to define where to use wired syscalls. -- 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 (16): Add __ASSUME_SYSVIPC_SYSCALL for Linux 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 | 85 ++++++++++++++ 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/arm/msgctl.c | 33 ------ sysdeps/unix/sysv/linux/arm/semctl.c | 54 --------- sysdeps/unix/sysv/linux/arm/shmctl.c | 34 ------ sysdeps/unix/sysv/linux/i386/kernel-features.h | 3 + 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/mips/kernel-features.h | 2 + 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/msgctl.c | 42 ++++--- sysdeps/unix/sysv/linux/msgget.c | 11 +- sysdeps/unix/sysv/linux/msgrcv.c | 25 ++--- sysdeps/unix/sysv/linux/msgsnd.c | 7 +- sysdeps/unix/sysv/linux/powerpc/kernel-features.h | 3 + sysdeps/unix/sysv/linux/s390/kernel-features.h | 3 + sysdeps/unix/sysv/linux/s390/semtimedop.c | 12 +- sysdeps/unix/sysv/linux/semctl.c | 54 +++++---- 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 | 56 ++++------ 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/msgrcv.c | 32 ------ sysdeps/unix/sysv/linux/sparc/sparc64/semctl.c | 54 --------- sysvipc/Makefile | 2 + sysvipc/test-sysvmsg.c | 123 ++++++++++++++++++++ sysvipc/test-sysvsem.c | 115 +++++++++++++++++++ sysvipc/test-sysvshm.c | 130 ++++++++++++++++++++++ test-skeleton.c | 2 + 42 files changed, 624 insertions(+), 494 deletions(-) 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 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/sparc/sparc64/msgrcv.c delete mode 100644 sysdeps/unix/sysv/linux/sparc/sparc64/semctl.c create mode 100644 sysvipc/test-sysvmsg.c create mode 100644 sysvipc/test-sysvsem.c create mode 100644 sysvipc/test-sysvshm.c -- 2.7.4