mirror of git://sourceware.org/git/glibc.git
The __NR_statfs64 syscall is supported on all architectures but aarch64, mips64, riscv64, and x86_64. And newer ABIs also uses the new statfs64 interface (where the struct size is used as second argument). So the default implementation now uses: 1. __NR_statfs64 for non-LFS call and handle overflow directly There is no need to handle __NR_statfs since all architectures that only support are LFS only. 2. __NR_statfs if defined or __NR_statfs64 otherwise for LFS call. Alpha is the only outlier, since it is a 64-bit architecture which provides non-LFS interface and only provides __NR_statfs64 on newer kernels (v5.1+). Checked on x86_64-linux-gnu. Reviewed-by: Carlos O'Donell <carlos@redhat.com> |
||
---|---|---|
.. | ||
bits | ||
wordsize-32 | ||
Makefile | ||
README | ||
____longjmp_chk.c | ||
chmod.c | ||
chown.c | ||
dl-origin.c | ||
dup2.c | ||
epoll_create.c | ||
inotify_init.c | ||
lchown.c | ||
link.c | ||
mkdir.c | ||
pipe.c | ||
readlink.c | ||
rmdir.c | ||
stat-check.c | ||
symlink.c | ||
syscalls.list | ||
sysdep.h | ||
unlink.c | ||
xstatver.h |
README
This hierarchy supports Linux systems using the new asm-generic/unistd.h, which removes many familiar old syscalls. For example, to implement open(), newer Linux architectures require glibc to invoke the __NR_openat syscall with AT_FDCWD. This hierarchy provides all those implementations. It also provides support for 32-bit platforms using the 64-bit kernel syscall APIs, as the 32-bit ones are no longer provided. Note that newer ILP32 environments (x32 or AArch64:ILP32, for example) are converting to use more 64-bit types in kernel syscalls, so that aspect of this support is in more flux as of this writing.