musl/include/sys
наб 7291c6c66a statvfs: allocate spare for f_type
This is the only missing part in struct statvfs. The LSB calls
[f]statfs() deprecated, and its weird types are definitely
off-putting. However, its use is required to get f_type.

Instead, allocate one of the six spares to f_type, copied directly
from struct statfs. This then becomes a small extension to the
standard interface on Linux, instead of two different interfaces, one
of which is quite odd due to being an ABI type, and there no longer is
any reason to use statfs().

The underlying kernel type is a mess, but all architectures agree on u32
(or more) for the ABI, and all filesystem magicks are 32-bit integers.

Since commit 6567db65f4 (prior to
1.0.0), the spare slots have been zero-filled, so on all versions that
may be reasonably be encountered in the wild, applications can rely on
a nonzero f_type as indication that the new field has been filled in.
2023-08-19 14:46:20 -04:00
..
acct.h remove indirect use of endian.h from public headers 2019-10-17 16:03:42 -04:00
auxv.h
cachectl.h
dir.h
epoll.h sys/epoll.h: add EPOLLNVAL from linux v4.16 2018-06-19 13:25:16 -04:00
errno.h
eventfd.h
fanotify.h sys/fanotify.h: add new FAN_* macros from linux v5.9 2020-11-29 00:54:36 -05:00
fcntl.h
file.h
fsuid.h
inotify.h sys/inotify.h: add IN_MASK_CREATE from linux v4.19 2019-03-13 12:29:27 -04:00
io.h
ioctl.h fix regression with applications that expect struct winsize in ioctl.h 2020-08-30 16:47:40 -04:00
ipc.h move IPC_STAT definition to a new bits/ipcstat.h file 2019-08-02 00:08:23 -04:00
kd.h move inclusion of linux headers for kd.h, soundcard.h, vt.h to bits 2018-07-20 01:06:41 -04:00
klog.h
membarrier.h sys/membarrier.h: add new constants from linux v5.10 2021-02-15 09:16:06 -05:00
mman.h remove LFS64 programming interfaces (macro-only) from _GNU_SOURCE 2022-10-19 14:01:31 -04:00
mount.h sys/mount.h: add MS_NOSYMFOLLOW from linux v5.10 2021-02-15 09:16:06 -05:00
msg.h allow archs to define IPC_STAT, propagate time64 bit to other macros 2019-08-02 00:08:23 -04:00
mtio.h
param.h
personality.h add missing personality values 2020-11-29 00:52:36 -05:00
poll.h
prctl.h sys/prctl.h: add PR_PAC_{SET,GET}_ENABLED_KEYS from linux v5.13 2022-03-08 17:21:26 -05:00
procfs.h fix elf_prstatus regression on time64, existing wrong definition on x32 2019-12-22 11:20:44 -05:00
ptrace.h sys/ptrace.h: add PTRACE_GET_RSEQ_CONFIGURATION from linux v5.13 2022-03-08 17:21:26 -05:00
quota.h
random.h sys/random.h: add GRND_INSECURE from linux v5.6 2020-09-09 17:20:27 -04:00
reboot.h
reg.h
resource.h remove LFS64 programming interfaces (macro-only) from _GNU_SOURCE 2022-10-19 14:01:31 -04:00
select.h add time64 symbol name redirects to public headers, under arch control 2019-10-28 19:26:52 -04:00
sem.h add time64 symbol name redirects to public headers, under arch control 2019-10-28 19:26:52 -04:00
sendfile.h remove LFS64 programming interfaces (macro-only) from _GNU_SOURCE 2022-10-19 14:01:31 -04:00
shm.h allow archs to define IPC_STAT, propagate time64 bit to other macros 2019-08-02 00:08:23 -04:00
signal.h
signalfd.h add SIGSYS support to sys/signalfd.h from linux v4.18 2018-12-09 22:25:21 -05:00
socket.h sys/socket.h: add new SO_ socket options from linux v5.11 2022-03-08 17:19:40 -05:00
soundcard.h move inclusion of linux headers for kd.h, soundcard.h, vt.h to bits 2018-07-20 01:06:41 -04:00
stat.h remove LFS64 programming interfaces (macro-only) from _GNU_SOURCE 2022-10-19 14:01:31 -04:00
statfs.h remove LFS64 programming interfaces (macro-only) from _GNU_SOURCE 2022-10-19 14:01:31 -04:00
statvfs.h statvfs: allocate spare for f_type 2023-08-19 14:46:20 -04:00
stropts.h
swap.h
syscall.h
sysinfo.h
syslog.h
sysmacros.h
termios.h
time.h add time64 symbol name redirects to public headers, under arch control 2019-10-28 19:26:52 -04:00
timeb.h add time64 symbol name redirects to public headers, under arch control 2019-10-28 19:26:52 -04:00
timerfd.h add time64 symbol name redirects to public headers, under arch control 2019-10-28 19:26:52 -04:00
times.h
timex.h add time64 symbol name redirects to public headers, under arch control 2019-10-28 19:26:52 -04:00
ttydefaults.h fix misleading use of _POSIX_VDISABLE in sys/ttydefaults.h 2020-01-29 10:47:48 -05:00
types.h remove LFS64 programming interfaces (macro-only) from _GNU_SOURCE 2022-10-19 14:01:31 -04:00
ucontext.h
uio.h remove LFS64 programming interfaces (macro-only) from _GNU_SOURCE 2022-10-19 14:01:31 -04:00
un.h
user.h
utsname.h
vfs.h
vt.h move inclusion of linux headers for kd.h, soundcard.h, vt.h to bits 2018-07-20 01:06:41 -04:00
wait.h fix integer overflow in WIFSTOPPED macro 2023-02-08 16:42:28 -05:00
xattr.h