On Sat, Mar 18, 2017 at 05:57:39PM +0530, Abhishek Tiwari wrote: > On Sat, Mar 18, 2017 at 3:53 PM, Eugene Syromyatnikov <evg...@gmail.com> > wrote: > > > So, after some thinking, I have the following scheme in mind: > > > > {old,}stat{,64} TRACE_STAT TST > %stat > > > {old,}lstat{,64} TRACE_LSTAT TLST > %lstat > > {old,new,}fstat{,at}64 TRACE_FSTAT TFST > %fstat > > > {old,new,}{,l,f}stat{,x,at}{,64} > > TRACE_STAT_LIKE TSTA ("stat alike") > %%stat > > > statfs{,64} TRACE_STATFS TSF > %statfs > > > fstatfs{,64} TRACE_FSTATFS TFSF > > %fstatfs > > {,f}statfs{,64}, ustat TRACE_STATFS_LIKE TSFA ("statfs alike") > > > %%statfs > > > Calls with bsd43_/osf_/posix_/svr4_/sysv_ prefixes go to the > > corresponding calls without them. > > > > I'm not really sure about {svr4,sysv}_{,f}statvfs, but they are decoded as > > printargs and looks like they should be related to {,f}statfs calls. > > > > Does it make any sense? > > Yes, it looks good...:) > Please review that for the corresponding option in -e trace=option is > marked correct described after each of your naming scheme. Looks good to me.
> Thank you. > > Below is attached a patch corresonding to -e trace=%statfs option. > Please review. git am patch fails to apply this patch with the following diagnostics: .git/rebase-apply/patch:778: trailing whitespace. 17 statfs fatal: 1 line adds whitespace errors. > From 6d7a5793808fd78db028985e8de68168ef4870c3 Mon Sep 17 00:00:00 2001 > From: Abhishek Tiwari <erabhishektiwar...@gmail.com> > Date: Sat, 18 Mar 2017 17:29:34 +0530 > Subject: [PATCH v5] Implement -e trace=%statfs option for tracing statfs like > syscalls > > This commit adds %statsfs option to trace statfs, statfs64, statvfs, > statvfs64 syscalls. The following commands update linux/*/syscallent* files: > > git grep -Fl 'statfs' linux/*/syscallent* | xargs sed -i > 's/TD\(,[[:space:]]*SEN(statfs\)/TD|TSF\1/' > git grep -Fl 'statfs' linux/*/syscallent* | xargs sed -i > 's/TF\(,[[:space:]]*SEN(statfs\)/TF|TSF\1/' > git grep -Fl 'statfs' linux/*/syscallent* | xargs sed -i > 's/0\(,[[:space:]]*SEN(osf_statfs\)/TSF\1/' > git grep -Fl 'statfs' linux/*/syscallent* | xargs sed -i > 's/0\(,[[:space:]]*SEN(.*_statfs\)/TSF\1/' > git grep -Fl 'statvfs' linux/*/syscallent* | xargs sed -i > 's/0\(,[[:space:]]*SEN(.*_statvfs\)/TSF\1/' > > * sysent.h (TRACE_STATFS): New definition. > * syscall.c: Alias TSF to TRACE_STATFS around syscallent.h inclusion. > * linux/32/syscallent.h: Add TSF flag for statfs-like sycalls. > * linux/64/syscallent.h: Likewise. > * linux/aarch64/syscallent.h: Likewise. > * linux/alpha/syscallent.h: Likewise. > * linux/arm/syscallent.h: 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-compat.h: Likewise. > * linux/mips/syscallent-n32.h: Likewise. > * linux/mips/syscallent-n64.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/x32/syscallent.h: Likewise. > * linux/x86_64/syscallent.h: Likewise. > * linux/xtensa/syscallent.h: Likewise. > * qualify.c (lookup_class): Add SCHED_STATFS for "%statfs" > * strace.1 (.SS Filtering): Add information about %statfs syscall class. > * tests/Makefile.am: (DECODER_TESTS): Add trace_statfs.test. > * tests/ksysent.c: Define TST to 0. > * tests/nsyscalls.c: Likewise. > * tests/trace_statfs.test: New test. > --- > linux/32/syscallent.h | 2 +- > linux/64/syscallent.h | 2 +- > linux/aarch64/syscallent.h | 2 +- > linux/alpha/syscallent.h | 6 ++--- > linux/arm/syscallent.h | 4 ++-- > linux/avr32/syscallent.h | 4 ++-- > linux/bfin/syscallent.h | 4 ++-- > linux/crisv10/syscallent.h | 4 ++-- > linux/hppa/syscallent.h | 4 ++-- > linux/i386/syscallent.h | 4 ++-- > linux/ia64/syscallent.h | 4 ++-- > linux/m68k/syscallent.h | 4 ++-- > linux/microblaze/syscallent.h | 4 ++-- > linux/mips/syscallent-compat.h | 12 +++++----- > linux/mips/syscallent-n32.h | 4 ++-- > linux/mips/syscallent-n64.h | 2 +- > linux/mips/syscallent-o32.h | 4 ++-- > linux/powerpc/syscallent.h | 4 ++-- > linux/powerpc64/syscallent.h | 4 ++-- > linux/s390/syscallent.h | 4 ++-- > linux/s390x/syscallent.h | 4 ++-- > linux/sh/syscallent.h | 4 ++-- > linux/sh64/syscallent.h | 4 ++-- > linux/sparc/syscallent.h | 4 ++-- > linux/sparc64/syscallent.h | 4 ++-- > linux/x32/syscallent.h | 2 +- > linux/x86_64/syscallent.h | 2 +- > linux/xtensa/syscallent.h | 4 ++-- > qualify.c | 1 + > strace.1 | 3 +++ > syscall.c | 2 ++ > sysent.h | 1 + > tests/Makefile.am | 1 + > tests/ksysent.c | 1 + > tests/nsyscalls.c | 1 + > tests/trace_statfs.test | 54 > ++++++++++++++++++++++++++++++++++++++++++ > 36 files changed, 119 insertions(+), 55 deletions(-) > create mode 100755 tests/trace_statfs.test > > diff --git a/linux/32/syscallent.h b/linux/32/syscallent.h > index a8f9510..7beef25 100644 > --- a/linux/32/syscallent.h > +++ b/linux/32/syscallent.h > @@ -44,7 +44,7 @@ > [ 40] = { 5, TF, SEN(mount), "mount" > }, > [ 41] = { 2, TF, SEN(pivotroot), "pivot_root" > }, > [ 42] = { 3, 0, SEN(nfsservctl), "nfsservctl" > }, > -[ 43] = { 3, TF, SEN(statfs64), "statfs64" > }, > +[ 43] = { 3, TF|TSF, SEN(statfs64), "statfs64" > }, > [ 44] = { 3, TD, SEN(fstatfs64), "fstatfs64" > }, > [ 45] = { 3, TF, SEN(truncate64), "truncate64" > }, > [ 46] = { 3, TD, SEN(ftruncate64), "ftruncate64" > }, > diff --git a/linux/64/syscallent.h b/linux/64/syscallent.h > index b5a09d4..e377431 100644 > --- a/linux/64/syscallent.h > +++ b/linux/64/syscallent.h > @@ -41,7 +41,7 @@ > [ 40] = { 5, TF, SEN(mount), "mount" > }, > [ 41] = { 2, TF, SEN(pivotroot), "pivot_root" > }, > [ 42] = { 3, 0, SEN(nfsservctl), "nfsservctl" > }, > -[ 43] = { 2, TF, SEN(statfs), "statfs" > }, > +[ 43] = { 2, TF|TSF, SEN(statfs), "statfs" > }, > [ 44] = { 2, TD, SEN(fstatfs), "fstatfs" > }, > [ 45] = { 2, TF, SEN(truncate), "truncate" > }, > [ 46] = { 2, TD, SEN(ftruncate), "ftruncate" > }, > diff --git a/linux/aarch64/syscallent.h b/linux/aarch64/syscallent.h > index 6b23f8c..e760fdc 100644 > --- a/linux/aarch64/syscallent.h > +++ b/linux/aarch64/syscallent.h > @@ -45,7 +45,7 @@ > [1053] = { 4, TD, SEN(fadvise64), "fadvise64" > }, > [1054] = { 4, TD|TF, SEN(newfstatat), "newfstatat" > }, > [1055] = { 2, TD, SEN(fstatfs), "fstatfs" > }, > -[1056] = { 2, TF, SEN(statfs), "statfs" > }, > +[1056] = { 2, TF|TSF, SEN(statfs), "statfs" > }, > [1057] = { 3, TD, SEN(lseek), "lseek" > }, > [1058] = { 6, TD|TM|SI, SEN(mmap), "mmap" > }, > [1059] = { 1, 0, SEN(alarm), "alarm" > }, > diff --git a/linux/alpha/syscallent.h b/linux/alpha/syscallent.h > index 4449f22..18f1866 100644 > --- a/linux/alpha/syscallent.h > +++ b/linux/alpha/syscallent.h > @@ -185,7 +185,7 @@ > [157] = { 5, 0, SEN(printargs), > "osf_sigwaitprim" }, /*not implemented */ > [158] = { 5, 0, SEN(printargs), "osf_nfssvc" > }, /*not implemented */ > [159] = { 4, 0, SEN(printargs), > "osf_getdirentries" }, > -[160] = { 3, 0, SEN(osf_statfs), "osf_statfs" > }, > +[160] = { 3, TSF, SEN(osf_statfs), "osf_statfs" > }, > [161] = { 3, 0, SEN(osf_fstatfs), "osf_fstatfs" > }, > [162] = { }, > [163] = { 5, 0, SEN(printargs), > "osf_asynch_daemon" }, /*not implemented */ > @@ -230,7 +230,7 @@ > [224] = { 5, 0, SEN(printargs), "osf_stat" > }, /*not implemented */ > [225] = { 5, 0, SEN(printargs), "osf_lstat" > }, /*not implemented */ > [226] = { 5, 0, SEN(printargs), "osf_fstat" > }, /*not implemented */ > -[227] = { 3, 0, SEN(osf_statfs), "osf_statfs64" > }, /*not implemented */ > +[227] = { 3, TSF, SEN(osf_statfs), "osf_statfs64" > }, /*not implemented */ > [228] = { 3, 0, SEN(osf_fstatfs), "osf_fstatfs64" > }, /*not implemented */ > [229 ... 232] = { }, > [233] = { 1, 0, SEN(getpgid), "getpgid" > }, > @@ -291,7 +291,7 @@ > [325] = { 1, NF, SEN(setfsuid), "setfsuid" > }, > [326] = { 1, NF, SEN(setfsgid), "setfsgid" > }, > [327] = { 2, 0, SEN(ustat), "ustat" > }, > -[328] = { 2, TF, SEN(statfs), "statfs" > }, > +[328] = { 2, TF|TSF, SEN(statfs), "statfs" > }, > [329] = { 2, TD, SEN(fstatfs), "fstatfs" > }, > [330] = { 2, TSC, SEN(sched_setparam), > "sched_setparam" }, > [331] = { 2, TSC, SEN(sched_getparam), > "sched_getparam" }, > diff --git a/linux/arm/syscallent.h b/linux/arm/syscallent.h > index ed9ec9a..ef11d5f 100644 > --- a/linux/arm/syscallent.h > +++ b/linux/arm/syscallent.h > @@ -125,7 +125,7 @@ > [ 96] = { 2, 0, SEN(getpriority), "getpriority" > }, > [ 97] = { 3, 0, SEN(setpriority), "setpriority" > }, > [ 98] = { 4, 0, SEN(profil), "profil" > }, > -[ 99] = { 2, TF, SEN(statfs), "statfs" > }, > +[ 99] = { 2, TF|TSF, SEN(statfs), "statfs" > }, > [100] = { 2, TD, SEN(fstatfs), "fstatfs" > }, > [101] = { 3, 0, SEN(ioperm), "ioperm" > }, > [102] = { 2, TD, SEN(socketcall), "socketcall" > }, > @@ -290,7 +290,7 @@ > [263] = { 2, 0, SEN(clock_gettime), "clock_gettime" > }, > [264] = { 2, 0, SEN(clock_getres), "clock_getres" > }, > [265] = { 4, 0, SEN(clock_nanosleep), > "clock_nanosleep" }, > -[266] = { 3, TF, SEN(statfs64), "statfs64" > }, > +[266] = { 3, TF|TSF, SEN(statfs64), "statfs64" > }, > [267] = { 3, TD, SEN(fstatfs64), "fstatfs64" > }, > [268] = { 3, TS, SEN(tgkill), "tgkill" > }, > [269] = { 2, TF, SEN(utimes), "utimes" > }, > diff --git a/linux/avr32/syscallent.h b/linux/avr32/syscallent.h > index 7f50934..6f49054 100644 > --- a/linux/avr32/syscallent.h > +++ b/linux/avr32/syscallent.h > @@ -124,7 +124,7 @@ > [ 96] = { 2, 0, SEN(getpriority), "getpriority" > }, > [ 97] = { 3, 0, SEN(setpriority), "setpriority" > }, > [ 98] = { 4, TP, SEN(wait4), "wait4" > }, > -[ 99] = { 2, TF, SEN(statfs), "statfs" > }, > +[ 99] = { 2, TF|TSF, SEN(statfs), "statfs" > }, > [100] = { 2, TD, SEN(fstatfs), "fstatfs" > }, > [101] = { 0, 0, SEN(vhangup), "vhangup" > }, > [102] = { 2, TS, SEN(sigaltstack), "sigaltstack" > }, > @@ -244,7 +244,7 @@ > [216] = { 2, 0, SEN(clock_gettime), "clock_gettime" > }, > [217] = { 2, 0, SEN(clock_getres), "clock_getres" > }, > [218] = { 4, 0, SEN(clock_nanosleep), > "clock_nanosleep" }, > -[219] = { 3, TF, SEN(statfs64), "statfs64" > }, > +[219] = { 3, TF|TSF, SEN(statfs64), "statfs64" > }, > [220] = { 3, TD, SEN(fstatfs64), "fstatfs64" > }, > [221] = { 3, TS, SEN(tgkill), "tgkill" > }, > [222] = { }, > diff --git a/linux/bfin/syscallent.h b/linux/bfin/syscallent.h > index 800b943..a70dd8b 100644 > --- a/linux/bfin/syscallent.h > +++ b/linux/bfin/syscallent.h > @@ -125,7 +125,7 @@ > [ 96] = { 2, 0, SEN(getpriority), "getpriority" > }, > [ 97] = { 3, 0, SEN(setpriority), "setpriority" > }, > [ 98] = { 4, 0, SEN(profil), "profil" > }, > -[ 99] = { 2, TF, SEN(statfs), "statfs" > }, > +[ 99] = { 2, TF|TSF, SEN(statfs), "statfs" > }, > [100] = { 2, TD, SEN(fstatfs), "fstatfs" > }, > [101] = { 3, 0, SEN(ioperm), "ioperm" > }, > [102] = { 2, TD, SEN(socketcall), "socketcall" > }, > @@ -294,7 +294,7 @@ > [266] = { 2, 0, SEN(clock_gettime), "clock_gettime" > }, > [267] = { 2, 0, SEN(clock_getres), "clock_getres" > }, > [268] = { 4, 0, SEN(clock_nanosleep), > "clock_nanosleep" }, > -[269] = { 3, TF, SEN(statfs64), "statfs64" > }, > +[269] = { 3, TF|TSF, SEN(statfs64), "statfs64" > }, > [270] = { 3, TD, SEN(fstatfs64), "fstatfs64" > }, > [271] = { 3, TS, SEN(tgkill), "tgkill" > }, > [272] = { 2, TF, SEN(utimes), "utimes" > }, > diff --git a/linux/crisv10/syscallent.h b/linux/crisv10/syscallent.h > index 96fb6bd..695b4d0 100644 > --- a/linux/crisv10/syscallent.h > +++ b/linux/crisv10/syscallent.h > @@ -97,7 +97,7 @@ > [ 96] = { 2, 0, SEN(getpriority), "getpriority" > }, > [ 97] = { 3, 0, SEN(setpriority), "setpriority" > }, > [ 98] = { 4, 0, SEN(profil), "profil" > }, > -[ 99] = { 2, TF, SEN(statfs), "statfs" > }, > +[ 99] = { 2, TF|TSF, SEN(statfs), "statfs" > }, > [100] = { 2, TD, SEN(fstatfs), "fstatfs" > }, > [101] = { 3, 0, SEN(ioperm), "ioperm" > }, > [102] = { 2, TD, SEN(socketcall), "socketcall" > }, > @@ -262,7 +262,7 @@ > [265] = { 2, 0, SEN(clock_gettime), "clock_gettime" > }, > [266] = { 2, 0, SEN(clock_getres), "clock_getres" > }, > [267] = { 4, 0, SEN(clock_nanosleep), > "clock_nanosleep" }, > -[268] = { 3, TF, SEN(statfs64), "statfs64" > }, > +[268] = { 3, TF|TSF, SEN(statfs64), "statfs64" > }, > [269] = { 3, TD, SEN(fstatfs64), "fstatfs64" > }, > [270] = { 3, TS, SEN(tgkill), "tgkill" > }, > [271] = { 2, TF, SEN(utimes), "utimes" > }, > diff --git a/linux/hppa/syscallent.h b/linux/hppa/syscallent.h > index f59ea57..9ff420c 100644 > --- a/linux/hppa/syscallent.h > +++ b/linux/hppa/syscallent.h > @@ -101,7 +101,7 @@ > [ 96] = { 2, 0, SEN(getpriority), "getpriority" > }, > [ 97] = { 3, 0, SEN(setpriority), "setpriority" > }, > [ 98] = { 4, TN, SEN(recv), "recv" > }, > -[ 99] = { 2, TF, SEN(statfs), "statfs" > }, > +[ 99] = { 2, TF|TSF, SEN(statfs), "statfs" > }, > [100] = { 2, TD, SEN(fstatfs), "fstatfs" > }, > [101] = { 2, TF, SEN(stat64), "stat64" > }, > [102] = { }, > @@ -300,7 +300,7 @@ > [295] = { 6, TM, SEN(move_pages), "move_pages" > }, > [296] = { 3, 0, SEN(getcpu), "getcpu" > }, > [297] = { 6, TD, SEN(epoll_pwait), "epoll_pwait" > }, > -[298] = { 3, TF, SEN(statfs64), "statfs64" > }, > +[298] = { 3, TF|TSF, SEN(statfs64), "statfs64" > }, > [299] = { 3, TD, SEN(fstatfs64), "fstatfs64" > }, > [300] = { 4, 0, SEN(kexec_load), "kexec_load" > }, > [301] = { 4, TD|TF, SEN(utimensat), "utimensat" > }, > diff --git a/linux/i386/syscallent.h b/linux/i386/syscallent.h > index 8ef1b1c..a79dcc8 100644 > --- a/linux/i386/syscallent.h > +++ b/linux/i386/syscallent.h > @@ -125,7 +125,7 @@ > [ 96] = { 2, 0, SEN(getpriority), "getpriority" > }, > [ 97] = { 3, 0, SEN(setpriority), "setpriority" > }, > [ 98] = { 4, 0, SEN(profil), "profil" > }, > -[ 99] = { 2, TF, SEN(statfs), "statfs" > }, > +[ 99] = { 2, TF|TSF, SEN(statfs), "statfs" > }, > [100] = { 2, TD, SEN(fstatfs), "fstatfs" > }, > [101] = { 3, 0, SEN(ioperm), "ioperm" > }, > [102] = { 2, TD, SEN(socketcall), "socketcall" > }, > @@ -293,7 +293,7 @@ > [265] = { 2, 0, SEN(clock_gettime), "clock_gettime" > }, > [266] = { 2, 0, SEN(clock_getres), "clock_getres" > }, > [267] = { 4, 0, SEN(clock_nanosleep), > "clock_nanosleep" }, > -[268] = { 3, TF, SEN(statfs64), "statfs64" > }, > +[268] = { 3, TF|TSF, SEN(statfs64), "statfs64" > }, > [269] = { 3, TD, SEN(fstatfs64), "fstatfs64" > }, > [270] = { 3, TS, SEN(tgkill), "tgkill" > }, > [271] = { 2, TF, SEN(utimes), "utimes" > }, > diff --git a/linux/ia64/syscallent.h b/linux/ia64/syscallent.h > index 47b71d6..96e5fd3 100644 > --- a/linux/ia64/syscallent.h > +++ b/linux/ia64/syscallent.h > @@ -120,7 +120,7 @@ > [1100] = { 3, TD, SEN(fchown), > "fchown" }, > [1101] = { 2, 0, SEN(getpriority), > "getpriority" }, > [1102] = { 3, 0, SEN(setpriority), > "setpriority" }, > -[1103] = { 2, TF, SEN(statfs), > "statfs" }, > +[1103] = { 2, TF|TSF, SEN(statfs), > "statfs" }, > [1104] = { 2, TD, SEN(fstatfs), > "fstatfs" }, > [1105] = { 0, NF, SEN(gettid), > "gettid" }, > [1106] = { 3, TI, SEN(semget), > "semget" }, > @@ -275,7 +275,7 @@ > [1255] = { 2, 0, SEN(clock_getres), > "clock_getres" }, > [1256] = { 4, 0, SEN(clock_nanosleep), > "clock_nanosleep" }, > [1257] = { 3, TD, SEN(fstatfs64), > "fstatfs64" }, > -[1258] = { 3, TF, SEN(statfs64), > "statfs64" }, > +[1258] = { 3, TF|TSF, SEN(statfs64), > "statfs64" }, > [1259] = { 6, TM, SEN(mbind), "mbind" > }, > [1260] = { 5, TM, SEN(get_mempolicy), > "get_mempolicy" }, > [1261] = { 3, TM, SEN(set_mempolicy), > "set_mempolicy" }, > diff --git a/linux/m68k/syscallent.h b/linux/m68k/syscallent.h > index 8e7dd97..42c1d1a 100644 > --- a/linux/m68k/syscallent.h > +++ b/linux/m68k/syscallent.h > @@ -125,7 +125,7 @@ > [ 96] = { 2, 0, SEN(getpriority), "getpriority" > }, > [ 97] = { 3, 0, SEN(setpriority), "setpriority" > }, > [ 98] = { 4, 0, SEN(profil), "profil" > }, > -[ 99] = { 2, TF, SEN(statfs), "statfs" > }, > +[ 99] = { 2, TF|TSF, SEN(statfs), "statfs" > }, > [100] = { 2, TD, SEN(fstatfs), "fstatfs" > }, > [101] = { 3, 0, SEN(ioperm), "ioperm" > }, > [102] = { 2, TD, SEN(socketcall), "socketcall" > }, > @@ -288,7 +288,7 @@ > [260] = { 2, 0, SEN(clock_gettime), "clock_gettime" > }, > [261] = { 2, 0, SEN(clock_getres), "clock_getres" > }, > [262] = { 4, 0, SEN(clock_nanosleep), > "clock_nanosleep" }, > -[263] = { 3, TF, SEN(statfs64), "statfs64" > }, > +[263] = { 3, TF|TSF, SEN(statfs64), "statfs64" > }, > [264] = { 3, TD, SEN(fstatfs64), "fstatfs64" > }, > [265] = { 3, TS, SEN(tgkill), "tgkill" > }, > [266] = { 2, TF, SEN(utimes), "utimes" > }, > diff --git a/linux/microblaze/syscallent.h b/linux/microblaze/syscallent.h > index 2a59eb3..cb5bd78 100644 > --- a/linux/microblaze/syscallent.h > +++ b/linux/microblaze/syscallent.h > @@ -125,7 +125,7 @@ > [ 96] = { 2, 0, SEN(getpriority), "getpriority" > }, > [ 97] = { 3, 0, SEN(setpriority), "setpriority" > }, > [ 98] = { 4, 0, SEN(profil), "profil" > }, > -[ 99] = { 2, TF, SEN(statfs), "statfs" > }, > +[ 99] = { 2, TF|TSF, SEN(statfs), "statfs" > }, > [100] = { 2, TD, SEN(fstatfs), "fstatfs" > }, > [101] = { 3, 0, SEN(ioperm), "ioperm" > }, > [102] = { 2, TD, SEN(socketcall), "socketcall" > }, > @@ -293,7 +293,7 @@ > [265] = { 2, 0, SEN(clock_gettime), "clock_gettime" > }, > [266] = { 2, 0, SEN(clock_getres), "clock_getres" > }, > [267] = { 4, 0, SEN(clock_nanosleep), > "clock_nanosleep" }, > -[268] = { 3, TF, SEN(statfs64), "statfs64" > }, > +[268] = { 3, TF|TSF, SEN(statfs64), "statfs64" > }, > [269] = { 3, TD, SEN(fstatfs64), "fstatfs64" > }, > [270] = { 3, TS, SEN(tgkill), "tgkill" > }, > [271] = { 2, TF, SEN(utimes), "utimes" > }, > diff --git a/linux/mips/syscallent-compat.h b/linux/mips/syscallent-compat.h > index 82a373b..ac408fd 100644 > --- a/linux/mips/syscallent-compat.h > +++ b/linux/mips/syscallent-compat.h > @@ -33,7 +33,7 @@ > [ 32] = { 0, 0, SEN(printargs), "svr4_gtty" }, > [ 33] = { 0, 0, SEN(printargs), "svr4_access" }, > [ 34] = { 0, 0, SEN(printargs), "svr4_nice" }, > -[ 35] = { 0, 0, SEN(printargs), "svr4_statfs" }, > +[ 35] = { 0, TSF, SEN(printargs), "svr4_statfs" }, > [ 36] = { 0, 0, SEN(printargs), "svr4_sync" }, > [ 37] = { 0, 0, SEN(printargs), "svr4_kill" }, > [ 38] = { 0, 0, SEN(printargs), "svr4_fstatfs" }, > @@ -96,7 +96,7 @@ > [ 100] = { 0, 0, SEN(printargs), "svr4_setcontext" > }, > [ 101] = { 0, 0, SEN(printargs), "svr4_evsys" }, > [ 102] = { 0, 0, SEN(printargs), "svr4_evtrapret" > }, > -[ 103] = { 0, 0, SEN(printargs), "svr4_statvfs" }, > +[ 103] = { 0, TSF, SEN(printargs), "svr4_statvfs" }, > [ 104] = { 0, 0, SEN(printargs), "svr4_fstatvfs" }, > [ 105] = { }, > [ 106] = { 0, 0, SEN(printargs), "svr4_nfssys" }, > @@ -184,7 +184,7 @@ > [1032] = { 0, 0, SEN(printargs), "sysv_gtty" }, > [1033] = { 0, 0, SEN(printargs), "sysv_access" }, > [1034] = { 0, 0, SEN(printargs), "sysv_nice" }, > -[1035] = { 0, 0, SEN(printargs), "sysv_statfs" }, > +[1035] = { 0, TSF, SEN(printargs), "sysv_statfs" }, > [1036] = { 0, 0, SEN(printargs), "sysv_sync" }, > [1037] = { 0, 0, SEN(printargs), "sysv_kill" }, > [1038] = { 0, 0, SEN(printargs), "sysv_fstatfs" }, > @@ -318,7 +318,7 @@ > [1171] = { 0, 0, SEN(printargs), "sysv_sigstack" }, > [1172] = { 0, 0, SEN(printargs), "sysv_sigaltstack" > }, > [1173] = { 0, 0, SEN(printargs), "sysv_sigsendset" > }, > -[1174] = { 0, 0, SEN(printargs), "sysv_statvfs" }, > +[1174] = { 0, TSF, SEN(printargs), "sysv_statvfs" }, > [1175] = { 0, 0, SEN(printargs), "sysv_fstatvfs" }, > [1176] = { 0, 0, SEN(printargs), "sysv_getpmsg" }, > [1177] = { 0, 0, SEN(printargs), "sysv_putpmsg" }, > @@ -494,7 +494,7 @@ > [2157] = { 0, 0, SEN(printargs), "bsd43_nfs_mount" > }, > [2158] = { 0, 0, SEN(printargs), "bsd43_nfs_svc" }, > [2159] = { 0, 0, SEN(printargs), "bsd43_getdirentries" > }, > -[2160] = { 0, 0, SEN(printargs), "bsd43_statfs" }, > +[2160] = { 0, TSF, SEN(printargs), "bsd43_statfs" }, > [2161] = { 0, 0, SEN(printargs), "bsd43_fstatfs" }, > [2162] = { 0, 0, SEN(printargs), "bsd43_unmount" }, > [2163] = { 0, 0, SEN(printargs), "bsd43_async_daemon" > }, > @@ -562,7 +562,7 @@ > [3032] = { 0, 0, SEN(printargs), "posix_gtty" }, > [3033] = { 0, 0, SEN(printargs), "posix_access" }, > [3034] = { 0, 0, SEN(printargs), "posix_nice" }, > -[3035] = { 0, 0, SEN(printargs), "posix_statfs" }, > +[3035] = { 0, TSF, SEN(printargs), "posix_statfs" }, > [3036] = { 0, 0, SEN(printargs), "posix_sync" }, > [3037] = { 0, 0, SEN(printargs), "posix_kill" }, > [3038] = { 0, 0, SEN(printargs), "posix_fstatfs" }, > diff --git a/linux/mips/syscallent-n32.h b/linux/mips/syscallent-n32.h > index 052af4f..dd6429b 100644 > --- a/linux/mips/syscallent-n32.h > +++ b/linux/mips/syscallent-n32.h > @@ -134,7 +134,7 @@ > [6131] = { 3, TF, SEN(mknod), "mknod" > }, > [6132] = { 1, NF, SEN(personality), > "personality" }, > [6133] = { 2, 0, SEN(ustat), "ustat" > }, > -[6134] = { 2, TF, SEN(statfs), > "statfs" }, > +[6134] = { 2, TF|TSF, SEN(statfs), > "statfs" }, > [6135] = { 2, TD, SEN(fstatfs), > "fstatfs" }, > [6136] = { 3, 0, SEN(sysfs), "sysfs" > }, > [6137] = { 2, 0, SEN(getpriority), > "getpriority" }, > @@ -217,7 +217,7 @@ > [6214] = { 0, 0, SEN(restart_syscall), > "restart_syscall" }, > [6215] = { 4, TI, SEN(semtimedop), > "semtimedop" }, > [6216] = { 4, TD, SEN(fadvise64_64), > "fadvise64" }, > -[6217] = { 3, TF, SEN(statfs64), > "statfs64" }, > +[6217] = { 3, TF|TSF, SEN(statfs64), > "statfs64" }, > [6218] = { 3, TD, SEN(fstatfs64), > "fstatfs64" }, > [6219] = { 4, TD|TN, SEN(sendfile64), > "sendfile64" }, > [6220] = { 3, 0, SEN(timer_create), > "timer_create" }, > diff --git a/linux/mips/syscallent-n64.h b/linux/mips/syscallent-n64.h > index fdd778b..d5065ad 100644 > --- a/linux/mips/syscallent-n64.h > +++ b/linux/mips/syscallent-n64.h > @@ -134,7 +134,7 @@ > [5131] = { 3, TF, SEN(mknod), "mknod" > }, > [5132] = { 1, NF, SEN(personality), > "personality" }, > [5133] = { 2, 0, SEN(ustat), "ustat" > }, > -[5134] = { 2, TF, SEN(statfs), > "statfs" }, > +[5134] = { 2, TF|TSF, SEN(statfs), > "statfs" }, > [5135] = { 2, TD, SEN(fstatfs), > "fstatfs" }, > [5136] = { 3, 0, SEN(sysfs), "sysfs" > }, > [5137] = { 2, 0, SEN(getpriority), > "getpriority" }, > diff --git a/linux/mips/syscallent-o32.h b/linux/mips/syscallent-o32.h > index 509a719..b6b5626 100644 > --- a/linux/mips/syscallent-o32.h > +++ b/linux/mips/syscallent-o32.h > @@ -99,7 +99,7 @@ > [4096] = { 2, 0, SEN(getpriority), > "getpriority" }, > [4097] = { 3, 0, SEN(setpriority), > "setpriority" }, > [4098] = { 0, 0, SEN(profil), > "profil" }, > -[4099] = { 2, TF, SEN(statfs), > "statfs" }, > +[4099] = { 2, TF|TSF, SEN(statfs), > "statfs" }, > [4100] = { 2, TD, SEN(fstatfs), > "fstatfs" }, > [4101] = { 3, 0, SEN(ioperm), > "ioperm" }, > [4102] = { 2, TD, SEN(socketcall), > "socketcall" }, > @@ -255,7 +255,7 @@ > [4252] = { 1, 0, SEN(set_tid_address), > "set_tid_address" }, > [4253] = { 0, 0, SEN(restart_syscall), > "restart_syscall" }, > [4254] = { 7, TD, SEN(fadvise64_64), > "fadvise64" }, > -[4255] = { 3, TF, SEN(statfs64), > "statfs64" }, > +[4255] = { 3, TF|TSF, SEN(statfs64), > "statfs64" }, > [4256] = { 3, TD, SEN(fstatfs64), > "fstatfs64" }, > [4257] = { 3, 0, SEN(timer_create), > "timer_create" }, > [4258] = { 4, 0, SEN(timer_settime), > "timer_settime" }, > diff --git a/linux/powerpc/syscallent.h b/linux/powerpc/syscallent.h > index 1431f8a..8d2b98f 100644 > --- a/linux/powerpc/syscallent.h > +++ b/linux/powerpc/syscallent.h > @@ -125,7 +125,7 @@ > [ 96] = { 2, 0, SEN(getpriority), "getpriority" > }, > [ 97] = { 3, 0, SEN(setpriority), "setpriority" > }, > [ 98] = { 4, 0, SEN(profil), "profil" > }, > -[ 99] = { 2, TF, SEN(statfs), "statfs" > }, > +[ 99] = { 2, TF|TSF, SEN(statfs), "statfs" > }, > [100] = { 2, TD, SEN(fstatfs), "fstatfs" > }, > [101] = { 3, 0, SEN(ioperm), "ioperm" > }, > [102] = { 2, TD, SEN(socketcall), "socketcall" > }, > @@ -278,7 +278,7 @@ > [249] = { 2, 0, SEN(printargs), "swapcontext" > }, > [250] = { 3, TS, SEN(tgkill), "tgkill" > }, > [251] = { 2, TF, SEN(utimes), "utimes" > }, > -[252] = { 3, TF, SEN(statfs64), "statfs64" > }, > +[252] = { 3, TF|TSF, SEN(statfs64), "statfs64" > }, > [253] = { 3, TD, SEN(fstatfs64), "fstatfs64" > }, > [254] = { 6, TD, SEN(fadvise64_64), "fadvise64_64" > }, > [255] = { 1, 0, SEN(printargs), "rtas" > }, > diff --git a/linux/powerpc64/syscallent.h b/linux/powerpc64/syscallent.h > index eae3b57..ee2ceed 100644 > --- a/linux/powerpc64/syscallent.h > +++ b/linux/powerpc64/syscallent.h > @@ -125,7 +125,7 @@ > [ 96] = { 2, 0, SEN(getpriority), "getpriority" > }, > [ 97] = { 3, 0, SEN(setpriority), "setpriority" > }, > [ 98] = { 4, 0, SEN(profil), "profil" > }, > -[ 99] = { 2, TF, SEN(statfs), "statfs" > }, > +[ 99] = { 2, TF|TSF, SEN(statfs), "statfs" > }, > [100] = { 2, TD, SEN(fstatfs), "fstatfs" > }, > [101] = { 3, 0, SEN(ioperm), "ioperm" > }, > [102] = { 2, TD, SEN(socketcall), "socketcall" > }, > @@ -273,7 +273,7 @@ > [249] = { 2, 0, SEN(printargs), "swapcontext" > }, > [250] = { 3, TS, SEN(tgkill), "tgkill" > }, > [251] = { 2, TF, SEN(utimes), "utimes" > }, > -[252] = { 3, TF, SEN(statfs64), "statfs64" > }, > +[252] = { 3, TF|TSF, SEN(statfs64), "statfs64" > }, > [253] = { 3, TD, SEN(fstatfs64), "fstatfs64" > }, > [254] = { }, > [255] = { 1, 0, SEN(printargs), "rtas" > }, > diff --git a/linux/s390/syscallent.h b/linux/s390/syscallent.h > index 105e511..2194696 100644 > --- a/linux/s390/syscallent.h > +++ b/linux/s390/syscallent.h > @@ -127,7 +127,7 @@ > [ 96] = { 2, 0, SEN(getpriority), "getpriority" > }, > [ 97] = { 3, 0, SEN(setpriority), "setpriority" > }, > [ 98] = { }, > -[ 99] = { 2, TF, SEN(statfs), "statfs" > }, > +[ 99] = { 2, TF|TSF, SEN(statfs), "statfs" > }, > [100] = { 2, TD, SEN(fstatfs), "fstatfs" > }, > [101] = { 3, 0, SEN(ioperm), "ioperm" > }, > [102] = { 2, TD, SEN(socketcall), "socketcall" > }, > @@ -293,7 +293,7 @@ > [262] = { 4, 0, SEN(clock_nanosleep), > "clock_nanosleep" }, > [263] = { 5, 0, SEN(vserver), "vserver" > }, > [264] = { 6, TD, SEN(fadvise64_64), "fadvise64_64" > }, > -[265] = { 3, TF, SEN(statfs64), "statfs64" > }, > +[265] = { 3, TF|TSF, SEN(statfs64), "statfs64" > }, > [266] = { 3, TD, SEN(fstatfs64), "fstatfs64" > }, > [267] = { 5, TM|SI, SEN(remap_file_pages), > "remap_file_pages" }, > [268] = { 6, TM, SEN(mbind), "mbind" > }, > diff --git a/linux/s390x/syscallent.h b/linux/s390x/syscallent.h > index d5b5459..e8d47cb 100644 > --- a/linux/s390x/syscallent.h > +++ b/linux/s390x/syscallent.h > @@ -121,7 +121,7 @@ > [ 96] = { 2, 0, SEN(getpriority), "getpriority" > }, > [ 97] = { 3, 0, SEN(setpriority), "setpriority" > }, > [ 98] = { }, > -[ 99] = { 2, TF, SEN(statfs), "statfs" > }, > +[ 99] = { 2, TF|TSF, SEN(statfs), "statfs" > }, > [100] = { 2, TD, SEN(fstatfs), "fstatfs" > }, > [101] = { }, > [102] = { 2, TD, SEN(socketcall), "socketcall" > }, > @@ -277,7 +277,7 @@ > [262] = { 4, 0, SEN(clock_nanosleep), > "clock_nanosleep" }, > [263] = { 5, 0, SEN(vserver), "vserver" > }, > [264] = { }, > -[265] = { 3, TF, SEN(statfs64), "statfs64" > }, > +[265] = { 3, TF|TSF, SEN(statfs64), "statfs64" > }, > [266] = { 3, TD, SEN(fstatfs64), "fstatfs64" > }, > [267] = { 5, TM|SI, SEN(remap_file_pages), > "remap_file_pages" }, > [268] = { 6, TM, SEN(mbind), "mbind" > }, > diff --git a/linux/sh/syscallent.h b/linux/sh/syscallent.h > index 1388416..89f1e19 100644 > --- a/linux/sh/syscallent.h > +++ b/linux/sh/syscallent.h > @@ -127,7 +127,7 @@ > [ 96] = { 2, 0, SEN(getpriority), "getpriority" > }, > [ 97] = { 3, 0, SEN(setpriority), "setpriority" > }, > [ 98] = { 4, 0, SEN(profil), "profil" > }, > -[ 99] = { 2, TF, SEN(statfs), "statfs" > }, > +[ 99] = { 2, TF|TSF, SEN(statfs), "statfs" > }, > [100] = { 2, TD, SEN(fstatfs), "fstatfs" > }, > [101] = { 3, 0, SEN(ioperm), "ioperm" > }, > [102] = { 2, TD, SEN(socketcall), "socketcall" > }, > @@ -293,7 +293,7 @@ > [265] = { 2, 0, SEN(clock_gettime), "clock_gettime" > }, > [266] = { 2, 0, SEN(clock_getres), "clock_getres" > }, > [267] = { 4, 0, SEN(clock_nanosleep), > "clock_nanosleep" }, > -[268] = { 3, TF, SEN(statfs64), "statfs64" > }, > +[268] = { 3, TF|TSF, SEN(statfs64), "statfs64" > }, > [269] = { 3, TD, SEN(fstatfs64), "fstatfs64" > }, > [270] = { 3, TS, SEN(tgkill), "tgkill" > }, > [271] = { 2, TF, SEN(utimes), "utimes" > }, > diff --git a/linux/sh64/syscallent.h b/linux/sh64/syscallent.h > index e935104..42f2199 100644 > --- a/linux/sh64/syscallent.h > +++ b/linux/sh64/syscallent.h > @@ -125,7 +125,7 @@ > [ 96] = { 2, 0, SEN(getpriority), "getpriority" > }, > [ 97] = { 3, 0, SEN(setpriority), "setpriority" > }, > [ 98] = { 4, 0, SEN(profil), "profil" > }, > -[ 99] = { 2, TF, SEN(statfs), "statfs" > }, > +[ 99] = { 2, TF|TSF, SEN(statfs), "statfs" > }, > [100] = { 2, TD, SEN(fstatfs), "fstatfs" > }, > [101] = { 3, 0, SEN(ioperm), "ioperm" > }, > [102] = { 2, TD, SEN(socketcall), "socketcall" > }, > @@ -319,7 +319,7 @@ > [293] = { 2, 0, SEN(clock_gettime), "clock_gettime" > }, > [294] = { 2, 0, SEN(clock_getres), "clock_getres" > }, > [295] = { 4, 0, SEN(clock_nanosleep), > "clock_nanosleep" }, > -[296] = { 3, TF, SEN(statfs64), "statfs64" > }, > +[296] = { 3, TF|TSF, SEN(statfs64), "statfs64" > }, > [297] = { 3, TD, SEN(fstatfs64), "fstatfs64" > }, > [298] = { 3, TS, SEN(tgkill), "tgkill" > }, > [299] = { 2, TF, SEN(utimes), "utimes" > }, > diff --git a/linux/sparc/syscallent.h b/linux/sparc/syscallent.h > index 30d8819..6e0cff6 100644 > --- a/linux/sparc/syscallent.h > +++ b/linux/sparc/syscallent.h > @@ -155,7 +155,7 @@ > [154] = { 3, TD, SEN(getdents64), "getdents64" > }, > [155] = { 3, TD, SEN(fcntl64), "fcntl64" > }, > [156] = { 2, TD, SEN(inotify_rm_watch), > "inotify_rm_watch" }, > -[157] = { 2, TF, SEN(statfs), "statfs" > }, > +[157] = { 2, TF|TSF, SEN(statfs), "statfs" > }, > [158] = { 2, TD, SEN(fstatfs), "fstatfs" > }, > [159] = { 1, TF, SEN(umount), "umount" > }, > [160] = { 3, TSC, SEN(sched_setaffinity), > "sched_set_affinity" }, > @@ -232,7 +232,7 @@ > [231] = { 1, 0, SEN(time), "time" > }, > [232] = { 6, TD, SEN(splice), "splice" > }, > [233] = { 1, 0, SEN(stime), "stime" > }, > -[234] = { 3, TF, SEN(statfs64), "statfs64" > }, > +[234] = { 3, TF|TSF, SEN(statfs64), "statfs64" > }, > [235] = { 3, TD, SEN(fstatfs64), "fstatfs64" > }, > [236] = { 5, TD, SEN(llseek), "_llseek" > }, > [237] = { 2, TM, SEN(mlock), "mlock" > }, > diff --git a/linux/sparc64/syscallent.h b/linux/sparc64/syscallent.h > index 1137a3e..6bf370e 100644 > --- a/linux/sparc64/syscallent.h > +++ b/linux/sparc64/syscallent.h > @@ -153,7 +153,7 @@ > [154] = { 3, TD, SEN(getdents64), "getdents64" > }, > [155] = { }, > [156] = { 2, TD, SEN(inotify_rm_watch), > "inotify_rm_watch" }, > -[157] = { 2, TF, SEN(statfs), "statfs" > }, > +[157] = { 2, TF|TSF, SEN(statfs), "statfs" > }, > [158] = { 2, TD, SEN(fstatfs), "fstatfs" > }, > [159] = { 1, TF, SEN(umount), "umount" > }, > [160] = { 3, TSC, SEN(sched_setaffinity), > "sched_set_affinity" }, > @@ -230,7 +230,7 @@ > [231] = { }, > [232] = { 6, TD, SEN(splice), "splice" > }, > [233] = { 1, 0, SEN(stime), "stime" > }, > -[234] = { 3, TF, SEN(statfs64), "statfs64" > }, > +[234] = { 3, TF|TSF, SEN(statfs64), "statfs64" > }, > [235] = { 3, TD, SEN(fstatfs64), "fstatfs64" > }, > [236] = { 5, TD, SEN(llseek), "_llseek" > }, > [237] = { 2, TM, SEN(mlock), "mlock" > }, > diff --git a/linux/x32/syscallent.h b/linux/x32/syscallent.h > index 30a684a..6394c4f 100644 > --- a/linux/x32/syscallent.h > +++ b/linux/x32/syscallent.h > @@ -135,7 +135,7 @@ > [134] = { 1, TF, SEN(printargs), "64:uselib" > }, > [135] = { 1, NF, SEN(personality), "personality" > }, > [136] = { 2, 0, SEN(ustat), "ustat" > }, > -[137] = { 2, TF, SEN(statfs), "statfs" > }, > +[137] = { 2, TF|TSF, SEN(statfs), "statfs" > }, > [138] = { 2, TD, SEN(fstatfs), "fstatfs" > }, > [139] = { 3, 0, SEN(sysfs), "sysfs" > }, > [140] = { 2, 0, SEN(getpriority), "getpriority" > }, > diff --git a/linux/x86_64/syscallent.h b/linux/x86_64/syscallent.h > index 62960d2..1e215aa 100644 > --- a/linux/x86_64/syscallent.h > +++ b/linux/x86_64/syscallent.h > @@ -135,7 +135,7 @@ > [134] = { 1, TF, SEN(uselib), "uselib" > }, > [135] = { 1, NF, SEN(personality), "personality" > }, > [136] = { 2, 0, SEN(ustat), "ustat" > }, > -[137] = { 2, TF, SEN(statfs), "statfs" > }, > +[137] = { 2, TF|TSF, SEN(statfs), "statfs" > }, > [138] = { 2, TD, SEN(fstatfs), "fstatfs" > }, > [139] = { 3, 0, SEN(sysfs), "sysfs" > }, > [140] = { 2, 0, SEN(getpriority), "getpriority" > }, > diff --git a/linux/xtensa/syscallent.h b/linux/xtensa/syscallent.h > index 63995bc..40bd8f8 100644 > --- a/linux/xtensa/syscallent.h > +++ b/linux/xtensa/syscallent.h > @@ -176,9 +176,9 @@ > [181] = { 1, NF, SEN(setfsgid), "setfsgid" > }, > [182] = { 3, 0, SEN(sysfs), "sysfs" > }, > [183] = { 2, 0, SEN(ustat), "ustat" > }, > -[184] = { 2, TF, SEN(statfs), "statfs" > }, > +[184] = { 2, TF|TSF, SEN(statfs), "statfs" > }, > [185] = { 2, TD, SEN(fstatfs), "fstatfs" > }, > -[186] = { 3, TF, SEN(statfs64), "statfs64" > }, > +[186] = { 3, TF|TSF, SEN(statfs64), "statfs64" > }, > [187] = { 3, TD, SEN(fstatfs64), "fstatfs64" > }, > [188] = { 2, 0, SEN(setrlimit), "setrlimit" > }, > [189] = { 2, 0, SEN(getrlimit), "getrlimit" > }, > diff --git a/qualify.c b/qualify.c > index b5023f2..692f7ec 100644 > --- a/qualify.c > +++ b/qualify.c > @@ -220,6 +220,7 @@ lookup_class(const char *s) > { "%ipc", TRACE_IPC }, > { "%network", TRACE_NETWORK }, > { "%sched", TRACE_SCHED }, > + { "%statfs", TRACE_STATFS }, > }; > > unsigned int i; > diff --git a/strace.1 b/strace.1 > index 9b69ec2..5286ba4 100644 > --- a/strace.1 > +++ b/strace.1 > @@ -429,6 +429,9 @@ Trace all memory mapping related system calls. > .BR "\-e\ trace" = %sched > Trace all scheduler-related (sched_*) system calls. > .TP > +.BR "\-e\ trace" = %statfs > +Trace statfs-related (statfs{,64}) system calls. > +.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 569055f..2a93731 100644 > --- a/syscall.c > +++ b/syscall.c > @@ -77,6 +77,7 @@ > #define TS TRACE_SIGNAL > #define TM TRACE_MEMORY > #define TSC TRACE_SCHED > +#define TSF TRACE_STATFS > #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 TSC > +#undef TSF > #undef NF > #undef MA > #undef SI > diff --git a/sysent.h b/sysent.h > index f4eaa93..00bae67 100644 > --- a/sysent.h > +++ b/sysent.h > @@ -22,5 +22,6 @@ typedef struct sysent { > #define TRACE_INDIRECT_SUBCALL 02000 /* Syscall is an indirect > socket/ipc subcall. */ > #define COMPAT_SYSCALL_TYPES 04000 /* A compat syscall that uses compat > types. */ > #define TRACE_SCHED 010000 /* Trace scheduler-related syscalls. */ > +#define TRACE_STATFS 040000 /* Trace narrower statfs-related syscalls. */ It is formatted differently comparing to previous records. > > #endif /* !STRACE_SYSENT_H */ > diff --git a/tests/Makefile.am b/tests/Makefile.am > index a75b7fc..655ff7c 100644 > --- a/tests/Makefile.am > +++ b/tests/Makefile.am > @@ -734,6 +734,7 @@ DECODER_TESTS = \ > rt_sigtimedwait.test \ > rt_tgsigqueueinfo.test \ > sched.test \ > + trace_statfs.test \ > sched_get_priority_mxx.test \ > sched_rr_get_interval.test \ > sched_xetaffinity.test \ > diff --git a/tests/ksysent.c b/tests/ksysent.c > index 252feff..0db235a 100644 > --- a/tests/ksysent.c > +++ b/tests/ksysent.c > @@ -41,6 +41,7 @@ > #define TS 0 > #define TM 0 > #define TSC 0 > +#define TSF 0 > #define NF 0 > #define MA 0 > #define SI 0 > diff --git a/tests/nsyscalls.c b/tests/nsyscalls.c > index c2bdb20..9ed4b0a 100644 > --- a/tests/nsyscalls.c > +++ b/tests/nsyscalls.c > @@ -42,6 +42,7 @@ > #define TS 0 > #define TM 0 > #define TSC 0 > +#define TSF 0 > #define NF 0 > #define MA 0 > #define SI 0 > diff --git a/tests/trace_statfs.test b/tests/trace_statfs.test > new file mode 100755 > index 0000000..2c4c785 > --- /dev/null > +++ b/tests/trace_statfs.test > @@ -0,0 +1,54 @@ > +#!/bin/sh > + > +# Check how statfs-related syscalls are traced. > +# > +# Copyright (c) 2017 The strace developers. > +# All rights reserved. > +# > +# Redistribution and use in source and binary forms, with or without > +# modification, are permitted provided that the following conditions > +# are met: > +# 1. Redistributions of source code must retain the above copyright > +# notice, this list of conditions and the following disclaimer. > +# 2. Redistributions in binary form must reproduce the above copyright > +# notice, this list of conditions and the following disclaimer in the > +# documentation and/or other materials provided with the distribution. > +# 3. The name of the author may not be used to endorse or promote products > +# derived from this software without specific prior written permission. > +# > +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR > +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES > +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. > +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, > +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT > +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, > +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY > +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT > +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF > +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > + > +. "${srcdir=.}/init.sh" > + > +while read w i > +do > + try_run_prog "./$i" || continue > + run_strace -a$w -e%statfs ./$i > "$EXP" > + match_diff "$LOG" "$EXP" > +done << EOF > +17 statfs Tailing whitespace. I'd also suggest adding stat64 test to this list. > +EOF > + > +echo '+++ exited with 0 +++' > "$EXP" > + > +while read w i > +do > + try_run_prog "./$i" || continue > + run_strace -a$w -e%statfs ./$i > /dev/null > + match_diff "$LOG" "$EXP" > +done << EOF > +11 fchdir > +28 futex > +10 fsync > +EOF > + > +rm "$EXP" > -- > 2.7.4 > > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > _______________________________________________ > Strace-devel mailing list > Strace-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/strace-devel ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Strace-devel mailing list Strace-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/strace-devel