From patchwork Mon Nov 22 18:54:31 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adhemerval Zanella Netto X-Patchwork-Id: 48003 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 24F213858D28 for ; Mon, 22 Nov 2021 18:55:04 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 24F213858D28 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1637607304; bh=1bVt2UwVXrpf3YeEi0X0AQwQ4uXR4cf+E1yv9umtNz4=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=mn8+QiczmtgvFUzLgGiyhrPVJXCOa7Dxr+Gp45mDThimGauG5N15c6pFYQxe42SOr Ei57msaFb722kctLfYk7GYHTLjbKD2JeAt9Fo9q1DVVAGEqQ6hNnhTOU7BfJFidTE4 r2CpUzv1DURt7TiGiYy7Hdln8CIneOvCqDDs+puQ= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-ua1-x935.google.com (mail-ua1-x935.google.com [IPv6:2607:f8b0:4864:20::935]) by sourceware.org (Postfix) with ESMTPS id EC70B3858D28 for ; Mon, 22 Nov 2021 18:54:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org EC70B3858D28 Received: by mail-ua1-x935.google.com with SMTP id o1so38666224uap.4 for ; Mon, 22 Nov 2021 10:54:41 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=1bVt2UwVXrpf3YeEi0X0AQwQ4uXR4cf+E1yv9umtNz4=; b=TF4Gm0a62ZbH/aepYOwlWZUH4JghPPYSlMemHXw5TYebk1V8L/SCZe5ywZbxEhOypw S9uowsLBZ+OcJ4EoRrM7pR3LsywaePf1XVFpb3uYqjR2/S1izyu7Jc7tM+bPveoLo4Kx sM57Sr+HDp5v6DXObRUTA+1G2UTSe5QNAI/fdcSJg9Qm1ChpSkIAr25Frc9QnFO0UNBK e97iyrXPmlaKQtJfVFW/uYcjb6yD6eUuVt/3KYiLc7/yt3Jnx3nAtQZ1f0lFTFPilpRx olg8nhRgso6Z5aD6w64b/WU+3k/jGfJ1iKfkDSuFjnLsaoGDhaYSyC1IQk4VCgv580jU gfwg== X-Gm-Message-State: AOAM531l8T735ZrZ4a3zbrOWok43QO1Zos3JE2Qukb2vA4sRwgA9035D 6Dm0tFlvHhxGlPECwTkXggXJQzVU4aqMnw== X-Google-Smtp-Source: ABdhPJxYgCgkNhrMRin8huQrC/4xRNS0NW9wI1VbKhZoc5E85zov0JPuCF1fwUVc1lf5mjmWAxDiSw== X-Received: by 2002:a67:3093:: with SMTP id w141mr105937204vsw.24.1637607281220; Mon, 22 Nov 2021 10:54:41 -0800 (PST) Received: from birita.. ([2804:431:c7cb:e054:bce6:bc54:280c:f077]) by smtp.gmail.com with ESMTPSA id g187sm5197166vsc.10.2021.11.22.10.54.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Nov 2021 10:54:40 -0800 (PST) To: libc-alpha@sourceware.org, Stafford Horne Subject: [PATCH 0/6] linux: Some syscall refactors Date: Mon, 22 Nov 2021 15:54:31 -0300 Message-Id: <20211122185437.1934590-1-adhemerval.zanella@linaro.org> X-Mailer: git-send-email 2.32.0 MIME-Version: 1.0 X-Spam-Status: No, score=-6.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Adhemerval Zanella via Libc-alpha From: Adhemerval Zanella Netto Reply-To: Adhemerval Zanella Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" The autogeneration syscall list has some limitations: * 64-bit arguments might require to override with the specific kernel ABI (for instance if the ABI required even-off register number). * LFS might also incur arch-specific override. * Variadic call is also another source of potential issues, since some architectures might use a different call mechanism (for instance passing argument on the stack instead of registers) and the argument might impose some non obvious issues (for instance if 64-bit argument are used). Besides this issue, this patchset also refactors pipe (to remove the usage of arch-specific kernel ABIS), and provide C generic implementations for syscall and ioctl. Adhemerval Zanella (6): linux: Add fanotify_mark C implementation linux: Add prlimit64 C implementation linux: Implement mremap in C linux: Implement pipe in terms of __NR_pipe2 linux: Add generic syscall implementation linux: Add generic ioctl implementation sysdeps/unix/sysdep.h | 20 ++++++ sysdeps/unix/sysv/linux/Makefile | 6 +- sysdeps/unix/sysv/linux/alpha/pipe.S | 1 - sysdeps/unix/sysv/linux/arm/syscalls.list | 4 -- .../{sparc/sparc32/pipe.S => fanotify_mark.c} | 38 +++++------ .../linux/generic/wordsize-32/syscalls.list | 5 -- sysdeps/unix/sysv/linux/hppa/fanotify_mark.c | 2 + sysdeps/unix/sysv/linux/hppa/prlimit64.c | 2 + sysdeps/unix/sysv/linux/hppa/syscall.c | 65 ------------------ sysdeps/unix/sysv/linux/hppa/syscalls.list | 2 - sysdeps/unix/sysv/linux/i386/syscalls.list | 4 -- sysdeps/unix/sysv/linux/ia64/pipe.S | 36 ---------- .../pipe.S => sysv/linux/internal-ioctl.h} | 23 +++---- sysdeps/unix/sysv/linux/ioctl.c | 49 +++++++++++++ sysdeps/unix/sysv/linux/m68k/syscalls.list | 2 - .../unix/sysv/linux/microblaze/syscalls.list | 2 - .../unix/sysv/linux/mips/mips32/syscalls.list | 5 -- .../sysv/linux/mips/mips64/n32/syscalls.list | 4 -- .../sysv/linux/mips/mips64/n64/syscalls.list | 4 -- sysdeps/unix/sysv/linux/mips/pipe.S | 1 - .../linux/{sparc/sparc64/pipe.S => mremap.c} | 40 +++++------ sysdeps/unix/sysv/linux/{generic => }/pipe.c | 5 +- .../linux/powerpc/internal-ioctl.h} | 39 +++++++---- sysdeps/unix/sysv/linux/powerpc/ioctl.c | 68 ------------------- .../linux/powerpc/powerpc32/syscalls.list | 3 - sysdeps/unix/sysv/linux/prlimit.c | 2 + .../sysv/linux/{sh/pipe.S => prlimit64.c} | 45 ++++++------ sysdeps/unix/sysv/linux/riscv/syscall.c | 4 +- .../sysv/linux/s390/s390-32/syscalls.list | 2 - sysdeps/unix/sysv/linux/sh/fanotify_mark.c | 2 + sysdeps/unix/sysv/linux/sh/syscalls.list | 4 -- .../sysv/linux/sparc/sparc32/syscalls.list | 3 - sysdeps/unix/sysv/linux/syscall.c | 43 ++++++++++++ sysdeps/unix/sysv/linux/syscalls.list | 2 - .../unix/sysv/linux/wordsize-64/syscalls.list | 3 - 35 files changed, 225 insertions(+), 315 deletions(-) delete mode 100644 sysdeps/unix/sysv/linux/alpha/pipe.S rename sysdeps/unix/sysv/linux/{sparc/sparc32/pipe.S => fanotify_mark.c} (56%) delete mode 100644 sysdeps/unix/sysv/linux/generic/wordsize-32/syscalls.list create mode 100644 sysdeps/unix/sysv/linux/hppa/fanotify_mark.c create mode 100644 sysdeps/unix/sysv/linux/hppa/prlimit64.c delete mode 100644 sysdeps/unix/sysv/linux/hppa/syscall.c delete mode 100644 sysdeps/unix/sysv/linux/ia64/pipe.S rename sysdeps/unix/{alpha/pipe.S => sysv/linux/internal-ioctl.h} (69%) create mode 100644 sysdeps/unix/sysv/linux/ioctl.c delete mode 100644 sysdeps/unix/sysv/linux/mips/mips32/syscalls.list delete mode 100644 sysdeps/unix/sysv/linux/mips/pipe.S rename sysdeps/unix/sysv/linux/{sparc/sparc64/pipe.S => mremap.c} (56%) rename sysdeps/unix/sysv/linux/{generic => }/pipe.c (87%) rename sysdeps/unix/{mips/pipe.S => sysv/linux/powerpc/internal-ioctl.h} (53%) delete mode 100644 sysdeps/unix/sysv/linux/powerpc/ioctl.c rename sysdeps/unix/sysv/linux/{sh/pipe.S => prlimit64.c} (53%) create mode 100644 sysdeps/unix/sysv/linux/sh/fanotify_mark.c create mode 100644 sysdeps/unix/sysv/linux/syscall.c