mbox series

[RFC,0/2] AARCH64/ILP32: support stat syscalls

Message ID 1473436199-3305-1-git-send-email-ynorov@caviumnetworks.com
Headers show
Series AARCH64/ILP32: support stat syscalls | expand

Message

Yury Norov Sept. 9, 2016, 3:49 p.m. UTC
This is another implementation for stat syscalls. I tried to follow all comments.
It defines custom struct stat to avoid annoying copying, and implements custom
statfs syscalls to be compatible to lp64. The rest is taken from generic code.
XSTAT_IS_XSTAT64 and STAT_IS_KERNEL_STAT are enabled to reuse code and bypass
__xstat_conv().

First patch is the preparing work and not related to aarch64/ilp32 directly.
It may be applied separately.

Notice that kernel ABI is changed, so pull latest version for testing:
https://github.com/norov/linux/tree/linux-stat
https://github.com/norov/glibc/tree/glibc-stat

Yury Norov (2):
  generic/wordsize-32: don't duplicate lxstat, xstat if XSTAT_IS_XSTAT64
    is enabled
  [AARCH64] ILP32: stat syscalls

 sysdeps/unix/sysv/linux/aarch64/bits/stat.h        | 166 +++++++++++++++++++++
 sysdeps/unix/sysv/linux/aarch64/bits/statfs.h      |  68 +++++++++
 sysdeps/unix/sysv/linux/aarch64/ilp32/fstatfs.c    |   1 +
 sysdeps/unix/sysv/linux/aarch64/ilp32/fstatfs64.c  |  35 +++++
 sysdeps/unix/sysv/linux/aarch64/ilp32/fxstat.c     |   1 +
 sysdeps/unix/sysv/linux/aarch64/ilp32/fxstat64.c   |   1 +
 sysdeps/unix/sysv/linux/aarch64/ilp32/fxstatat.c   |   1 +
 sysdeps/unix/sysv/linux/aarch64/ilp32/fxstatat64.c |   1 +
 .../unix/sysv/linux/aarch64/ilp32/kernel_stat.h    |   7 +
 sysdeps/unix/sysv/linux/aarch64/ilp32/statfs.c     |   1 +
 sysdeps/unix/sysv/linux/aarch64/ilp32/statfs64.c   |  38 +++++
 .../unix/sysv/linux/generic/wordsize-32/lxstat.c   |   2 +
 .../unix/sysv/linux/generic/wordsize-32/lxstat64.c |   7 +
 .../unix/sysv/linux/generic/wordsize-32/xstat.c    |   2 +
 .../unix/sysv/linux/generic/wordsize-32/xstat64.c  |   7 +
 15 files changed, 338 insertions(+)
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/bits/stat.h
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/bits/statfs.h
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/fstatfs.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/fstatfs64.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/fxstat.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/fxstat64.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/fxstatat.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/fxstatat64.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/kernel_stat.h
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/statfs.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/statfs64.c

-- 
2.7.4