This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH 0/4] Cancellation entrypoint refactor
- From: Adhemerval Zanella <adhemerval dot zanella at linaro dot org>
- To: libc-alpha at sourceware dot org
- Date: Wed, 2 Dec 2015 16:31:13 -0200
- Subject: Re: [PATCH 0/4] Cancellation entrypoint refactor
- Authentication-results: sourceware.org; auth=none
- References: <1447855356-4140-1-git-send-email-adhemerval dot zanella at linaro dot org>
Ping.
On 18-11-2015 12:02, Adhemerval Zanella wrote:
> These patches are a subset of a larger patchset I am working with the
> aim to both simplify both syscall cancellation entrypoints and its
> definition.
>
> The main aim is to remove the requirement of assembly macros definition
> on syscall-cancel.h and instead use C code through SYSCALL_CANCEL
> macro. This both simplify a new port creation by removing arch-specific
> code requirements and also make easier to adjust current ports to the
> new cancellation mechanism.
>
> To accomplish it the idea is remove all the syscall cancellation auto
> generation through syscalls.list and remove all the multiple syscall
> definition across multiple ports. So for all the cancellation
> entrypoints for linux will ending have a single C implementation on
> sysdep/unix/sysv/linux.
>
> The first patch add the __ASSUME_ALIGNED_REGISTER_PAIRS on the missing
> architectures that have the ABI constraint but does not define it.
> Second patch adds a new macro to use along long long syscalls arguments
> for 32-bits to currect split it 2 arguments. The third and last patch
> use these new macros to consolidate the pread and pwrite syscall
> definition in only one implementation.
>
> Although not required for this 4 patches, for other cancellation syscall
> cancellation definition the SYSCALL_CANCEL fix I sent some time ago
> is required [1].
>
> [1] https://sourceware.org/ml/libc-alpha/2015-10/msg00737.html
>
> Adhemerval Zanella (4):
> Define __ASSUME_ALIGNED_REGISTER_PAIRS for missing ports
> Consolidate off_t/off64_t syscall argument passing
> Consolidate pread/pread64 implementations
> Consolidate pwrite/pwrite64 implementations
>
> ChangeLog | 119 +++++++++++++++++++++
> sysdeps/unix/sysv/linux/aarch64/sysdep.h | 3 +
> sysdeps/unix/sysv/linux/alpha/sysdep.h | 5 +
> sysdeps/unix/sysv/linux/arm/kernel-features.h | 4 +
> sysdeps/unix/sysv/linux/arm/pread.c | 36 -------
> sysdeps/unix/sysv/linux/arm/pread64.c | 37 -------
> sysdeps/unix/sysv/linux/arm/pwrite.c | 36 -------
> sysdeps/unix/sysv/linux/arm/pwrite64.c | 38 -------
> sysdeps/unix/sysv/linux/arm/sysdep.h | 7 ++
> sysdeps/unix/sysv/linux/generic/sysdep.h | 2 +
> .../unix/sysv/linux/generic/wordsize-32/pread.c | 37 -------
> .../unix/sysv/linux/generic/wordsize-32/pread64.c | 34 ------
> .../unix/sysv/linux/generic/wordsize-32/pwrite.c | 36 -------
> .../unix/sysv/linux/generic/wordsize-32/pwrite64.c | 35 ------
> sysdeps/unix/sysv/linux/hppa/sysdep.h | 7 ++
> sysdeps/unix/sysv/linux/i386/sysdep.h | 7 ++
> sysdeps/unix/sysv/linux/ia64/sysdep.h | 5 +
> sysdeps/unix/sysv/linux/m68k/sysdep.h | 7 ++
> sysdeps/unix/sysv/linux/microblaze/sysdep.h | 7 ++
> sysdeps/unix/sysv/linux/mips/kernel-features.h | 6 ++
> sysdeps/unix/sysv/linux/mips/mips32/sysdep.h | 7 ++
> sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h | 5 +
> sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h | 5 +
> sysdeps/unix/sysv/linux/mips/pread.c | 54 ----------
> sysdeps/unix/sysv/linux/mips/pread64.c | 50 ---------
> sysdeps/unix/sysv/linux/mips/pwrite.c | 54 ----------
> sysdeps/unix/sysv/linux/mips/pwrite64.c | 51 ---------
> sysdeps/unix/sysv/linux/nios2/sysdep.h | 6 ++
> sysdeps/unix/sysv/linux/powerpc/kernel-features.h | 6 ++
> sysdeps/unix/sysv/linux/powerpc/powerpc32/pread.c | 34 ------
> .../unix/sysv/linux/powerpc/powerpc32/pread64.c | 35 ------
> sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite.c | 35 ------
> .../unix/sysv/linux/powerpc/powerpc32/pwrite64.c | 36 -------
> sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h | 25 ++---
> sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h | 23 +---
> sysdeps/unix/sysv/linux/pread.c | 20 +---
> sysdeps/unix/sysv/linux/pread64.c | 17 +--
> sysdeps/unix/sysv/linux/pwrite.c | 20 +---
> sysdeps/unix/sysv/linux/pwrite64.c | 17 +--
> sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h | 7 ++
> sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h | 5 +
> sysdeps/unix/sysv/linux/sh/pread.c | 43 --------
> sysdeps/unix/sysv/linux/sh/pread64.c | 43 --------
> sysdeps/unix/sysv/linux/sh/pwrite.c | 43 --------
> sysdeps/unix/sysv/linux/sh/pwrite64.c | 44 --------
> sysdeps/unix/sysv/linux/sh/sysdep.h | 7 ++
> sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h | 6 ++
> sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h | 4 +
> sysdeps/unix/sysv/linux/sparc/sysdep.h | 1 +
> sysdeps/unix/sysv/linux/tile/sysdep.h | 6 ++
> sysdeps/unix/sysv/linux/wordsize-64/pread64.c | 1 -
> sysdeps/unix/sysv/linux/wordsize-64/pwrite64.c | 1 -
> sysdeps/unix/sysv/linux/wordsize-64/syscalls.list | 2 -
> sysdeps/unix/sysv/linux/x86_64/sysdep.h | 6 ++
> 54 files changed, 276 insertions(+), 911 deletions(-)
> delete mode 100644 sysdeps/unix/sysv/linux/arm/pread.c
> delete mode 100644 sysdeps/unix/sysv/linux/arm/pread64.c
> delete mode 100644 sysdeps/unix/sysv/linux/arm/pwrite.c
> delete mode 100644 sysdeps/unix/sysv/linux/arm/pwrite64.c
> delete mode 100644 sysdeps/unix/sysv/linux/generic/wordsize-32/pread.c
> delete mode 100644 sysdeps/unix/sysv/linux/generic/wordsize-32/pread64.c
> delete mode 100644 sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite.c
> delete mode 100644 sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite64.c
> delete mode 100644 sysdeps/unix/sysv/linux/mips/pread.c
> delete mode 100644 sysdeps/unix/sysv/linux/mips/pread64.c
> delete mode 100644 sysdeps/unix/sysv/linux/mips/pwrite.c
> delete mode 100644 sysdeps/unix/sysv/linux/mips/pwrite64.c
> delete mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc32/pread.c
> delete mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc32/pread64.c
> delete mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite.c
> delete mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite64.c
> delete mode 100644 sysdeps/unix/sysv/linux/sh/pread.c
> delete mode 100644 sysdeps/unix/sysv/linux/sh/pread64.c
> delete mode 100644 sysdeps/unix/sysv/linux/sh/pwrite.c
> delete mode 100644 sysdeps/unix/sysv/linux/sh/pwrite64.c
> delete mode 100644 sysdeps/unix/sysv/linux/wordsize-64/pread64.c
> delete mode 100644 sysdeps/unix/sysv/linux/wordsize-64/pwrite64.c
>