From: Eugene Syromyatnikov Date: Mon, 17 Apr 2017 18:29:44 +0000 (+0200) Subject: Implement -e trace=%fstatfs option X-Git-Tag: v4.17~52 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b4aabcb16f515ecf0dc9b9044114532aca47eeaa;p=strace Implement -e trace=%fstatfs option linux/*/syscallent*.h part is updated automatically by: sed -i 's/TD,[[:space:]]\([[:space:]]*SEN.*[_"]fstatv\?fs\)/TD|TFSF,\1/' \ linux/*/syscallent*.h * sysent.h (TRACE_FSTATFS): New macro. * syscall.c: Alias TFSF to TRACE_FSTATFS around syscallent.h inclusion. * qualify.c (lookup_class): Add SCHED_FSTATFS for "%fstatfs". * strace.1 (.SS Filtering): Add information about %fstatfs syscall class. * NEWS: Mention this change. * linux/32/syscallent.h (fstatfs64): Add TFSF flag. * linux/64/syscallent.h (fstatfs): Likewise. * linux/aarch64/syscallent.h: Likewise. * linux/mips/syscallent-n64.h: Likewise. * linux/x32/syscallent.h: Likewise. * linux/x86_64/syscallent.h: Likewise. * linux/arm/syscallent.h (fstatfs, fstatfs64): Likewise. * linux/avr32/syscallent.h: Likewise. * linux/bfin/syscallent.h: Likewise. * linux/crisv10/syscallent.h: Likewise. * linux/hppa/syscallent.h: Likewise. * linux/i386/syscallent.h: Likewise. * linux/ia64/syscallent.h: Likewise. * linux/m68k/syscallent.h: Likewise. * linux/microblaze/syscallent.h: Likewise. * linux/mips/syscallent-n32.h: Likewise. * linux/mips/syscallent-o32.h: Likewise. * linux/powerpc/syscallent.h: Likewise. * linux/powerpc64/syscallent.h: Likewise. * linux/s390/syscallent.h: Likewise. * linux/s390x/syscallent.h: Likewise. * linux/sh/syscallent.h: Likewise. * linux/sh64/syscallent.h: Likewise. * linux/sparc/syscallent.h: Likewise. * linux/sparc64/syscallent.h: Likewise. * linux/xtensa/syscallent.h: Likewise. * linux/alpha/syscallent.h (ofs_fstatfs, osf_fstatfs64): Likewise. * linux/mips/syscallent-compat.h (*_fstatfs, *_fstatvfs): Likewise. * tests/gen_tests.in (trace_fstatfs): New entry. * tests/trace_fstatfs.in: New file. * tests/Makefile.am (EXTRA_DIST): Add it. * tests/ksysent.c (TFSF): New macro, defined to 0. * tests/nsyscalls.c: Likewise. --- diff --git a/NEWS b/NEWS index 12cc5932..8e4a42ff 100644 --- a/NEWS +++ b/NEWS @@ -11,6 +11,8 @@ Noteworthy changes in release ?.?? (????-??-??) * Enhanced decoding of sched_setattr syscall. * Added -e trace=%statfs option for tracing statfs, statfs64 and statvfs syscalls. + * Added -e trace=%fstatfs option for tracing fstatfs, fstatfs64 and fstatvfs + syscalls. * Added -e trace=/regex option for filtering syscalls using regular expressions. * Implemented decoding of signal mask in rt_sigreturn syscall on alpha, arc, diff --git a/linux/32/syscallent.h b/linux/32/syscallent.h index 7b609cbf..8e3ec0ec 100644 --- a/linux/32/syscallent.h +++ b/linux/32/syscallent.h @@ -45,7 +45,7 @@ [ 41] = { 2, TF, SEN(pivotroot), "pivot_root" }, [ 42] = { 3, 0, SEN(nfsservctl), "nfsservctl" }, [ 43] = { 3, TF|TSF, SEN(statfs64), "statfs64" }, -[ 44] = { 3, TD, SEN(fstatfs64), "fstatfs64" }, +[ 44] = { 3, TD|TFSF, SEN(fstatfs64), "fstatfs64" }, [ 45] = { 3, TF, SEN(truncate64), "truncate64" }, [ 46] = { 3, TD, SEN(ftruncate64), "ftruncate64" }, [ 47] = { 6, TD, SEN(fallocate), "fallocate" }, diff --git a/linux/64/syscallent.h b/linux/64/syscallent.h index d137d246..b7da8840 100644 --- a/linux/64/syscallent.h +++ b/linux/64/syscallent.h @@ -42,7 +42,7 @@ [ 41] = { 2, TF, SEN(pivotroot), "pivot_root" }, [ 42] = { 3, 0, SEN(nfsservctl), "nfsservctl" }, [ 43] = { 2, TF|TSF, SEN(statfs), "statfs" }, -[ 44] = { 2, TD, SEN(fstatfs), "fstatfs" }, +[ 44] = { 2, TD|TFSF, SEN(fstatfs), "fstatfs" }, [ 45] = { 2, TF, SEN(truncate), "truncate" }, [ 46] = { 2, TD, SEN(ftruncate), "ftruncate" }, [ 47] = { 4, TD, SEN(fallocate), "fallocate" }, diff --git a/linux/aarch64/syscallent.h b/linux/aarch64/syscallent.h index e760fdc4..b98bd61a 100644 --- a/linux/aarch64/syscallent.h +++ b/linux/aarch64/syscallent.h @@ -44,7 +44,7 @@ [1052] = { 3, TD, SEN(fcntl), "fcntl" }, [1053] = { 4, TD, SEN(fadvise64), "fadvise64" }, [1054] = { 4, TD|TF, SEN(newfstatat), "newfstatat" }, -[1055] = { 2, TD, SEN(fstatfs), "fstatfs" }, +[1055] = { 2, TD|TFSF, SEN(fstatfs), "fstatfs" }, [1056] = { 2, TF|TSF, SEN(statfs), "statfs" }, [1057] = { 3, TD, SEN(lseek), "lseek" }, [1058] = { 6, TD|TM|SI, SEN(mmap), "mmap" }, diff --git a/linux/alpha/syscallent.h b/linux/alpha/syscallent.h index 8ec07c2e..8c641a9c 100644 --- a/linux/alpha/syscallent.h +++ b/linux/alpha/syscallent.h @@ -186,7 +186,7 @@ [158] = { 5, 0, SEN(printargs), "osf_nfssvc" }, /* not implemented */ [159] = { 4, 0, SEN(printargs), "osf_getdirentries" }, [160] = { 3, TF|TSF, SEN(osf_statfs), "osf_statfs" }, -[161] = { 3, TD, SEN(osf_fstatfs), "osf_fstatfs" }, +[161] = { 3, TD|TFSF, SEN(osf_fstatfs), "osf_fstatfs" }, [162] = { }, [163] = { 5, 0, SEN(printargs), "osf_asynch_daemon" }, /* not implemented */ [164] = { 5, 0, SEN(printargs), "osf_getfh" }, /* not implemented */ @@ -231,7 +231,7 @@ [225] = { 2, TF, SEN(printargs), "osf_lstat" }, [226] = { 2, TD, SEN(printargs), "osf_fstat" }, [227] = { 3, TF|TSF, SEN(osf_statfs), "osf_statfs64" }, -[228] = { 3, TD, SEN(osf_fstatfs), "osf_fstatfs64" }, +[228] = { 3, TD|TFSF, SEN(osf_fstatfs), "osf_fstatfs64" }, [229 ... 232] = { }, [233] = { 1, 0, SEN(getpgid), "getpgid" }, [234] = { 1, 0, SEN(getsid), "getsid" }, @@ -292,7 +292,7 @@ [326] = { 1, NF, SEN(setfsgid), "setfsgid" }, [327] = { 2, 0, SEN(ustat), "ustat" }, [328] = { 2, TF|TSF, SEN(statfs), "statfs" }, -[329] = { 2, TD, SEN(fstatfs), "fstatfs" }, +[329] = { 2, TD|TFSF, SEN(fstatfs), "fstatfs" }, [330] = { 2, 0, SEN(sched_setparam), "sched_setparam" }, [331] = { 2, 0, SEN(sched_getparam), "sched_getparam" }, [332] = { 3, 0, SEN(sched_setscheduler), "sched_setscheduler" }, diff --git a/linux/arm/syscallent.h b/linux/arm/syscallent.h index a74d7ac5..ec787806 100644 --- a/linux/arm/syscallent.h +++ b/linux/arm/syscallent.h @@ -126,7 +126,7 @@ [ 97] = { 3, 0, SEN(setpriority), "setpriority" }, [ 98] = { 4, 0, SEN(profil), "profil" }, [ 99] = { 2, TF|TSF, SEN(statfs), "statfs" }, -[100] = { 2, TD, SEN(fstatfs), "fstatfs" }, +[100] = { 2, TD|TFSF, SEN(fstatfs), "fstatfs" }, [101] = { 3, 0, SEN(ioperm), "ioperm" }, [102] = { 2, TD, SEN(socketcall), "socketcall" }, [103] = { 3, 0, SEN(syslog), "syslog" }, @@ -291,7 +291,7 @@ [264] = { 2, 0, SEN(clock_getres), "clock_getres" }, [265] = { 4, 0, SEN(clock_nanosleep), "clock_nanosleep" }, [266] = { 3, TF|TSF, SEN(statfs64), "statfs64" }, -[267] = { 3, TD, SEN(fstatfs64), "fstatfs64" }, +[267] = { 3, TD|TFSF, SEN(fstatfs64), "fstatfs64" }, [268] = { 3, TS, SEN(tgkill), "tgkill" }, [269] = { 2, TF, SEN(utimes), "utimes" }, [270] = { 6, TD, SEN(fadvise64_64), "fadvise64_64" }, diff --git a/linux/avr32/syscallent.h b/linux/avr32/syscallent.h index cbf9ae0a..5a6e556a 100644 --- a/linux/avr32/syscallent.h +++ b/linux/avr32/syscallent.h @@ -125,7 +125,7 @@ [ 97] = { 3, 0, SEN(setpriority), "setpriority" }, [ 98] = { 4, TP, SEN(wait4), "wait4" }, [ 99] = { 2, TF|TSF, SEN(statfs), "statfs" }, -[100] = { 2, TD, SEN(fstatfs), "fstatfs" }, +[100] = { 2, TD|TFSF, SEN(fstatfs), "fstatfs" }, [101] = { 0, 0, SEN(vhangup), "vhangup" }, [102] = { 2, TS, SEN(sigaltstack), "sigaltstack" }, [103] = { 3, 0, SEN(syslog), "syslog" }, @@ -245,7 +245,7 @@ [217] = { 2, 0, SEN(clock_getres), "clock_getres" }, [218] = { 4, 0, SEN(clock_nanosleep), "clock_nanosleep" }, [219] = { 3, TF|TSF, SEN(statfs64), "statfs64" }, -[220] = { 3, TD, SEN(fstatfs64), "fstatfs64" }, +[220] = { 3, TD|TFSF, SEN(fstatfs64), "fstatfs64" }, [221] = { 3, TS, SEN(tgkill), "tgkill" }, [222] = { }, [223] = { 2, TF, SEN(utimes), "utimes" }, diff --git a/linux/bfin/syscallent.h b/linux/bfin/syscallent.h index 5d80b1b3..d2d4bfc4 100644 --- a/linux/bfin/syscallent.h +++ b/linux/bfin/syscallent.h @@ -126,7 +126,7 @@ [ 97] = { 3, 0, SEN(setpriority), "setpriority" }, [ 98] = { 4, 0, SEN(profil), "profil" }, [ 99] = { 2, TF|TSF, SEN(statfs), "statfs" }, -[100] = { 2, TD, SEN(fstatfs), "fstatfs" }, +[100] = { 2, TD|TFSF, SEN(fstatfs), "fstatfs" }, [101] = { 3, 0, SEN(ioperm), "ioperm" }, [102] = { 2, TD, SEN(socketcall), "socketcall" }, [103] = { 3, 0, SEN(syslog), "syslog" }, @@ -295,7 +295,7 @@ [267] = { 2, 0, SEN(clock_getres), "clock_getres" }, [268] = { 4, 0, SEN(clock_nanosleep), "clock_nanosleep" }, [269] = { 3, TF|TSF, SEN(statfs64), "statfs64" }, -[270] = { 3, TD, SEN(fstatfs64), "fstatfs64" }, +[270] = { 3, TD|TFSF, SEN(fstatfs64), "fstatfs64" }, [271] = { 3, TS, SEN(tgkill), "tgkill" }, [272] = { 2, TF, SEN(utimes), "utimes" }, [273] = { 6, TD, SEN(fadvise64_64), "fadvise64_64" }, diff --git a/linux/crisv10/syscallent.h b/linux/crisv10/syscallent.h index d55df80f..de3e1f26 100644 --- a/linux/crisv10/syscallent.h +++ b/linux/crisv10/syscallent.h @@ -98,7 +98,7 @@ [ 97] = { 3, 0, SEN(setpriority), "setpriority" }, [ 98] = { 4, 0, SEN(profil), "profil" }, [ 99] = { 2, TF|TSF, SEN(statfs), "statfs" }, -[100] = { 2, TD, SEN(fstatfs), "fstatfs" }, +[100] = { 2, TD|TFSF, SEN(fstatfs), "fstatfs" }, [101] = { 3, 0, SEN(ioperm), "ioperm" }, [102] = { 2, TD, SEN(socketcall), "socketcall" }, [103] = { 3, 0, SEN(syslog), "syslog" }, @@ -263,7 +263,7 @@ [266] = { 2, 0, SEN(clock_getres), "clock_getres" }, [267] = { 4, 0, SEN(clock_nanosleep), "clock_nanosleep" }, [268] = { 3, TF|TSF, SEN(statfs64), "statfs64" }, -[269] = { 3, TD, SEN(fstatfs64), "fstatfs64" }, +[269] = { 3, TD|TFSF, SEN(fstatfs64), "fstatfs64" }, [270] = { 3, TS, SEN(tgkill), "tgkill" }, [271] = { 2, TF, SEN(utimes), "utimes" }, [272] = { 6, TD, SEN(fadvise64_64), "fadvise64_64" }, diff --git a/linux/hppa/syscallent.h b/linux/hppa/syscallent.h index c1c527de..fc461c21 100644 --- a/linux/hppa/syscallent.h +++ b/linux/hppa/syscallent.h @@ -102,7 +102,7 @@ [ 97] = { 3, 0, SEN(setpriority), "setpriority" }, [ 98] = { 4, TN, SEN(recv), "recv" }, [ 99] = { 2, TF|TSF, SEN(statfs), "statfs" }, -[100] = { 2, TD, SEN(fstatfs), "fstatfs" }, +[100] = { 2, TD|TFSF, SEN(fstatfs), "fstatfs" }, [101] = { 2, TF, SEN(stat64), "stat64" }, [102] = { }, [103] = { 3, 0, SEN(syslog), "syslog" }, @@ -301,7 +301,7 @@ [296] = { 3, 0, SEN(getcpu), "getcpu" }, [297] = { 6, TD, SEN(epoll_pwait), "epoll_pwait" }, [298] = { 3, TF|TSF, SEN(statfs64), "statfs64" }, -[299] = { 3, TD, SEN(fstatfs64), "fstatfs64" }, +[299] = { 3, TD|TFSF, SEN(fstatfs64), "fstatfs64" }, [300] = { 4, 0, SEN(kexec_load), "kexec_load" }, [301] = { 4, TD|TF, SEN(utimensat), "utimensat" }, [302] = { 3, TD|TS, SEN(signalfd), "signalfd" }, diff --git a/linux/i386/syscallent.h b/linux/i386/syscallent.h index 8309a75f..ed53742c 100644 --- a/linux/i386/syscallent.h +++ b/linux/i386/syscallent.h @@ -126,7 +126,7 @@ [ 97] = { 3, 0, SEN(setpriority), "setpriority" }, [ 98] = { 4, 0, SEN(profil), "profil" }, [ 99] = { 2, TF|TSF, SEN(statfs), "statfs" }, -[100] = { 2, TD, SEN(fstatfs), "fstatfs" }, +[100] = { 2, TD|TFSF, SEN(fstatfs), "fstatfs" }, [101] = { 3, 0, SEN(ioperm), "ioperm" }, [102] = { 2, TD, SEN(socketcall), "socketcall" }, [103] = { 3, 0, SEN(syslog), "syslog" }, @@ -294,7 +294,7 @@ [266] = { 2, 0, SEN(clock_getres), "clock_getres" }, [267] = { 4, 0, SEN(clock_nanosleep), "clock_nanosleep" }, [268] = { 3, TF|TSF, SEN(statfs64), "statfs64" }, -[269] = { 3, TD, SEN(fstatfs64), "fstatfs64" }, +[269] = { 3, TD|TFSF, SEN(fstatfs64), "fstatfs64" }, [270] = { 3, TS, SEN(tgkill), "tgkill" }, [271] = { 2, TF, SEN(utimes), "utimes" }, [272] = { 6, TD, SEN(fadvise64_64), "fadvise64_64" }, diff --git a/linux/ia64/syscallent.h b/linux/ia64/syscallent.h index c4e68c61..4db26fae 100644 --- a/linux/ia64/syscallent.h +++ b/linux/ia64/syscallent.h @@ -121,7 +121,7 @@ [1101] = { 2, 0, SEN(getpriority), "getpriority" }, [1102] = { 3, 0, SEN(setpriority), "setpriority" }, [1103] = { 2, TF|TSF, SEN(statfs), "statfs" }, -[1104] = { 2, TD, SEN(fstatfs), "fstatfs" }, +[1104] = { 2, TD|TFSF, SEN(fstatfs), "fstatfs" }, [1105] = { 0, NF, SEN(gettid), "gettid" }, [1106] = { 3, TI, SEN(semget), "semget" }, [1107] = { 3, TI, SEN(semop), "semop" }, @@ -274,7 +274,7 @@ [1254] = { 2, 0, SEN(clock_gettime), "clock_gettime" }, [1255] = { 2, 0, SEN(clock_getres), "clock_getres" }, [1256] = { 4, 0, SEN(clock_nanosleep), "clock_nanosleep" }, -[1257] = { 3, TD, SEN(fstatfs64), "fstatfs64" }, +[1257] = { 3, TD|TFSF, SEN(fstatfs64), "fstatfs64" }, [1258] = { 3, TF|TSF, SEN(statfs64), "statfs64" }, [1259] = { 6, TM, SEN(mbind), "mbind" }, [1260] = { 5, TM, SEN(get_mempolicy), "get_mempolicy" }, diff --git a/linux/m68k/syscallent.h b/linux/m68k/syscallent.h index abde584b..9726f836 100644 --- a/linux/m68k/syscallent.h +++ b/linux/m68k/syscallent.h @@ -126,7 +126,7 @@ [ 97] = { 3, 0, SEN(setpriority), "setpriority" }, [ 98] = { 4, 0, SEN(profil), "profil" }, [ 99] = { 2, TF|TSF, SEN(statfs), "statfs" }, -[100] = { 2, TD, SEN(fstatfs), "fstatfs" }, +[100] = { 2, TD|TFSF, SEN(fstatfs), "fstatfs" }, [101] = { 3, 0, SEN(ioperm), "ioperm" }, [102] = { 2, TD, SEN(socketcall), "socketcall" }, [103] = { 3, 0, SEN(syslog), "syslog" }, @@ -289,7 +289,7 @@ [261] = { 2, 0, SEN(clock_getres), "clock_getres" }, [262] = { 4, 0, SEN(clock_nanosleep), "clock_nanosleep" }, [263] = { 3, TF|TSF, SEN(statfs64), "statfs64" }, -[264] = { 3, TD, SEN(fstatfs64), "fstatfs64" }, +[264] = { 3, TD|TFSF, SEN(fstatfs64), "fstatfs64" }, [265] = { 3, TS, SEN(tgkill), "tgkill" }, [266] = { 2, TF, SEN(utimes), "utimes" }, [267] = { 6, TD, SEN(fadvise64_64), "fadvise64_64" }, diff --git a/linux/microblaze/syscallent.h b/linux/microblaze/syscallent.h index b1877acf..c1e937d4 100644 --- a/linux/microblaze/syscallent.h +++ b/linux/microblaze/syscallent.h @@ -126,7 +126,7 @@ [ 97] = { 3, 0, SEN(setpriority), "setpriority" }, [ 98] = { 4, 0, SEN(profil), "profil" }, [ 99] = { 2, TF|TSF, SEN(statfs), "statfs" }, -[100] = { 2, TD, SEN(fstatfs), "fstatfs" }, +[100] = { 2, TD|TFSF, SEN(fstatfs), "fstatfs" }, [101] = { 3, 0, SEN(ioperm), "ioperm" }, [102] = { 2, TD, SEN(socketcall), "socketcall" }, [103] = { 3, 0, SEN(syslog), "syslog" }, @@ -294,7 +294,7 @@ [266] = { 2, 0, SEN(clock_getres), "clock_getres" }, [267] = { 4, 0, SEN(clock_nanosleep), "clock_nanosleep" }, [268] = { 3, TF|TSF, SEN(statfs64), "statfs64" }, -[269] = { 3, TD, SEN(fstatfs64), "fstatfs64" }, +[269] = { 3, TD|TFSF, SEN(fstatfs64), "fstatfs64" }, [270] = { 3, TS, SEN(tgkill), "tgkill" }, [271] = { 2, TF, SEN(utimes), "utimes" }, [272] = { 6, TD, SEN(fadvise64_64), "fadvise64_64" }, diff --git a/linux/mips/syscallent-compat.h b/linux/mips/syscallent-compat.h index c30b00c9..b08b6bd1 100644 --- a/linux/mips/syscallent-compat.h +++ b/linux/mips/syscallent-compat.h @@ -36,7 +36,7 @@ [ 35] = { 0, TF|TSF, SEN(printargs), "svr4_statfs" }, [ 36] = { 0, 0, SEN(printargs), "svr4_sync" }, [ 37] = { 0, 0, SEN(printargs), "svr4_kill" }, -[ 38] = { 0, TD, SEN(printargs), "svr4_fstatfs" }, +[ 38] = { 0, TD|TFSF,SEN(printargs), "svr4_fstatfs" }, [ 39] = { 0, 0, SEN(printargs), "svr4_setpgrp" }, [ 40] = { 0, 0, SEN(printargs), "svr4_cxenix" }, [ 41] = { 0, 0, SEN(printargs), "svr4_dup" }, @@ -97,7 +97,7 @@ [ 101] = { 0, 0, SEN(printargs), "svr4_evsys" }, [ 102] = { 0, 0, SEN(printargs), "svr4_evtrapret" }, [ 103] = { 0, TF|TSF, SEN(printargs), "svr4_statvfs" }, -[ 104] = { 0, TD, SEN(printargs), "svr4_fstatvfs" }, +[ 104] = { 0, TD|TFSF,SEN(printargs), "svr4_fstatvfs" }, [ 105] = { }, [ 106] = { 0, 0, SEN(printargs), "svr4_nfssys" }, [ 107] = { 0, 0, SEN(printargs), "svr4_waitid" }, @@ -187,7 +187,7 @@ [1035] = { 0, TF|TSF, SEN(printargs), "sysv_statfs" }, [1036] = { 0, 0, SEN(printargs), "sysv_sync" }, [1037] = { 0, 0, SEN(printargs), "sysv_kill" }, -[1038] = { 0, TD, SEN(printargs), "sysv_fstatfs" }, +[1038] = { 0, TD|TFSF,SEN(printargs), "sysv_fstatfs" }, [1039] = { 0, 0, SEN(printargs), "sysv_setpgrp" }, [1040] = { 0, 0, SEN(printargs), "sysv_syssgi" }, [1041] = { 0, 0, SEN(printargs), "sysv_dup" }, @@ -319,7 +319,7 @@ [1172] = { 0, 0, SEN(printargs), "sysv_sigaltstack" }, [1173] = { 0, 0, SEN(printargs), "sysv_sigsendset" }, [1174] = { 0, TF|TSF, SEN(printargs), "sysv_statvfs" }, -[1175] = { 0, TD, SEN(printargs), "sysv_fstatvfs" }, +[1175] = { 0, TD|TFSF,SEN(printargs), "sysv_fstatvfs" }, [1176] = { 0, 0, SEN(printargs), "sysv_getpmsg" }, [1177] = { 0, 0, SEN(printargs), "sysv_putpmsg" }, [1178] = { 0, 0, SEN(printargs), "sysv_lchown" }, @@ -495,7 +495,7 @@ [2158] = { 0, 0, SEN(printargs), "bsd43_nfs_svc" }, [2159] = { 0, 0, SEN(printargs), "bsd43_getdirentries" }, [2160] = { 0, TF|TSF, SEN(printargs), "bsd43_statfs" }, -[2161] = { 0, TD, SEN(printargs), "bsd43_fstatfs" }, +[2161] = { 0, TD|TFSF,SEN(printargs), "bsd43_fstatfs" }, [2162] = { 0, 0, SEN(printargs), "bsd43_unmount" }, [2163] = { 0, 0, SEN(printargs), "bsd43_async_daemon" }, [2164] = { 0, 0, SEN(printargs), "bsd43_nfs_getfh" }, @@ -565,7 +565,7 @@ [3035] = { 0, TF|TSF, SEN(printargs), "posix_statfs" }, [3036] = { 0, 0, SEN(printargs), "posix_sync" }, [3037] = { 0, 0, SEN(printargs), "posix_kill" }, -[3038] = { 0, TD, SEN(printargs), "posix_fstatfs" }, +[3038] = { 0, TD|TFSF,SEN(printargs), "posix_fstatfs" }, [3039] = { 0, 0, SEN(printargs), "posix_getpgrp" }, [3040] = { 0, 0, SEN(printargs), "posix_syssgi" }, [3041] = { 0, 0, SEN(printargs), "posix_dup" }, diff --git a/linux/mips/syscallent-n32.h b/linux/mips/syscallent-n32.h index 5d5ce9c2..ba5f9a0f 100644 --- a/linux/mips/syscallent-n32.h +++ b/linux/mips/syscallent-n32.h @@ -135,7 +135,7 @@ [6132] = { 1, NF, SEN(personality), "personality" }, [6133] = { 2, 0, SEN(ustat), "ustat" }, [6134] = { 2, TF|TSF, SEN(statfs), "statfs" }, -[6135] = { 2, TD, SEN(fstatfs), "fstatfs" }, +[6135] = { 2, TD|TFSF, SEN(fstatfs), "fstatfs" }, [6136] = { 3, 0, SEN(sysfs), "sysfs" }, [6137] = { 2, 0, SEN(getpriority), "getpriority" }, [6138] = { 3, 0, SEN(setpriority), "setpriority" }, @@ -218,7 +218,7 @@ [6215] = { 4, TI, SEN(semtimedop), "semtimedop" }, [6216] = { 4, TD, SEN(fadvise64_64), "fadvise64" }, [6217] = { 3, TF|TSF, SEN(statfs64), "statfs64" }, -[6218] = { 3, TD, SEN(fstatfs64), "fstatfs64" }, +[6218] = { 3, TD|TFSF, SEN(fstatfs64), "fstatfs64" }, [6219] = { 4, TD|TN, SEN(sendfile64), "sendfile64" }, [6220] = { 3, 0, SEN(timer_create), "timer_create" }, [6221] = { 4, 0, SEN(timer_settime), "timer_settime" }, diff --git a/linux/mips/syscallent-n64.h b/linux/mips/syscallent-n64.h index 271c7be6..e7c7202c 100644 --- a/linux/mips/syscallent-n64.h +++ b/linux/mips/syscallent-n64.h @@ -135,7 +135,7 @@ [5132] = { 1, NF, SEN(personality), "personality" }, [5133] = { 2, 0, SEN(ustat), "ustat" }, [5134] = { 2, TF|TSF, SEN(statfs), "statfs" }, -[5135] = { 2, TD, SEN(fstatfs), "fstatfs" }, +[5135] = { 2, TD|TFSF, SEN(fstatfs), "fstatfs" }, [5136] = { 3, 0, SEN(sysfs), "sysfs" }, [5137] = { 2, 0, SEN(getpriority), "getpriority" }, [5138] = { 3, 0, SEN(setpriority), "setpriority" }, diff --git a/linux/mips/syscallent-o32.h b/linux/mips/syscallent-o32.h index 1ba14935..ebffcfc1 100644 --- a/linux/mips/syscallent-o32.h +++ b/linux/mips/syscallent-o32.h @@ -100,7 +100,7 @@ [4097] = { 3, 0, SEN(setpriority), "setpriority" }, [4098] = { 0, 0, SEN(profil), "profil" }, [4099] = { 2, TF|TSF, SEN(statfs), "statfs" }, -[4100] = { 2, TD, SEN(fstatfs), "fstatfs" }, +[4100] = { 2, TD|TFSF, SEN(fstatfs), "fstatfs" }, [4101] = { 3, 0, SEN(ioperm), "ioperm" }, [4102] = { 2, TD, SEN(socketcall), "socketcall" }, [4103] = { 3, 0, SEN(syslog), "syslog" }, @@ -256,7 +256,7 @@ [4253] = { 0, 0, SEN(restart_syscall), "restart_syscall" }, [4254] = { 7, TD, SEN(fadvise64_64), "fadvise64" }, [4255] = { 3, TF|TSF, SEN(statfs64), "statfs64" }, -[4256] = { 3, TD, SEN(fstatfs64), "fstatfs64" }, +[4256] = { 3, TD|TFSF, SEN(fstatfs64), "fstatfs64" }, [4257] = { 3, 0, SEN(timer_create), "timer_create" }, [4258] = { 4, 0, SEN(timer_settime), "timer_settime" }, [4259] = { 2, 0, SEN(timer_gettime), "timer_gettime" }, diff --git a/linux/powerpc/syscallent.h b/linux/powerpc/syscallent.h index dc8be613..5e0a6c94 100644 --- a/linux/powerpc/syscallent.h +++ b/linux/powerpc/syscallent.h @@ -126,7 +126,7 @@ [ 97] = { 3, 0, SEN(setpriority), "setpriority" }, [ 98] = { 4, 0, SEN(profil), "profil" }, [ 99] = { 2, TF|TSF, SEN(statfs), "statfs" }, -[100] = { 2, TD, SEN(fstatfs), "fstatfs" }, +[100] = { 2, TD|TFSF, SEN(fstatfs), "fstatfs" }, [101] = { 3, 0, SEN(ioperm), "ioperm" }, [102] = { 2, TD, SEN(socketcall), "socketcall" }, [103] = { 3, 0, SEN(syslog), "syslog" }, @@ -279,7 +279,7 @@ [250] = { 3, TS, SEN(tgkill), "tgkill" }, [251] = { 2, TF, SEN(utimes), "utimes" }, [252] = { 3, TF|TSF, SEN(statfs64), "statfs64" }, -[253] = { 3, TD, SEN(fstatfs64), "fstatfs64" }, +[253] = { 3, TD|TFSF, SEN(fstatfs64), "fstatfs64" }, [254] = { 6, TD, SEN(fadvise64_64), "fadvise64_64" }, [255] = { 1, 0, SEN(printargs), "rtas" }, [256] = { 5, 0, SEN(printargs), "sys_debug_setcontext" }, diff --git a/linux/powerpc64/syscallent.h b/linux/powerpc64/syscallent.h index 3307be49..ee5fa804 100644 --- a/linux/powerpc64/syscallent.h +++ b/linux/powerpc64/syscallent.h @@ -126,7 +126,7 @@ [ 97] = { 3, 0, SEN(setpriority), "setpriority" }, [ 98] = { 4, 0, SEN(profil), "profil" }, [ 99] = { 2, TF|TSF, SEN(statfs), "statfs" }, -[100] = { 2, TD, SEN(fstatfs), "fstatfs" }, +[100] = { 2, TD|TFSF, SEN(fstatfs), "fstatfs" }, [101] = { 3, 0, SEN(ioperm), "ioperm" }, [102] = { 2, TD, SEN(socketcall), "socketcall" }, [103] = { 3, 0, SEN(syslog), "syslog" }, @@ -274,7 +274,7 @@ [250] = { 3, TS, SEN(tgkill), "tgkill" }, [251] = { 2, TF, SEN(utimes), "utimes" }, [252] = { 3, TF|TSF, SEN(statfs64), "statfs64" }, -[253] = { 3, TD, SEN(fstatfs64), "fstatfs64" }, +[253] = { 3, TD|TFSF, SEN(fstatfs64), "fstatfs64" }, [254] = { }, [255] = { 1, 0, SEN(printargs), "rtas" }, [256] = { 5, 0, SEN(printargs), "sys_debug_setcontext" }, diff --git a/linux/s390/syscallent.h b/linux/s390/syscallent.h index 805756df..9d22b100 100644 --- a/linux/s390/syscallent.h +++ b/linux/s390/syscallent.h @@ -128,7 +128,7 @@ [ 97] = { 3, 0, SEN(setpriority), "setpriority" }, [ 98] = { }, [ 99] = { 2, TF|TSF, SEN(statfs), "statfs" }, -[100] = { 2, TD, SEN(fstatfs), "fstatfs" }, +[100] = { 2, TD|TFSF, SEN(fstatfs), "fstatfs" }, [101] = { 3, 0, SEN(ioperm), "ioperm" }, [102] = { 2, TD, SEN(socketcall), "socketcall" }, [103] = { 3, 0, SEN(syslog), "syslog" }, @@ -294,7 +294,7 @@ [263] = { 5, 0, SEN(vserver), "vserver" }, [264] = { 6, TD, SEN(fadvise64_64), "fadvise64_64" }, [265] = { 3, TF|TSF, SEN(statfs64), "statfs64" }, -[266] = { 3, TD, SEN(fstatfs64), "fstatfs64" }, +[266] = { 3, TD|TFSF, SEN(fstatfs64), "fstatfs64" }, [267] = { 5, TM|SI, SEN(remap_file_pages), "remap_file_pages" }, [268] = { 6, TM, SEN(mbind), "mbind" }, [269] = { 5, TM, SEN(get_mempolicy), "get_mempolicy" }, diff --git a/linux/s390x/syscallent.h b/linux/s390x/syscallent.h index 67fb0ee0..16343a01 100644 --- a/linux/s390x/syscallent.h +++ b/linux/s390x/syscallent.h @@ -122,7 +122,7 @@ [ 97] = { 3, 0, SEN(setpriority), "setpriority" }, [ 98] = { }, [ 99] = { 2, TF|TSF, SEN(statfs), "statfs" }, -[100] = { 2, TD, SEN(fstatfs), "fstatfs" }, +[100] = { 2, TD|TFSF, SEN(fstatfs), "fstatfs" }, [101] = { }, [102] = { 2, TD, SEN(socketcall), "socketcall" }, [103] = { 3, 0, SEN(syslog), "syslog" }, @@ -278,7 +278,7 @@ [263] = { 5, 0, SEN(vserver), "vserver" }, [264] = { }, [265] = { 3, TF|TSF, SEN(statfs64), "statfs64" }, -[266] = { 3, TD, SEN(fstatfs64), "fstatfs64" }, +[266] = { 3, TD|TFSF, SEN(fstatfs64), "fstatfs64" }, [267] = { 5, TM|SI, SEN(remap_file_pages), "remap_file_pages" }, [268] = { 6, TM, SEN(mbind), "mbind" }, [269] = { 5, TM, SEN(get_mempolicy), "get_mempolicy" }, diff --git a/linux/sh/syscallent.h b/linux/sh/syscallent.h index 53f44a4d..8206ea19 100644 --- a/linux/sh/syscallent.h +++ b/linux/sh/syscallent.h @@ -128,7 +128,7 @@ [ 97] = { 3, 0, SEN(setpriority), "setpriority" }, [ 98] = { 4, 0, SEN(profil), "profil" }, [ 99] = { 2, TF|TSF, SEN(statfs), "statfs" }, -[100] = { 2, TD, SEN(fstatfs), "fstatfs" }, +[100] = { 2, TD|TFSF, SEN(fstatfs), "fstatfs" }, [101] = { 3, 0, SEN(ioperm), "ioperm" }, [102] = { 2, TD, SEN(socketcall), "socketcall" }, [103] = { 3, 0, SEN(syslog), "syslog" }, @@ -294,7 +294,7 @@ [266] = { 2, 0, SEN(clock_getres), "clock_getres" }, [267] = { 4, 0, SEN(clock_nanosleep), "clock_nanosleep" }, [268] = { 3, TF|TSF, SEN(statfs64), "statfs64" }, -[269] = { 3, TD, SEN(fstatfs64), "fstatfs64" }, +[269] = { 3, TD|TFSF, SEN(fstatfs64), "fstatfs64" }, [270] = { 3, TS, SEN(tgkill), "tgkill" }, [271] = { 2, TF, SEN(utimes), "utimes" }, [272] = { 6, TD, SEN(fadvise64_64), "fadvise64_64" }, diff --git a/linux/sh64/syscallent.h b/linux/sh64/syscallent.h index 8a8f4cb6..2499a6b6 100644 --- a/linux/sh64/syscallent.h +++ b/linux/sh64/syscallent.h @@ -126,7 +126,7 @@ [ 97] = { 3, 0, SEN(setpriority), "setpriority" }, [ 98] = { 4, 0, SEN(profil), "profil" }, [ 99] = { 2, TF|TSF, SEN(statfs), "statfs" }, -[100] = { 2, TD, SEN(fstatfs), "fstatfs" }, +[100] = { 2, TD|TFSF, SEN(fstatfs), "fstatfs" }, [101] = { 3, 0, SEN(ioperm), "ioperm" }, [102] = { 2, TD, SEN(socketcall), "socketcall" }, [103] = { 3, 0, SEN(syslog), "syslog" }, @@ -320,7 +320,7 @@ [294] = { 2, 0, SEN(clock_getres), "clock_getres" }, [295] = { 4, 0, SEN(clock_nanosleep), "clock_nanosleep" }, [296] = { 3, TF|TSF, SEN(statfs64), "statfs64" }, -[297] = { 3, TD, SEN(fstatfs64), "fstatfs64" }, +[297] = { 3, TD|TFSF, SEN(fstatfs64), "fstatfs64" }, [298] = { 3, TS, SEN(tgkill), "tgkill" }, [299] = { 2, TF, SEN(utimes), "utimes" }, [300] = { 4, TD, SEN(fadvise64_64), "fadvise64_64" }, diff --git a/linux/sparc/syscallent.h b/linux/sparc/syscallent.h index 33361d46..07b6ce3b 100644 --- a/linux/sparc/syscallent.h +++ b/linux/sparc/syscallent.h @@ -156,7 +156,7 @@ [155] = { 3, TD, SEN(fcntl64), "fcntl64" }, [156] = { 2, TD, SEN(inotify_rm_watch), "inotify_rm_watch" }, [157] = { 2, TF|TSF, SEN(statfs), "statfs" }, -[158] = { 2, TD, SEN(fstatfs), "fstatfs" }, +[158] = { 2, TD|TFSF, SEN(fstatfs), "fstatfs" }, [159] = { 1, TF, SEN(umount), "umount" }, [160] = { 3, 0, SEN(sched_setaffinity), "sched_set_affinity" }, [161] = { 3, 0, SEN(sched_getaffinity), "sched_get_affinity" }, @@ -233,7 +233,7 @@ [232] = { 6, TD, SEN(splice), "splice" }, [233] = { 1, 0, SEN(stime), "stime" }, [234] = { 3, TF|TSF, SEN(statfs64), "statfs64" }, -[235] = { 3, TD, SEN(fstatfs64), "fstatfs64" }, +[235] = { 3, TD|TFSF, SEN(fstatfs64), "fstatfs64" }, [236] = { 5, TD, SEN(llseek), "_llseek" }, [237] = { 2, TM, SEN(mlock), "mlock" }, [238] = { 2, TM, SEN(munlock), "munlock" }, diff --git a/linux/sparc64/syscallent.h b/linux/sparc64/syscallent.h index f7fbd493..f77e40a0 100644 --- a/linux/sparc64/syscallent.h +++ b/linux/sparc64/syscallent.h @@ -154,7 +154,7 @@ [155] = { }, [156] = { 2, TD, SEN(inotify_rm_watch), "inotify_rm_watch" }, [157] = { 2, TF|TSF, SEN(statfs), "statfs" }, -[158] = { 2, TD, SEN(fstatfs), "fstatfs" }, +[158] = { 2, TD|TFSF, SEN(fstatfs), "fstatfs" }, [159] = { 1, TF, SEN(umount), "umount" }, [160] = { 3, 0, SEN(sched_setaffinity), "sched_set_affinity" }, [161] = { 3, 0, SEN(sched_getaffinity), "sched_get_affinity" }, @@ -231,7 +231,7 @@ [232] = { 6, TD, SEN(splice), "splice" }, [233] = { 1, 0, SEN(stime), "stime" }, [234] = { 3, TF|TSF, SEN(statfs64), "statfs64" }, -[235] = { 3, TD, SEN(fstatfs64), "fstatfs64" }, +[235] = { 3, TD|TFSF, SEN(fstatfs64), "fstatfs64" }, [236] = { 5, TD, SEN(llseek), "_llseek" }, [237] = { 2, TM, SEN(mlock), "mlock" }, [238] = { 2, TM, SEN(munlock), "munlock" }, diff --git a/linux/x32/syscallent.h b/linux/x32/syscallent.h index 6c2428a5..bb24a7b1 100644 --- a/linux/x32/syscallent.h +++ b/linux/x32/syscallent.h @@ -136,7 +136,7 @@ [135] = { 1, NF, SEN(personality), "personality" }, [136] = { 2, 0, SEN(ustat), "ustat" }, [137] = { 2, TF|TSF, SEN(statfs), "statfs" }, -[138] = { 2, TD, SEN(fstatfs), "fstatfs" }, +[138] = { 2, TD|TFSF, SEN(fstatfs), "fstatfs" }, [139] = { 3, 0, SEN(sysfs), "sysfs" }, [140] = { 2, 0, SEN(getpriority), "getpriority" }, [141] = { 3, 0, SEN(setpriority), "setpriority" }, diff --git a/linux/x86_64/syscallent.h b/linux/x86_64/syscallent.h index 9f3a664c..b4862e82 100644 --- a/linux/x86_64/syscallent.h +++ b/linux/x86_64/syscallent.h @@ -136,7 +136,7 @@ [135] = { 1, NF, SEN(personality), "personality" }, [136] = { 2, 0, SEN(ustat), "ustat" }, [137] = { 2, TF|TSF, SEN(statfs), "statfs" }, -[138] = { 2, TD, SEN(fstatfs), "fstatfs" }, +[138] = { 2, TD|TFSF, SEN(fstatfs), "fstatfs" }, [139] = { 3, 0, SEN(sysfs), "sysfs" }, [140] = { 2, 0, SEN(getpriority), "getpriority" }, [141] = { 3, 0, SEN(setpriority), "setpriority" }, diff --git a/linux/xtensa/syscallent.h b/linux/xtensa/syscallent.h index 4a8ccb60..e84d8bba 100644 --- a/linux/xtensa/syscallent.h +++ b/linux/xtensa/syscallent.h @@ -177,9 +177,9 @@ [182] = { 3, 0, SEN(sysfs), "sysfs" }, [183] = { 2, 0, SEN(ustat), "ustat" }, [184] = { 2, TF|TSF, SEN(statfs), "statfs" }, -[185] = { 2, TD, SEN(fstatfs), "fstatfs" }, +[185] = { 2, TD|TFSF, SEN(fstatfs), "fstatfs" }, [186] = { 3, TF|TSF, SEN(statfs64), "statfs64" }, -[187] = { 3, TD, SEN(fstatfs64), "fstatfs64" }, +[187] = { 3, TD|TFSF, SEN(fstatfs64), "fstatfs64" }, [188] = { 2, 0, SEN(setrlimit), "setrlimit" }, [189] = { 2, 0, SEN(getrlimit), "getrlimit" }, [190] = { 2, 0, SEN(getrusage), "getrusage" }, diff --git a/qualify.c b/qualify.c index a13b169d..5bd56762 100644 --- a/qualify.c +++ b/qualify.c @@ -263,6 +263,7 @@ lookup_class(const char *s) { "%ipc", TRACE_IPC }, { "%network", TRACE_NETWORK }, { "%statfs", TRACE_STATFS }, + { "%fstatfs", TRACE_FSTATFS }, }; unsigned int i; diff --git a/strace.1 b/strace.1 index 474a2320..8fc74e4c 100644 --- a/strace.1 +++ b/strace.1 @@ -440,6 +440,12 @@ The same effect can be achieved with .BR "\-e\ trace" = /^(.*_)?statv?fs regular expression. .TP +.BR "\-e\ trace" = %fstatfs +Trace fstatfs, fstatfs64, fstatvfs, osf_fstatfs, and osf_fstatfs64 system calls. +The same effect can be achieved with +.BR "\-e\ trace" = /fstatv?fs +regular expression. +.TP \fB\-e\ abbrev\fR=\,\fIset\fR Abbreviate the output from printing each member of large structures. The default is diff --git a/syscall.c b/syscall.c index 3e91880c..c6de14f1 100644 --- a/syscall.c +++ b/syscall.c @@ -77,6 +77,7 @@ #define TS TRACE_SIGNAL #define TM TRACE_MEMORY #define TSF TRACE_STATFS +#define TFSF TRACE_FSTATFS #define NF SYSCALL_NEVER_FAILS #define MA MAX_ARGS #define SI STACKTRACE_INVALIDATE_CACHE @@ -113,6 +114,7 @@ static const struct_sysent sysent2[] = { #undef TS #undef TM #undef TSF +#undef TFSF #undef NF #undef MA #undef SI diff --git a/sysent.h b/sysent.h index 538f81b7..430037ee 100644 --- a/sysent.h +++ b/sysent.h @@ -22,5 +22,6 @@ typedef struct sysent { #define TRACE_INDIRECT_SUBCALL 00002000 /* Syscall is an indirect socket/ipc subcall. */ #define COMPAT_SYSCALL_TYPES 00004000 /* A compat syscall that uses compat types. */ #define TRACE_STATFS 00040000 /* Trace statfs, statfs64, and statvfs syscalls. */ +#define TRACE_FSTATFS 00100000 /* Trace fstatfs, fstatfs64 and fstatvfs syscalls. */ #endif /* !STRACE_SYSENT_H */ diff --git a/tests/Makefile.am b/tests/Makefile.am index ee708fd7..d5093f73 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -336,6 +336,7 @@ EXTRA_DIST = \ strace.supp \ struct_flock.c \ sun_path.expected \ + trace_fstatfs.in \ trace_statfs.in \ uio.expected \ umode_t.c \ diff --git a/tests/gen_tests.in b/tests/gen_tests.in index ddcb8f7d..34d3a5da 100644 --- a/tests/gen_tests.in +++ b/tests/gen_tests.in @@ -304,6 +304,7 @@ timer_xettime -e trace=timer_create,timer_settime,timer_gettime timerfd_xettime -e trace=timerfd_create,timerfd_settime,timerfd_gettime times -esignal=none times-fail -a12 -e trace=times +trace_fstatfs test_trace_expr '' -e%fstatfs trace_statfs test_trace_expr '' -e%statfs truncate truncate64 diff --git a/tests/ksysent.c b/tests/ksysent.c index 47bfef4a..ce198ded 100644 --- a/tests/ksysent.c +++ b/tests/ksysent.c @@ -41,6 +41,7 @@ #define TS 0 #define TM 0 #define TSF 0 +#define TFSF 0 #define NF 0 #define MA 0 #define SI 0 diff --git a/tests/nsyscalls.c b/tests/nsyscalls.c index 18eecf51..eaa9a0f7 100644 --- a/tests/nsyscalls.c +++ b/tests/nsyscalls.c @@ -42,6 +42,7 @@ #define TS 0 #define TM 0 #define TSF 0 +#define TFSF 0 #define NF 0 #define MA 0 #define SI 0 diff --git a/tests/trace_fstatfs.in b/tests/trace_fstatfs.in new file mode 100644 index 00000000..6441a079 --- /dev/null +++ b/tests/trace_fstatfs.in @@ -0,0 +1,2 @@ +fstatfs -a18 +fstatfs64 -a24