GSOC: Introduction

Abhishek Tiwari erabhishektiwarics at gmail.com
Sat Mar 18 02:52:46 UTC 2017


On 18-Mar-2017 1:51 AM, "Eugene Syromyatnikov" <evgsyr at gmail.com> wrote:

On Thu, Mar 16, 2017 at 10:07:27PM +0530, Abhishek Tiwari wrote:
> From 38ea98c7ba87bc485d8af34fc401f46b05b2c035 Mon Sep 17 00:00:00 2001
> From: Abhishek Tiwari <erabhishektiwarics at gmail.com>
> Date: Thu, 16 Mar 2017 16:55:44 +0530
> Subject: [PATCH v4] Implement -e trace=%statfs option for tracing statfs
like syscalls.
>
>       linux/*/syscallent.h part is modified automatically by:
>
>       git grep -Fl 'statfs' linux/*/syscallent* | xargs sed -i
's/TD\(,[[:space:]]*SEN(statfs\)/TD|SFS\1/'
>       git grep -Fl 'statfs' linux/*/syscallent* | xargs sed -i
's/TF\(,[[:space:]]*SEN(statfs\)/TF|SFS\1/'
>       git grep -Fl 'statfs' linux/*/syscallent* | xargs sed -i
's/0\(,[[:space:]]*SEN(osf_statfs\)/SFS\1/'
>       git grep -Fl 'statfs' linux/*/syscallent* | xargs sed -i
's/0\(,[[:space:]]*SEN(.*_statfs\)/SFS\1/'
>       git grep -Fl 'ustat' linux/*/syscallent* | xargs sed -i
's/0\(,[[:space:]]*SEN(.*_ustat\)/SFS\1/'
>
> * linux/32/syscallent.h: Add SFS flag for stat-like sycalls.
"T" in these shorthand flags is for "trace", maybe it is a good idea to
follow this convention. On the other side, if blindly follow this rule,
size of
shorthand would be gargantuan 4 chars.

Also, from my point of view, it's quite strange to include ustat and do
not include fstatfs, since, well, they are equivalently similar to statfs.

> * 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_STAT for "%statfs".
> * strace.1 (.SS Filtering): Add information about %statfs syscall class.
> * syscall.c: Alias SFS to TRACE_STATFS around syscallent.h inclusion.
> * sysent.h (TRACE_STATFS): New definition.
> * tests/Makefile.am (DECODER_TESTS): Add trace_statfs.test.
> * tests/ksysent.c: Define SFS 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     |  4 +--
>  linux/alpha/syscallent.h       |  8 +++---
>  linux/arm/syscallent.h         |  6 ++---
>  linux/avr32/syscallent.h       |  6 ++---
>  linux/bfin/syscallent.h        |  6 ++---
>  linux/crisv10/syscallent.h     |  6 ++---
>  linux/hppa/syscallent.h        |  6 ++---
>  linux/i386/syscallent.h        |  6 ++---
>  linux/ia64/syscallent.h        |  6 ++---
>  linux/m68k/syscallent.h        |  6 ++---
>  linux/microblaze/syscallent.h  |  6 ++---
>  linux/mips/syscallent-compat.h |  8 +++---
>  linux/mips/syscallent-n32.h    |  6 ++---
>  linux/mips/syscallent-n64.h    |  4 +--
>  linux/mips/syscallent-o32.h    |  6 ++---
>  linux/powerpc/syscallent.h     |  6 ++---
>  linux/powerpc64/syscallent.h   |  6 ++---
>  linux/s390/syscallent.h        |  6 ++---
>  linux/s390x/syscallent.h       |  6 ++---
>  linux/sh/syscallent.h          |  6 ++---
>  linux/sh64/syscallent.h        |  6 ++---
>  linux/sparc/syscallent.h       |  6 ++---
>  linux/sparc64/syscallent.h     |  6 ++---
>  linux/x32/syscallent.h         |  4 +--
>  linux/x86_64/syscallent.h      |  4 +--
>  linux/xtensa/syscallent.h      |  6 ++---
>  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        | 55 ++++++++++++++++++++++++++++++
++++++++++++
>  36 files changed, 143 insertions(+), 78 deletions(-)
>  create mode 100755 tests/trace_statfs.test
>
> diff --git a/linux/32/syscallent.h b/linux/32/syscallent.h
> index a8f9510..72a3ebe 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|SFS, SEN(statfs64),                  "statfs64"
    },
Spacing is ruined.

>  [ 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..413b91a 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|SFS, 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..4bd981e 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|SFS, SEN(statfs),            "statfs"        },
>  [1057] = { 3,        TD,             SEN(lseek),             "lseek"
     },
>  [1058] = { 6,        TD|TM|SI,       SEN(mmap),              "mmap"
    },
>  [1059] = { 1,        0,              SEN(alarm),             "alarm"
     },
> @@ -59,7 +59,7 @@
>  [1067] = { 5,        TD,             SEN(select),            "select"
    },
>  [1068] = { 3,        TD,             SEN(poll),              "poll"
    },
>  [1069] = { 4,        TD,             SEN(epoll_wait),
"epoll_wait"    },
> -[1070] = { 2,        0,              SEN(ustat),             "ustat"
     },
> +[1070] = { 2,        SFS,    SEN(ustat),             "ustat"         },
>  [1071] = { 0,        TP,             SEN(vfork),             "vfork"
     },
>  [1072] = { 4,        TP,             SEN(wait4),             "wait4"
     },
>  [1073] = { 4,        TN,             SEN(recv),              "recv"
    },
> diff --git a/linux/alpha/syscallent.h b/linux/alpha/syscallent.h
> index 4449f22..7c1bc71 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, SFS,    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, SFS,    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"
             },
> @@ -290,8 +290,8 @@
>  [324] = { 1, NF,             SEN(personality),
 "personality"           },
>  [325] = { 1, NF,             SEN(setfsuid),                  "setfsuid"
            },
>  [326] = { 1, NF,             SEN(setfsgid),                  "setfsgid"
            },
> -[327] = { 2, 0,              SEN(ustat),                     "ustat"
             },
> -[328] = { 2, TF,             SEN(statfs),                    "statfs"
            },
> +[327] = { 2, SFS,    SEN(ustat),                     "ustat"
     },
> +[328] = { 2, TF|SFS, 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..006bb55 100644
> --- a/linux/arm/syscallent.h
> +++ b/linux/arm/syscallent.h
> @@ -88,7 +88,7 @@
>  [ 59] = { 1, 0,              SEN(oldolduname),
 "oldolduname"           },
>  [ 60] = { 1, NF,             SEN(umask),                     "umask"
             },
>  [ 61] = { 1, TF,             SEN(chroot),                    "chroot"
            },
> -[ 62] = { 2, 0,              SEN(ustat),                     "ustat"
             },
> +[ 62] = { 2, SFS,    SEN(ustat),                     "ustat"
     },
>  [ 63] = { 2, TD,             SEN(dup2),                      "dup2"
            },
>  [ 64] = { 0, NF,             SEN(getppid),                   "getppid"
             },
>  [ 65] = { 0, 0,              SEN(getpgrp),                   "getpgrp"
             },
> @@ -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|SFS, 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|SFS, 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..3aac256 100644
> --- a/linux/avr32/syscallent.h
> +++ b/linux/avr32/syscallent.h
> @@ -87,7 +87,7 @@
>  [ 59] = { 3, 0,              SEN(getresuid),
 "getresuid"             },
>  [ 60] = { 2, 0,              SEN(setreuid),                  "setreuid"
            },
>  [ 61] = { 2, 0,              SEN(setregid),                  "setregid"
            },
> -[ 62] = { 2, 0,              SEN(ustat),                     "ustat"
             },
> +[ 62] = { 2, SFS,    SEN(ustat),                     "ustat"
     },
>  [ 63] = { 2, TD,             SEN(dup2),                      "dup2"
            },
>  [ 64] = { 0, NF,             SEN(getppid),                   "getppid"
             },
>  [ 65] = { 0, 0,              SEN(getpgrp),                   "getpgrp"
             },
> @@ -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|SFS, 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|SFS, 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..80b8951 100644
> --- a/linux/bfin/syscallent.h
> +++ b/linux/bfin/syscallent.h
> @@ -88,7 +88,7 @@
>  [ 59] = { 1, 0,              SEN(oldolduname),
 "oldolduname"           },
>  [ 60] = { 1, NF,             SEN(umask),                     "umask"
             },
>  [ 61] = { 1, TF,             SEN(chroot),                    "chroot"
            },
> -[ 62] = { 2, 0,              SEN(ustat),                     "ustat"
             },
> +[ 62] = { 2, SFS,    SEN(ustat),                     "ustat"
     },
>  [ 63] = { 2, TD,             SEN(dup2),                      "dup2"
            },
>  [ 64] = { 0, NF,             SEN(getppid),                   "getppid"
             },
>  [ 65] = { 0, 0,              SEN(getpgrp),                   "getpgrp"
             },
> @@ -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|SFS, 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|SFS, 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..acf3917 100644
> --- a/linux/crisv10/syscallent.h
> +++ b/linux/crisv10/syscallent.h
> @@ -60,7 +60,7 @@
>  [ 59] = { 1, 0,              SEN(oldolduname),
 "oldolduname"           },
>  [ 60] = { 1, NF,             SEN(umask),                     "umask"
             },
>  [ 61] = { 1, TF,             SEN(chroot),                    "chroot"
            },
> -[ 62] = { 2, 0,              SEN(ustat),                     "ustat"
             },
> +[ 62] = { 2, SFS,    SEN(ustat),                     "ustat"
     },
>  [ 63] = { 2, TD,             SEN(dup2),                      "dup2"
            },
>  [ 64] = { 0, NF,             SEN(getppid),                   "getppid"
             },
>  [ 65] = { 0, 0,              SEN(getpgrp),                   "getpgrp"
             },
> @@ -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|SFS, 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|SFS, 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..9fa9248 100644
> --- a/linux/hppa/syscallent.h
> +++ b/linux/hppa/syscallent.h
> @@ -64,7 +64,7 @@
>  [ 59] = { 1, 0,              SEN(uname),                     "uname"
             },
>  [ 60] = { 1, NF,             SEN(umask),                     "umask"
             },
>  [ 61] = { 1, TF,             SEN(chroot),                    "chroot"
            },
> -[ 62] = { 2, 0,              SEN(ustat),                     "ustat"
             },
> +[ 62] = { 2, SFS,    SEN(ustat),                     "ustat"
     },
>  [ 63] = { 2, TD,             SEN(dup2),                      "dup2"
            },
>  [ 64] = { 0, NF,             SEN(getppid),                   "getppid"
             },
>  [ 65] = { 0, 0,              SEN(getpgrp),                   "getpgrp"
             },
> @@ -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|SFS, 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|SFS, 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..eb07fc1 100644
> --- a/linux/i386/syscallent.h
> +++ b/linux/i386/syscallent.h
> @@ -88,7 +88,7 @@
>  [ 59] = { 1, 0,              SEN(oldolduname),
 "oldolduname"           },
>  [ 60] = { 1, NF,             SEN(umask),                     "umask"
             },
>  [ 61] = { 1, TF,             SEN(chroot),                    "chroot"
            },
> -[ 62] = { 2, 0,              SEN(ustat),                     "ustat"
             },
> +[ 62] = { 2, SFS,    SEN(ustat),                     "ustat"
     },
>  [ 63] = { 2, TD,             SEN(dup2),                      "dup2"
            },
>  [ 64] = { 0, NF,             SEN(getppid),                   "getppid"
             },
>  [ 65] = { 0, 0,              SEN(getpgrp),                   "getpgrp"
             },
> @@ -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|SFS, 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|SFS, 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..915c871 100644
> --- a/linux/ia64/syscallent.h
> +++ b/linux/ia64/syscallent.h
> @@ -86,7 +86,7 @@
>  [1066] = { 3,        TD,             SEN(fcntl),
 "fcntl"                 },
>  [1067] = { 1,        NF,             SEN(umask),
 "umask"                 },
>  [1068] = { 1,        TF,             SEN(chroot),
"chroot"                },
> -[1069] = { 2,        0,              SEN(ustat),
 "ustat"                 },
> +[1069] = { 2,        SFS,    SEN(ustat),                     "ustat"
             },
>  [1070] = { 2,        TD,             SEN(dup2),
"dup2"                  },
>  [1071] = { 2,        0,              SEN(setreuid),
"setreuid"              },
>  [1072] = { 2,        0,              SEN(setregid),
"setregid"              },
> @@ -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|SFS, 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|SFS, 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..149f06f 100644
> --- a/linux/m68k/syscallent.h
> +++ b/linux/m68k/syscallent.h
> @@ -88,7 +88,7 @@
>  [ 59] = { 1, 0,              SEN(oldolduname),
 "oldolduname"           },
>  [ 60] = { 1, NF,             SEN(umask),                     "umask"
             },
>  [ 61] = { 1, TF,             SEN(chroot),                    "chroot"
            },
> -[ 62] = { 2, 0,              SEN(ustat),                     "ustat"
             },
> +[ 62] = { 2, SFS,    SEN(ustat),                     "ustat"
     },
>  [ 63] = { 2, TD,             SEN(dup2),                      "dup2"
            },
>  [ 64] = { 0, NF,             SEN(getppid),                   "getppid"
             },
>  [ 65] = { 0, 0,              SEN(getpgrp),                   "getpgrp"
             },
> @@ -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|SFS, 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|SFS, 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..f85de2f 100644
> --- a/linux/microblaze/syscallent.h
> +++ b/linux/microblaze/syscallent.h
> @@ -88,7 +88,7 @@
>  [ 59] = { 1, 0,              SEN(oldolduname),
 "oldolduname"           },
>  [ 60] = { 1, NF,             SEN(umask),                     "umask"
             },
>  [ 61] = { 1, TF,             SEN(chroot),                    "chroot"
            },
> -[ 62] = { 2, 0,              SEN(ustat),                     "ustat"
             },
> +[ 62] = { 2, SFS,    SEN(ustat),                     "ustat"
     },
>  [ 63] = { 2, TD,             SEN(dup2),                      "dup2"
            },
>  [ 64] = { 0, NF,             SEN(getppid),                   "getppid"
             },
>  [ 65] = { 0, 0,              SEN(getpgrp),                   "getpgrp"
             },
> @@ -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|SFS, 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|SFS, 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..c5214b7 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,        SFS,    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"  },
> @@ -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,        SFS,    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"  },
> @@ -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,        SFS,    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,        SFS,    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..dfa3b1e 100644
> --- a/linux/mips/syscallent-n32.h
> +++ b/linux/mips/syscallent-n32.h
> @@ -133,8 +133,8 @@
>  [6130] = { 2,        TF,             SEN(utime),
 "utime"                 },
>  [6131] = { 3,        TF,             SEN(mknod),
 "mknod"                 },
>  [6132] = { 1,        NF,             SEN(personality),
 "personality"           },
> -[6133] = { 2,        0,              SEN(ustat),
 "ustat"                 },
> -[6134] = { 2,        TF,             SEN(statfs),
"statfs"                },
> +[6133] = { 2,        SFS,    SEN(ustat),                     "ustat"
             },
> +[6134] = { 2,        TF|SFS, 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|SFS, 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..44c2acd 100644
> --- a/linux/mips/syscallent-n64.h
> +++ b/linux/mips/syscallent-n64.h
> @@ -133,8 +133,8 @@
>  [5130] = { 2,        TF,             SEN(utime),
 "utime"                 },
>  [5131] = { 3,        TF,             SEN(mknod),
 "mknod"                 },
>  [5132] = { 1,        NF,             SEN(personality),
 "personality"           },
> -[5133] = { 2,        0,              SEN(ustat),
 "ustat"                 },
> -[5134] = { 2,        TF,             SEN(statfs),
"statfs"                },
> +[5133] = { 2,        SFS,    SEN(ustat),                     "ustat"
             },
> +[5134] = { 2,        TF|SFS, 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..06219fa 100644
> --- a/linux/mips/syscallent-o32.h
> +++ b/linux/mips/syscallent-o32.h
> @@ -62,7 +62,7 @@
>  [4059] = { 1,        0,              SEN(oldolduname),
 "oldolduname"           },
>  [4060] = { 1,        NF,             SEN(umask),
 "umask"                 },
>  [4061] = { 1,        TF,             SEN(chroot),
"chroot"                },
> -[4062] = { 2,        0,              SEN(ustat),
 "ustat"                 },
> +[4062] = { 2,        SFS,    SEN(ustat),                     "ustat"
             },
>  [4063] = { 2,        TD,             SEN(dup2),
"dup2"                  },
>  [4064] = { 0,        NF,             SEN(getppid),
 "getppid"               },
>  [4065] = { 0,        0,              SEN(getpgrp),
 "getpgrp"               },
> @@ -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|SFS, 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|SFS, 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..618218c 100644
> --- a/linux/powerpc/syscallent.h
> +++ b/linux/powerpc/syscallent.h
> @@ -88,7 +88,7 @@
>  [ 59] = { 1, 0,              SEN(oldolduname),
 "oldolduname"           },
>  [ 60] = { 1, NF,             SEN(umask),                     "umask"
             },
>  [ 61] = { 1, TF,             SEN(chroot),                    "chroot"
            },
> -[ 62] = { 2, 0,              SEN(ustat),                     "ustat"
             },
> +[ 62] = { 2, SFS,    SEN(ustat),                     "ustat"
     },
>  [ 63] = { 2, TD,             SEN(dup2),                      "dup2"
            },
>  [ 64] = { 0, NF,             SEN(getppid),                   "getppid"
             },
>  [ 65] = { 0, 0,              SEN(getpgrp),                   "getpgrp"
             },
> @@ -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|SFS, 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|SFS, 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..20f6e8e 100644
> --- a/linux/powerpc64/syscallent.h
> +++ b/linux/powerpc64/syscallent.h
> @@ -88,7 +88,7 @@
>  [ 59] = { 1, 0,              SEN(oldolduname),
 "oldolduname"           },
>  [ 60] = { 1, NF,             SEN(umask),                     "umask"
             },
>  [ 61] = { 1, TF,             SEN(chroot),                    "chroot"
            },
> -[ 62] = { 2, 0,              SEN(ustat),                     "ustat"
             },
> +[ 62] = { 2, SFS,    SEN(ustat),                     "ustat"
     },
>  [ 63] = { 2, TD,             SEN(dup2),                      "dup2"
            },
>  [ 64] = { 0, NF,             SEN(getppid),                   "getppid"
             },
>  [ 65] = { 0, 0,              SEN(getpgrp),                   "getpgrp"
             },
> @@ -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|SFS, 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|SFS, 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..d3ba5fe 100644
> --- a/linux/s390/syscallent.h
> +++ b/linux/s390/syscallent.h
> @@ -90,7 +90,7 @@
>  [ 59] = { },
>  [ 60] = { 1, NF,             SEN(umask),                     "umask"
             },
>  [ 61] = { 1, TF,             SEN(chroot),                    "chroot"
            },
> -[ 62] = { 2, 0,              SEN(ustat),                     "ustat"
             },
> +[ 62] = { 2, SFS,    SEN(ustat),                     "ustat"
     },
>  [ 63] = { 2, TD,             SEN(dup2),                      "dup2"
            },
>  [ 64] = { 0, NF,             SEN(getppid),                   "getppid"
             },
>  [ 65] = { 0, 0,              SEN(getpgrp),                   "getpgrp"
             },
> @@ -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|SFS, 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|SFS, 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..80b68d7 100644
> --- a/linux/s390x/syscallent.h
> +++ b/linux/s390x/syscallent.h
> @@ -89,7 +89,7 @@
>  [ 59] = { },
>  [ 60] = { 1, NF,             SEN(umask),                     "umask"
             },
>  [ 61] = { 1, TF,             SEN(chroot),                    "chroot"
            },
> -[ 62] = { 2, 0,              SEN(ustat),                     "ustat"
             },
> +[ 62] = { 2, SFS,    SEN(ustat),                     "ustat"
     },
>  [ 63] = { 2, TD,             SEN(dup2),                      "dup2"
            },
>  [ 64] = { 0, NF,             SEN(getppid),                   "getppid"
             },
>  [ 65] = { 0, 0,              SEN(getpgrp),                   "getpgrp"
             },
> @@ -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|SFS, 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|SFS, 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..41de292 100644
> --- a/linux/sh/syscallent.h
> +++ b/linux/sh/syscallent.h
> @@ -90,7 +90,7 @@
>  [ 59] = { 1, 0,              SEN(oldolduname),
 "oldolduname"           },
>  [ 60] = { 1, NF,             SEN(umask),                     "umask"
             },
>  [ 61] = { 1, TF,             SEN(chroot),                    "chroot"
            },
> -[ 62] = { 2, 0,              SEN(ustat),                     "ustat"
             },
> +[ 62] = { 2, SFS,    SEN(ustat),                     "ustat"
     },
>  [ 63] = { 2, TD,             SEN(dup2),                      "dup2"
            },
>  [ 64] = { 0, NF,             SEN(getppid),                   "getppid"
             },
>  [ 65] = { 0, 0,              SEN(getpgrp),                   "getpgrp"
             },
> @@ -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|SFS, 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|SFS, 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..c5de8e1 100644
> --- a/linux/sh64/syscallent.h
> +++ b/linux/sh64/syscallent.h
> @@ -88,7 +88,7 @@
>  [ 59] = { 1, 0,              SEN(oldolduname),
 "oldolduname"           },
>  [ 60] = { 1, NF,             SEN(umask),                     "umask"
             },
>  [ 61] = { 1, TF,             SEN(chroot),                    "chroot"
            },
> -[ 62] = { 2, 0,              SEN(ustat),                     "ustat"
             },
> +[ 62] = { 2, SFS,    SEN(ustat),                     "ustat"
     },
>  [ 63] = { 2, TD,             SEN(dup2),                      "dup2"
            },
>  [ 64] = { 0, NF,             SEN(getppid),                   "getppid"
             },
>  [ 65] = { 0, 0,              SEN(getpgrp),                   "getpgrp"
             },
> @@ -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|SFS, 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|SFS, 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..3988688 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|SFS, SEN(statfs),                    "statfs"
    },
>  [158] = { 2, TD,             SEN(fstatfs),                   "fstatfs"
             },
>  [159] = { 1, TF,             SEN(umount),                    "umount"
            },
>  [160] = { 3, TSC,            SEN(sched_setaffinity),
 "sched_set_affinity"    },
> @@ -166,7 +166,7 @@
>  [165] = { 4, TF,             SEN(quotactl),                  "quotactl"
            },
>  [166] = { 1, 0,              SEN(set_tid_address),
 "set_tid_address"       },
>  [167] = { 5, TF,             SEN(mount),                     "mount"
             },
> -[168] = { 2, 0,              SEN(ustat),                     "ustat"
             },
> +[168] = { 2, SFS,    SEN(ustat),                     "ustat"
     },
>  [169] = { 5, TF,             SEN(setxattr),                  "setxattr"
            },
>  [170] = { 5, TF,             SEN(setxattr),
"lsetxattr"             },
>  [171] = { 5, TD,             SEN(fsetxattr),
 "fsetxattr"             },
> @@ -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|SFS, 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..530faab 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|SFS, SEN(statfs),                    "statfs"
    },
>  [158] = { 2, TD,             SEN(fstatfs),                   "fstatfs"
             },
>  [159] = { 1, TF,             SEN(umount),                    "umount"
            },
>  [160] = { 3, TSC,            SEN(sched_setaffinity),
 "sched_set_affinity"    },
> @@ -164,7 +164,7 @@
>  [165] = { 4, TF,             SEN(quotactl),                  "quotactl"
            },
>  [166] = { 1, 0,              SEN(set_tid_address),
 "set_tid_address"       },
>  [167] = { 5, TF,             SEN(mount),                     "mount"
             },
> -[168] = { 2, 0,              SEN(ustat),                     "ustat"
             },
> +[168] = { 2, SFS,    SEN(ustat),                     "ustat"
     },
>  [169] = { 5, TF,             SEN(setxattr),                  "setxattr"
            },
>  [170] = { 5, TF,             SEN(setxattr),
"lsetxattr"             },
>  [171] = { 5, TD,             SEN(fsetxattr),
 "fsetxattr"             },
> @@ -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|SFS, 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..088161f 100644
> --- a/linux/x32/syscallent.h
> +++ b/linux/x32/syscallent.h
> @@ -134,8 +134,8 @@
>  [133] = { 3, TF,             SEN(mknod),                     "mknod"
             },
>  [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"
            },
> +[136] = { 2, SFS,    SEN(ustat),                     "ustat"
     },
> +[137] = { 2, TF|SFS, 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..03cd44a 100644
> --- a/linux/x86_64/syscallent.h
> +++ b/linux/x86_64/syscallent.h
> @@ -134,8 +134,8 @@
>  [133] = { 3, TF,             SEN(mknod),                     "mknod"
             },
>  [134] = { 1, TF,             SEN(uselib),                    "uselib"
            },
>  [135] = { 1, NF,             SEN(personality),
 "personality"           },
> -[136] = { 2, 0,              SEN(ustat),                     "ustat"
             },
> -[137] = { 2, TF,             SEN(statfs),                    "statfs"
            },
> +[136] = { 2, SFS,    SEN(ustat),                     "ustat"
     },
> +[137] = { 2, TF|SFS, 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..dc956b0 100644
> --- a/linux/xtensa/syscallent.h
> +++ b/linux/xtensa/syscallent.h
> @@ -175,10 +175,10 @@
>  [180] = { 1, NF,             SEN(setfsuid),                  "setfsuid"
            },
>  [181] = { 1, NF,             SEN(setfsgid),                  "setfsgid"
            },
>  [182] = { 3, 0,              SEN(sysfs),                     "sysfs"
             },
> -[183] = { 2, 0,              SEN(ustat),                     "ustat"
             },
> -[184] = { 2, TF,             SEN(statfs),                    "statfs"
            },
> +[183] = { 2, SFS,    SEN(ustat),                     "ustat"
     },
> +[184] = { 2, TF|SFS, SEN(statfs),                    "statfs"
    },
>  [185] = { 2, TD,             SEN(fstatfs),                   "fstatfs"
             },
> -[186] = { 3, TF,             SEN(statfs64),                  "statfs64"
            },
> +[186] = { 3, TF|SFS, 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..155d215 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 all statfs-related (*statfs* or ustat) 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..5925cb8 100644
> --- a/syscall.c
> +++ b/syscall.c
> @@ -77,6 +77,7 @@
>  #define TS TRACE_SIGNAL
>  #define TM TRACE_MEMORY
>  #define TSC TRACE_SCHED
> +#define SFS 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 SFS
>  #undef NF
>  #undef MA
>  #undef SI
> diff --git a/sysent.h b/sysent.h
> index f4eaa93..42cdbc5 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 statfs-related syscalls. */
>
>  #endif /* !STRACE_SYSENT_H */
> diff --git a/tests/Makefile.am b/tests/Makefile.am
> index c5c124c..a4f34057 100644
> --- a/tests/Makefile.am
> +++ b/tests/Makefile.am
> @@ -733,6 +733,7 @@ DECODER_TESTS = \
>       rt_sigtimedwait.test \
>       rt_tgsigqueueinfo.test \
>       sched.test \
> +     trace_statfs.test \
Please maintain sorting order here.

>       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..301d6e4 100644
> --- a/tests/ksysent.c
> +++ b/tests/ksysent.c
> @@ -41,6 +41,7 @@
>  #define TS 0
>  #define TM 0
>  #define TSC 0
> +#define SFS 0
>  #define NF 0
>  #define MA 0
>  #define SI 0
> diff --git a/tests/nsyscalls.c b/tests/nsyscalls.c
> index c2bdb20..881fc86 100644
> --- a/tests/nsyscalls.c
> +++ b/tests/nsyscalls.c
> @@ -42,6 +42,7 @@
>  #define TS 0
>  #define TM 0
>  #define TSC 0
> +#define SFS 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..abf97b3
> --- /dev/null
> +++ b/tests/trace_statfs.test
> @@ -0,0 +1,55 @@
> +#!/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.
> +
> +STATFS_TESTS='33 ustat
> +17 statfs'
> +
> +NON_STATFS_TESTS='11 fchdir
> +27 futex
> +10 fsync'
> +
> +. "${srcdir=.}/init.sh"
> +
> +echo "$STATFS_TESTS" | while read w i
> +do
> +     run_prog ./$i > /dev/null
> +     run_strace -a$w -e%statfs ./$i > "$EXP"
> +     match_diff "$LOG" "$EXP"
> +done
> +
> +echo '+++ exited with 0 +++' > "$EXP"
> +
> +echo "$NON_STATFS_TESTS" | while read w i
> +do
> +     run_prog ./$i > /dev/null
> +     run_strace -a$w -e%statfs ./$i > /dev/null
> +     match_diff "$LOG" "$EXP"
> +done
> +
> +rm "$EXP"
Please look at recent changes to sched.test (30c16384, b24254d3, and
c465b2ee
specifically), and try to update your test accordingly.

> --
> 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 at 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 at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/strace-devel


There is separate thread created by ldv with subject
Q: statfs related syscalls what syscalls should be grouped together. Please
reply to the thread.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.strace.io/pipermail/strace-devel/attachments/20170318/f3c9b2f6/attachment.html>


More information about the Strace-devel mailing list