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 0/4] Cancellation entrypoint refactor


Ping.

On 02-12-2015 16:31, Adhemerval Zanella wrote:
> 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
>>


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