Fix decoding of statfs family syscalls
Fix decoders of fstatfs, fstatfs64, statfs, and statfs64 syscalls
by rewriting them using mpers infrastructure.
* fetch_struct_statfs.c: New file.
* fstatfs.c: Likewise.
* fstatfs64.c: Likewise.
* print_statfs.c: Likewise.
* statfs.h: Likewise.
* statfs64.c: Likewise.
* statfs.c: Remove everything except SYS_FUNC(statfs).
* configure.ac: Remove the check for struct statfs64 in <sys/vfs.h>.
Add checks for struct statfs and struct statfs64 in <asm/statfs.h>.
Add checks for f_frsize and f_flags members of these structures.
* defs.h (struct strace_statfs): New forward declaration.
(print_struct_statfs, print_struct_statfs64): New prototypes.
* Makefile.am (libstrace_a_SOURCES): Add fstatfs.c, fstatfs64.c,
statfs.c, and statfs64.c.
(strace_SOURCES): Add fetch_struct_statfs.c, print_statfs.c,
and statfs.h.
* NEWS: Mention this fix.
* tests/fstatfs.c: New file.
* tests/fstatfs64.c: Likewise.
* tests/statfs64.c: Likewise.
* tests/xstatfs.c: Likewise.
* tests/xstatfs64.c: Likewise.
* tests/xstatfsx.c: Likewise.
* tests/fstatfs.test: New test.
* tests/fstatfs64.test: Likewise.
* tests/statfs64.test: Likewise.
* tests/statfs.c: Rewrite using xstatfs.c.
* tests/statfs.test: Update.
* tests/.gitignore: Add fstatfs, fstatfs64, and statfs64.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add fstatfs.test, fstatfs64.test, and statfs64.test.
(EXTRA_DIST): Add xstatfs.c, xstatfs64.c, and xstatfsx.c.
diff --git a/Makefile.am b/Makefile.am
index f02a421..96146dd 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -64,6 +64,10 @@
libstrace_a_CPPFLAGS = $(strace_CPPFLAGS)
libstrace_a_CFLAGS = $(strace_CFLAGS)
libstrace_a_SOURCES = \
+ fstatfs.c \
+ fstatfs64.c \
+ statfs.c \
+ statfs64.c \
sync_file_range.c \
sync_file_range2.c \
upeek.c \
@@ -103,6 +107,7 @@
fcntl.c \
fetch_seccomp_fprog.c \
fetch_struct_flock.c \
+ fetch_struct_statfs.c \
file.c \
file_handle.c \
flock.c \
@@ -157,6 +162,7 @@
print_mq_attr.c \
print_msgbuf.c \
print_sigevent.c \
+ print_statfs.c \
print_time.c \
print_timex.c \
printmode.c \
@@ -190,6 +196,7 @@
socketutils.c \
sram_alloc.c \
statfs.c \
+ statfs.h \
strace.c \
swapon.c \
syscall.c \