This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH v4 0/4] Cancellation entrypoint refactor


Ping.

On 26-02-2016 03:19, Adhemerval Zanella wrote:
> Hi all,
> 
> This is a respin on previous patch.  Changes from previous version:
> 
>  * Second and third patch are merge on second one: instead of adding
>    the SYSCALL_LL{64} on generic Linux sysdep and make all ports
>    include the header the patch now moves the __ALIGNMENT_{ARG,COUNT}
>    to Linux sysdep and add the required definition on same header.
> 
>  * Some macro evaluation fixes on SYSCALL_LL{64} macro.
> 
> --
> 
> 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.
> 
> 
> 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                                          | 71 ++++++++++++++++++++++
>  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/generic/sysdep.h           | 10 ---
>  .../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/mips/kernel-features.h     | 13 ++++
>  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/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 | 18 ------
>  sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h | 18 ------
>  sysdeps/unix/sysv/linux/pread.c                    | 25 +++-----
>  sysdeps/unix/sysv/linux/pread64.c                  | 23 +++----
>  sysdeps/unix/sysv/linux/pwrite.c                   | 25 +++-----
>  sysdeps/unix/sysv/linux/pwrite64.c                 | 23 +++----
>  sysdeps/unix/sysv/linux/sh/pread.c                 | 30 ++-------
>  sysdeps/unix/sysv/linux/sh/pread64.c               | 30 ++-------
>  sysdeps/unix/sysv/linux/sh/pwrite.c                | 30 ++-------
>  sysdeps/unix/sysv/linux/sh/pwrite64.c              | 31 ++--------
>  sysdeps/unix/sysv/linux/sysdep.h                   | 23 +++++++
>  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/kernel-features.h   |  6 ++
>  36 files changed, 177 insertions(+), 851 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/wordsize-64/pread64.c
>  delete mode 100644 sysdeps/unix/sysv/linux/wordsize-64/pwrite64.c
> 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]