On Mon, Feb 19, 2018 at 3:43 PM, Gabriel Laskar <gabr...@lse.epita.fr>
wrote:
> On Thu, 15 Feb 2018 19:07:59 +0530
> Abhishek Tiwari <erabhishektiwar...@gmail.com> wrote:
>
> > Hi,
> >
> > I want to work on microproject
> >
> > extend -e trace=class syntax with new classes
> >
> >
> > I have gone through mailing list. Is following grouping ok
> >
> > {,l,f}setxattr TRACE_SETXATTR TFX
> >
> >
> > -e trace=%setxattr
>
> This is a good start, but from what I see, maybe this group is too
> small, maybe all the syscalls that deals with xattr should be a better
> idea, something like -e trace=%xattr.
>
>
> --
> Gabriel Laskar
>
I have grouped all xattr syscalls and following is attached patch for the
same. Please review.
--
Abhishek Tiwari
M.Tech (CS),
IIT Kharagpur.
From d35b8770dc1e14bdc020dd4d5825e352c55b5af3 Mon Sep 17 00:00:00 2001
From: Abhishek Tiwari <erabhishektiwar...@gmail.com>
Date: Wed, 21 Feb 2018 23:46:00 +0530
Subject: [PATCH] Implement -e trace=%xattr option
linux/*/syscallent*.h part is modified automatically by:
sed -i 's/TF\(,[[:space:]]*SEN.*xattr\)/TF|TFX\1/' \
linux/*/syscallent*.h
sed -i 's/TD\(,[[:space:]]*SEN.*xattr\)/TD|TFX\1/' \
linux/*/syscallent*.h
* NEWS: Mention this change
* linux/32/syscallent.h: Add TFX flag.
* linux/64/syscallent.h: Likewise.
* linux/alpha/syscallent.h: Likewise.
* linux/arm/syscallent.h: Likewise.
* linux/avr32/syscallent.h: Likewise.
* linux/bfin/syscallent.h: Likewise.
* linux/hppa/syscallent.h: Likewise.
* linux/i386/syscallent.h: Likewise.
* linux/ia64/syscallent.h: Likewise.
* linux/m68k/syscallent.h: Likewise.
* linux/microblaze/syscallent.h: Likewise.
* linux/mips/syscallent-n32.h: Likewise.
* linux/mips/syscallent-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.
* strace.1.in (.SS Filtering): Add information about %xattr syscall class.
* sysent.h (TRACE_XATTR): New macro.
* sysent_shorthand_defs.h: Add TFX shorthand for TRACE_XATTR
* tests/Makefile.am (DECODER_TESTS): Add it.
* tests/trace_xattr.in: New test.
---
NEWS | 2 ++
linux/32/syscallent.h | 24 ++++++++++++------------
linux/64/syscallent.h | 24 ++++++++++++------------
linux/alpha/syscallent.h | 24 ++++++++++++------------
linux/arm/syscallent.h | 24 ++++++++++++------------
linux/avr32/syscallent.h | 24 ++++++++++++------------
linux/bfin/syscallent.h | 24 ++++++++++++------------
linux/hppa/syscallent.h | 24 ++++++++++++------------
linux/i386/syscallent.h | 24 ++++++++++++------------
linux/ia64/syscallent.h | 24 ++++++++++++------------
linux/m68k/syscallent.h | 24 ++++++++++++------------
linux/microblaze/syscallent.h | 24 ++++++++++++------------
linux/mips/syscallent-n32.h | 24 ++++++++++++------------
linux/mips/syscallent-n64.h | 24 ++++++++++++------------
linux/mips/syscallent-o32.h | 24 ++++++++++++------------
linux/powerpc/syscallent.h | 24 ++++++++++++------------
linux/powerpc64/syscallent.h | 24 ++++++++++++------------
linux/s390/syscallent.h | 24 ++++++++++++------------
linux/s390x/syscallent.h | 24 ++++++++++++------------
linux/sh/syscallent.h | 24 ++++++++++++------------
linux/sh64/syscallent.h | 24 ++++++++++++------------
linux/sparc/syscallent.h | 24 ++++++++++++------------
linux/sparc64/syscallent.h | 24 ++++++++++++------------
linux/x32/syscallent.h | 24 ++++++++++++------------
linux/x86_64/syscallent.h | 24 ++++++++++++------------
linux/xtensa/syscallent.h | 24 ++++++++++++------------
strace.1.in | 3 +++
sysent.h | 1 +
sysent_shorthand_defs.h | 2 ++
tests/Makefile.am | 1 +
tests/trace_xattr.in | 12 ++++++++++++
31 files changed, 321 insertions(+), 300 deletions(-)
create mode 100644 tests/trace_xattr.in
diff --git a/NEWS b/NEWS
index 0e74e044..2b82d534 100644
--- a/NEWS
+++ b/NEWS
@@ -217,6 +217,8 @@ Noteworthy changes in release 4.17 (2017-05-24)
syscalls.
* Added -e trace=%%statfs option for tracing syscalls used for querying file
system statistics information (statfs-like, fstatfs-like and ustat).
+ * Added -e trace=%xattr option for tracing syscalls used for modifying file
+ attributes (xattr-like).
* Added -e trace=/regex option for filtering syscalls using regular
expressions.
* Added support for prepending of question mark before syscall qualification
diff --git a/linux/32/syscallent.h b/linux/32/syscallent.h
index b53bf88f..44167c08 100644
--- a/linux/32/syscallent.h
+++ b/linux/32/syscallent.h
@@ -6,18 +6,18 @@
[ 2] = { 3, 0, SEN(io_submit), "io_submit" },
[ 3] = { 3, 0, SEN(io_cancel), "io_cancel" },
[ 4] = { 5, 0, SEN(io_getevents), "io_getevents" },
-[ 5] = { 5, TF, SEN(setxattr), "setxattr" },
-[ 6] = { 5, TF, SEN(setxattr), "lsetxattr" },
-[ 7] = { 5, TD, SEN(fsetxattr), "fsetxattr" },
-[ 8] = { 4, TF, SEN(getxattr), "getxattr" },
-[ 9] = { 4, TF, SEN(getxattr), "lgetxattr" },
-[ 10] = { 4, TD, SEN(fgetxattr), "fgetxattr" },
-[ 11] = { 3, TF, SEN(listxattr), "listxattr" },
-[ 12] = { 3, TF, SEN(listxattr), "llistxattr" },
-[ 13] = { 3, TD, SEN(flistxattr), "flistxattr" },
-[ 14] = { 2, TF, SEN(removexattr), "removexattr" },
-[ 15] = { 2, TF, SEN(removexattr), "lremovexattr" },
-[ 16] = { 2, TD, SEN(fremovexattr), "fremovexattr" },
+[ 5] = { 5, TF|TFX, SEN(setxattr), "setxattr" },
+[ 6] = { 5, TF|TFX, SEN(setxattr), "lsetxattr" },
+[ 7] = { 5, TD|TFX, SEN(fsetxattr), "fsetxattr" },
+[ 8] = { 4, TF|TFX, SEN(getxattr), "getxattr" },
+[ 9] = { 4, TF|TFX, SEN(getxattr), "lgetxattr" },
+[ 10] = { 4, TD|TFX, SEN(fgetxattr), "fgetxattr" },
+[ 11] = { 3, TF|TFX, SEN(listxattr), "listxattr" },
+[ 12] = { 3, TF|TFX, SEN(listxattr), "llistxattr" },
+[ 13] = { 3, TD|TFX, SEN(flistxattr), "flistxattr" },
+[ 14] = { 2, TF|TFX, SEN(removexattr), "removexattr" },
+[ 15] = { 2, TF|TFX, SEN(removexattr), "lremovexattr" },
+[ 16] = { 2, TD|TFX, SEN(fremovexattr), "fremovexattr" },
[ 17] = { 2, TF, SEN(getcwd), "getcwd" },
[ 18] = { 4, 0, SEN(lookup_dcookie), "lookup_dcookie" },
[ 19] = { 2, TD, SEN(eventfd2), "eventfd2" },
diff --git a/linux/64/syscallent.h b/linux/64/syscallent.h
index 241d9442..4f41911c 100644
--- a/linux/64/syscallent.h
+++ b/linux/64/syscallent.h
@@ -3,18 +3,18 @@
[ 2] = { 3, 0, SEN(io_submit), "io_submit" },
[ 3] = { 3, 0, SEN(io_cancel), "io_cancel" },
[ 4] = { 5, 0, SEN(io_getevents), "io_getevents" },
-[ 5] = { 5, TF, SEN(setxattr), "setxattr" },
-[ 6] = { 5, TF, SEN(setxattr), "lsetxattr" },
-[ 7] = { 5, TD, SEN(fsetxattr), "fsetxattr" },
-[ 8] = { 4, TF, SEN(getxattr), "getxattr" },
-[ 9] = { 4, TF, SEN(getxattr), "lgetxattr" },
-[ 10] = { 4, TD, SEN(fgetxattr), "fgetxattr" },
-[ 11] = { 3, TF, SEN(listxattr), "listxattr" },
-[ 12] = { 3, TF, SEN(listxattr), "llistxattr" },
-[ 13] = { 3, TD, SEN(flistxattr), "flistxattr" },
-[ 14] = { 2, TF, SEN(removexattr), "removexattr" },
-[ 15] = { 2, TF, SEN(removexattr), "lremovexattr" },
-[ 16] = { 2, TD, SEN(fremovexattr), "fremovexattr" },
+[ 5] = { 5, TF|TFX, SEN(setxattr), "setxattr" },
+[ 6] = { 5, TF|TFX, SEN(setxattr), "lsetxattr" },
+[ 7] = { 5, TD|TFX, SEN(fsetxattr), "fsetxattr" },
+[ 8] = { 4, TF|TFX, SEN(getxattr), "getxattr" },
+[ 9] = { 4, TF|TFX, SEN(getxattr), "lgetxattr" },
+[ 10] = { 4, TD|TFX, SEN(fgetxattr), "fgetxattr" },
+[ 11] = { 3, TF|TFX, SEN(listxattr), "listxattr" },
+[ 12] = { 3, TF|TFX, SEN(listxattr), "llistxattr" },
+[ 13] = { 3, TD|TFX, SEN(flistxattr), "flistxattr" },
+[ 14] = { 2, TF|TFX, SEN(removexattr), "removexattr" },
+[ 15] = { 2, TF|TFX, SEN(removexattr), "lremovexattr" },
+[ 16] = { 2, TD|TFX, SEN(fremovexattr), "fremovexattr" },
[ 17] = { 2, TF, SEN(getcwd), "getcwd" },
[ 18] = { 3, 0, SEN(lookup_dcookie), "lookup_dcookie" },
[ 19] = { 2, TD, SEN(eventfd2), "eventfd2" },
diff --git a/linux/alpha/syscallent.h b/linux/alpha/syscallent.h
index 700ae299..fcd36c7c 100644
--- a/linux/alpha/syscallent.h
+++ b/linux/alpha/syscallent.h
@@ -346,18 +346,18 @@
[379] = { 3, TD, SEN(readahead), "readahead" },
[380] = { },
[381] = { 2, TS, SEN(kill), "tkill" },
-[382] = { 5, TF, SEN(setxattr), "setxattr" },
-[383] = { 5, TF, SEN(setxattr), "lsetxattr" },
-[384] = { 5, TD, SEN(fsetxattr), "fsetxattr" },
-[385] = { 4, TF, SEN(getxattr), "getxattr" },
-[386] = { 4, TF, SEN(getxattr), "lgetxattr" },
-[387] = { 4, TD, SEN(fgetxattr), "fgetxattr" },
-[388] = { 3, TF, SEN(listxattr), "listxattr" },
-[389] = { 3, TF, SEN(listxattr), "llistxattr" },
-[390] = { 3, TD, SEN(flistxattr), "flistxattr" },
-[391] = { 2, TF, SEN(removexattr), "removexattr" },
-[392] = { 2, TF, SEN(removexattr), "lremovexattr" },
-[393] = { 2, TD, SEN(fremovexattr), "fremovexattr" },
+[382] = { 5, TF|TFX, SEN(setxattr), "setxattr" },
+[383] = { 5, TF|TFX, SEN(setxattr), "lsetxattr" },
+[384] = { 5, TD|TFX, SEN(fsetxattr), "fsetxattr" },
+[385] = { 4, TF|TFX, SEN(getxattr), "getxattr" },
+[386] = { 4, TF|TFX, SEN(getxattr), "lgetxattr" },
+[387] = { 4, TD|TFX, SEN(fgetxattr), "fgetxattr" },
+[388] = { 3, TF|TFX, SEN(listxattr), "listxattr" },
+[389] = { 3, TF|TFX, SEN(listxattr), "llistxattr" },
+[390] = { 3, TD|TFX, SEN(flistxattr), "flistxattr" },
+[391] = { 2, TF|TFX, SEN(removexattr), "removexattr" },
+[392] = { 2, TF|TFX, SEN(removexattr), "lremovexattr" },
+[393] = { 2, TD|TFX, SEN(fremovexattr), "fremovexattr" },
[394] = { 6, 0, SEN(futex), "futex" },
[395] = { 3, 0, SEN(sched_setaffinity), "sched_setaffinity" },
[396] = { 3, 0, SEN(sched_getaffinity), "sched_getaffinity" },
diff --git a/linux/arm/syscallent.h b/linux/arm/syscallent.h
index 76edf99b..aa4d8564 100644
--- a/linux/arm/syscallent.h
+++ b/linux/arm/syscallent.h
@@ -252,18 +252,18 @@
[222 ... 223] = { },
[224] = { 0, PU|NF, SEN(gettid), "gettid" },
[225] = { 5, TD, SEN(readahead), "readahead" },
-[226] = { 5, TF, SEN(setxattr), "setxattr" },
-[227] = { 5, TF, SEN(setxattr), "lsetxattr" },
-[228] = { 5, TD, SEN(fsetxattr), "fsetxattr" },
-[229] = { 4, TF, SEN(getxattr), "getxattr" },
-[230] = { 4, TF, SEN(getxattr), "lgetxattr" },
-[231] = { 4, TD, SEN(fgetxattr), "fgetxattr" },
-[232] = { 3, TF, SEN(listxattr), "listxattr" },
-[233] = { 3, TF, SEN(listxattr), "llistxattr" },
-[234] = { 3, TD, SEN(flistxattr), "flistxattr" },
-[235] = { 2, TF, SEN(removexattr), "removexattr" },
-[236] = { 2, TF, SEN(removexattr), "lremovexattr" },
-[237] = { 2, TD, SEN(fremovexattr), "fremovexattr" },
+[226] = { 5, TF|TFX, SEN(setxattr), "setxattr" },
+[227] = { 5, TF|TFX, SEN(setxattr), "lsetxattr" },
+[228] = { 5, TD|TFX, SEN(fsetxattr), "fsetxattr" },
+[229] = { 4, TF|TFX, SEN(getxattr), "getxattr" },
+[230] = { 4, TF|TFX, SEN(getxattr), "lgetxattr" },
+[231] = { 4, TD|TFX, SEN(fgetxattr), "fgetxattr" },
+[232] = { 3, TF|TFX, SEN(listxattr), "listxattr" },
+[233] = { 3, TF|TFX, SEN(listxattr), "llistxattr" },
+[234] = { 3, TD|TFX, SEN(flistxattr), "flistxattr" },
+[235] = { 2, TF|TFX, SEN(removexattr), "removexattr" },
+[236] = { 2, TF|TFX, SEN(removexattr), "lremovexattr" },
+[237] = { 2, TD|TFX, SEN(fremovexattr), "fremovexattr" },
[238] = { 2, TS, SEN(kill), "tkill" },
[239] = { 4, TD|TN, SEN(sendfile64), "sendfile64" },
[240] = { 6, 0, SEN(futex), "futex" },
diff --git a/linux/avr32/syscallent.h b/linux/avr32/syscallent.h
index c9dc52c5..ce76e067 100644
--- a/linux/avr32/syscallent.h
+++ b/linux/avr32/syscallent.h
@@ -204,18 +204,18 @@
[175] = { 3, TD, SEN(fcntl64), "fcntl64" },
[176] = { 0, PU|NF, SEN(gettid), "gettid" },
[177] = { 4, TD, SEN(readahead), "readahead" },
-[178] = { 5, TF, SEN(setxattr), "setxattr" },
-[179] = { 5, TF, SEN(setxattr), "lsetxattr" },
-[180] = { 5, TD, SEN(fsetxattr), "fsetxattr" },
-[181] = { 4, TF, SEN(getxattr), "getxattr" },
-[182] = { 4, TF, SEN(getxattr), "lgetxattr" },
-[183] = { 4, TD, SEN(fgetxattr), "fgetxattr" },
-[184] = { 3, TF, SEN(listxattr), "listxattr" },
-[185] = { 3, TF, SEN(listxattr), "llistxattr" },
-[186] = { 3, TD, SEN(flistxattr), "flistxattr" },
-[187] = { 2, TF, SEN(removexattr), "removexattr" },
-[188] = { 2, TF, SEN(removexattr), "lremovexattr" },
-[189] = { 2, TD, SEN(fremovexattr), "fremovexattr" },
+[178] = { 5, TF|TFX, SEN(setxattr), "setxattr" },
+[179] = { 5, TF|TFX, SEN(setxattr), "lsetxattr" },
+[180] = { 5, TD|TFX, SEN(fsetxattr), "fsetxattr" },
+[181] = { 4, TF|TFX, SEN(getxattr), "getxattr" },
+[182] = { 4, TF|TFX, SEN(getxattr), "lgetxattr" },
+[183] = { 4, TD|TFX, SEN(fgetxattr), "fgetxattr" },
+[184] = { 3, TF|TFX, SEN(listxattr), "listxattr" },
+[185] = { 3, TF|TFX, SEN(listxattr), "llistxattr" },
+[186] = { 3, TD|TFX, SEN(flistxattr), "flistxattr" },
+[187] = { 2, TF|TFX, SEN(removexattr), "removexattr" },
+[188] = { 2, TF|TFX, SEN(removexattr), "lremovexattr" },
+[189] = { 2, TD|TFX, SEN(fremovexattr), "fremovexattr" },
[190] = { 2, TS, SEN(kill), "tkill" },
[191] = { 4, TD|TN, SEN(sendfile64), "sendfile64" },
[192] = { 6, 0, SEN(futex), "futex" },
diff --git a/linux/bfin/syscallent.h b/linux/bfin/syscallent.h
index 1ce2ff30..b355f398 100644
--- a/linux/bfin/syscallent.h
+++ b/linux/bfin/syscallent.h
@@ -252,18 +252,18 @@
[222 ... 223] = { },
[224] = { 0, PU|NF, SEN(gettid), "gettid" },
[225] = { 4, TD, SEN(readahead), "readahead" },
-[226] = { 5, TF, SEN(setxattr), "setxattr" },
-[227] = { 5, TF, SEN(setxattr), "lsetxattr" },
-[228] = { 5, TD, SEN(fsetxattr), "fsetxattr" },
-[229] = { 4, TF, SEN(getxattr), "getxattr" },
-[230] = { 4, TF, SEN(getxattr), "lgetxattr" },
-[231] = { 4, TD, SEN(fgetxattr), "fgetxattr" },
-[232] = { 3, TF, SEN(listxattr), "listxattr" },
-[233] = { 3, TF, SEN(listxattr), "llistxattr" },
-[234] = { 3, TD, SEN(flistxattr), "flistxattr" },
-[235] = { 2, TF, SEN(removexattr), "removexattr" },
-[236] = { 2, TF, SEN(removexattr), "lremovexattr" },
-[237] = { 2, TD, SEN(fremovexattr), "fremovexattr" },
+[226] = { 5, TF|TFX, SEN(setxattr), "setxattr" },
+[227] = { 5, TF|TFX, SEN(setxattr), "lsetxattr" },
+[228] = { 5, TD|TFX, SEN(fsetxattr), "fsetxattr" },
+[229] = { 4, TF|TFX, SEN(getxattr), "getxattr" },
+[230] = { 4, TF|TFX, SEN(getxattr), "lgetxattr" },
+[231] = { 4, TD|TFX, SEN(fgetxattr), "fgetxattr" },
+[232] = { 3, TF|TFX, SEN(listxattr), "listxattr" },
+[233] = { 3, TF|TFX, SEN(listxattr), "llistxattr" },
+[234] = { 3, TD|TFX, SEN(flistxattr), "flistxattr" },
+[235] = { 2, TF|TFX, SEN(removexattr), "removexattr" },
+[236] = { 2, TF|TFX, SEN(removexattr), "lremovexattr" },
+[237] = { 2, TD|TFX, SEN(fremovexattr), "fremovexattr" },
[238] = { 2, TS, SEN(kill), "tkill" },
[239] = { 4, TD|TN, SEN(sendfile64), "sendfile64" },
[240] = { 6, 0, SEN(futex), "futex" },
diff --git a/linux/hppa/syscallent.h b/linux/hppa/syscallent.h
index 70fe6906..b6b6ca33 100644
--- a/linux/hppa/syscallent.h
+++ b/linux/hppa/syscallent.h
@@ -241,18 +241,18 @@
[235] = { 5, TP, SEN(waitid), "waitid" },
[236] = { 6, TD, SEN(fadvise64_64), "fadvise64_64" },
[237] = { 1, 0, SEN(set_tid_address), "set_tid_address" },
-[238] = { 5, TF, SEN(setxattr), "setxattr" },
-[239] = { 5, TF, SEN(setxattr), "lsetxattr" },
-[240] = { 5, TD, SEN(fsetxattr), "fsetxattr" },
-[241] = { 4, TF, SEN(getxattr), "getxattr" },
-[242] = { 4, TF, SEN(getxattr), "lgetxattr" },
-[243] = { 4, TD, SEN(fgetxattr), "fgetxattr" },
-[244] = { 3, TF, SEN(listxattr), "listxattr" },
-[245] = { 3, TF, SEN(listxattr), "llistxattr" },
-[246] = { 3, TD, SEN(flistxattr), "flistxattr" },
-[247] = { 2, TF, SEN(removexattr), "removexattr" },
-[248] = { 2, TF, SEN(removexattr), "lremovexattr" },
-[249] = { 2, TD, SEN(fremovexattr), "fremovexattr" },
+[238] = { 5, TF|TFX, SEN(setxattr), "setxattr" },
+[239] = { 5, TF|TFX, SEN(setxattr), "lsetxattr" },
+[240] = { 5, TD|TFX, SEN(fsetxattr), "fsetxattr" },
+[241] = { 4, TF|TFX, SEN(getxattr), "getxattr" },
+[242] = { 4, TF|TFX, SEN(getxattr), "lgetxattr" },
+[243] = { 4, TD|TFX, SEN(fgetxattr), "fgetxattr" },
+[244] = { 3, TF|TFX, SEN(listxattr), "listxattr" },
+[245] = { 3, TF|TFX, SEN(listxattr), "llistxattr" },
+[246] = { 3, TD|TFX, SEN(flistxattr), "flistxattr" },
+[247] = { 2, TF|TFX, SEN(removexattr), "removexattr" },
+[248] = { 2, TF|TFX, SEN(removexattr), "lremovexattr" },
+[249] = { 2, TD|TFX, SEN(fremovexattr), "fremovexattr" },
[250] = { 3, 0, SEN(timer_create), "timer_create" },
[251] = { 4, 0, SEN(timer_settime), "timer_settime" },
[252] = { 2, 0, SEN(timer_gettime), "timer_gettime" },
diff --git a/linux/i386/syscallent.h b/linux/i386/syscallent.h
index b00e1d87..5425c429 100644
--- a/linux/i386/syscallent.h
+++ b/linux/i386/syscallent.h
@@ -252,18 +252,18 @@
[222 ... 223] = { },
[224] = { 0, PU|NF, SEN(gettid), "gettid" },
[225] = { 4, TD, SEN(readahead), "readahead" },
-[226] = { 5, TF, SEN(setxattr), "setxattr" },
-[227] = { 5, TF, SEN(setxattr), "lsetxattr" },
-[228] = { 5, TD, SEN(fsetxattr), "fsetxattr" },
-[229] = { 4, TF, SEN(getxattr), "getxattr" },
-[230] = { 4, TF, SEN(getxattr), "lgetxattr" },
-[231] = { 4, TD, SEN(fgetxattr), "fgetxattr" },
-[232] = { 3, TF, SEN(listxattr), "listxattr" },
-[233] = { 3, TF, SEN(listxattr), "llistxattr" },
-[234] = { 3, TD, SEN(flistxattr), "flistxattr" },
-[235] = { 2, TF, SEN(removexattr), "removexattr" },
-[236] = { 2, TF, SEN(removexattr), "lremovexattr" },
-[237] = { 2, TD, SEN(fremovexattr), "fremovexattr" },
+[226] = { 5, TF|TFX, SEN(setxattr), "setxattr" },
+[227] = { 5, TF|TFX, SEN(setxattr), "lsetxattr" },
+[228] = { 5, TD|TFX, SEN(fsetxattr), "fsetxattr" },
+[229] = { 4, TF|TFX, SEN(getxattr), "getxattr" },
+[230] = { 4, TF|TFX, SEN(getxattr), "lgetxattr" },
+[231] = { 4, TD|TFX, SEN(fgetxattr), "fgetxattr" },
+[232] = { 3, TF|TFX, SEN(listxattr), "listxattr" },
+[233] = { 3, TF|TFX, SEN(listxattr), "llistxattr" },
+[234] = { 3, TD|TFX, SEN(flistxattr), "flistxattr" },
+[235] = { 2, TF|TFX, SEN(removexattr), "removexattr" },
+[236] = { 2, TF|TFX, SEN(removexattr), "lremovexattr" },
+[237] = { 2, TD|TFX, SEN(fremovexattr), "fremovexattr" },
[238] = { 2, TS, SEN(kill), "tkill" },
[239] = { 4, TD|TN, SEN(sendfile64), "sendfile64" },
[240] = { 6, 0, SEN(futex), "futex" },
diff --git a/linux/ia64/syscallent.h b/linux/ia64/syscallent.h
index 33b3e8da..8bf6da73 100644
--- a/linux/ia64/syscallent.h
+++ b/linux/ia64/syscallent.h
@@ -235,18 +235,18 @@
[1214] = { 3, TD, SEN(getdents64), "getdents64" },
[1215] = { 2, 0, SEN(printargs), "getunwind" },
[1216] = { 3, TD, SEN(readahead), "readahead" },
-[1217] = { 5, TF, SEN(setxattr), "setxattr" },
-[1218] = { 5, TF, SEN(setxattr), "lsetxattr" },
-[1219] = { 5, TD, SEN(fsetxattr), "fsetxattr" },
-[1220] = { 4, TF, SEN(getxattr), "getxattr" },
-[1221] = { 4, TF, SEN(getxattr), "lgetxattr" },
-[1222] = { 4, TD, SEN(fgetxattr), "fgetxattr" },
-[1223] = { 3, TF, SEN(listxattr), "listxattr" },
-[1224] = { 3, TF, SEN(listxattr), "llistxattr" },
-[1225] = { 3, TD, SEN(flistxattr), "flistxattr" },
-[1226] = { 2, TF, SEN(removexattr), "removexattr" },
-[1227] = { 2, TF, SEN(removexattr), "lremovexattr" },
-[1228] = { 2, TD, SEN(fremovexattr), "fremovexattr" },
+[1217] = { 5, TF|TFX, SEN(setxattr), "setxattr" },
+[1218] = { 5, TF|TFX, SEN(setxattr), "lsetxattr" },
+[1219] = { 5, TD|TFX, SEN(fsetxattr), "fsetxattr" },
+[1220] = { 4, TF|TFX, SEN(getxattr), "getxattr" },
+[1221] = { 4, TF|TFX, SEN(getxattr), "lgetxattr" },
+[1222] = { 4, TD|TFX, SEN(fgetxattr), "fgetxattr" },
+[1223] = { 3, TF|TFX, SEN(listxattr), "listxattr" },
+[1224] = { 3, TF|TFX, SEN(listxattr), "llistxattr" },
+[1225] = { 3, TD|TFX, SEN(flistxattr), "flistxattr" },
+[1226] = { 2, TF|TFX, SEN(removexattr), "removexattr" },
+[1227] = { 2, TF|TFX, SEN(removexattr), "lremovexattr" },
+[1228] = { 2, TD|TFX, SEN(fremovexattr), "fremovexattr" },
[1229] = { 2, TS, SEN(kill), "tkill" },
[1230] = { 6, 0, SEN(futex), "futex" },
[1231] = { 3, 0, SEN(sched_setaffinity), "sched_setaffinity" },
diff --git a/linux/m68k/syscallent.h b/linux/m68k/syscallent.h
index b8bad1b1..1a1dad0c 100644
--- a/linux/m68k/syscallent.h
+++ b/linux/m68k/syscallent.h
@@ -249,18 +249,18 @@
[220] = { 3, TD, SEN(getdents64), "getdents64" },
[221] = { 0, PU|NF, SEN(gettid), "gettid" },
[222] = { 2, TS, SEN(kill), "tkill" },
-[223] = { 5, TF, SEN(setxattr), "setxattr" },
-[224] = { 5, TF, SEN(setxattr), "lsetxattr" },
-[225] = { 5, TD, SEN(fsetxattr), "fsetxattr" },
-[226] = { 4, TF, SEN(getxattr), "getxattr" },
-[227] = { 4, TF, SEN(getxattr), "lgetxattr" },
-[228] = { 4, TD, SEN(fgetxattr), "fgetxattr" },
-[229] = { 3, TF, SEN(listxattr), "listxattr" },
-[230] = { 3, TF, SEN(listxattr), "llistxattr" },
-[231] = { 3, TD, SEN(flistxattr), "flistxattr" },
-[232] = { 2, TF, SEN(removexattr), "removexattr" },
-[233] = { 2, TF, SEN(removexattr), "lremovexattr" },
-[234] = { 2, TD, SEN(fremovexattr), "fremovexattr" },
+[223] = { 5, TF|TFX, SEN(setxattr), "setxattr" },
+[224] = { 5, TF|TFX, SEN(setxattr), "lsetxattr" },
+[225] = { 5, TD|TFX, SEN(fsetxattr), "fsetxattr" },
+[226] = { 4, TF|TFX, SEN(getxattr), "getxattr" },
+[227] = { 4, TF|TFX, SEN(getxattr), "lgetxattr" },
+[228] = { 4, TD|TFX, SEN(fgetxattr), "fgetxattr" },
+[229] = { 3, TF|TFX, SEN(listxattr), "listxattr" },
+[230] = { 3, TF|TFX, SEN(listxattr), "llistxattr" },
+[231] = { 3, TD|TFX, SEN(flistxattr), "flistxattr" },
+[232] = { 2, TF|TFX, SEN(removexattr), "removexattr" },
+[233] = { 2, TF|TFX, SEN(removexattr), "lremovexattr" },
+[234] = { 2, TD|TFX, SEN(fremovexattr), "fremovexattr" },
[235] = { 6, 0, SEN(futex), "futex" },
[236] = { 4, TD|TN, SEN(sendfile64), "sendfile64" },
[237] = { 3, TM, SEN(mincore), "mincore" },
diff --git a/linux/microblaze/syscallent.h b/linux/microblaze/syscallent.h
index 4c645f46..91787663 100644
--- a/linux/microblaze/syscallent.h
+++ b/linux/microblaze/syscallent.h
@@ -252,18 +252,18 @@
[222 ... 223] = { },
[224] = { 0, PU|NF, SEN(gettid), "gettid" },
[225] = { 4, TD, SEN(readahead), "readahead" },
-[226] = { 5, TF, SEN(setxattr), "setxattr" },
-[227] = { 5, TF, SEN(setxattr), "lsetxattr" },
-[228] = { 5, TD, SEN(fsetxattr), "fsetxattr" },
-[229] = { 4, TF, SEN(getxattr), "getxattr" },
-[230] = { 4, TF, SEN(getxattr), "lgetxattr" },
-[231] = { 4, TD, SEN(fgetxattr), "fgetxattr" },
-[232] = { 3, TF, SEN(listxattr), "listxattr" },
-[233] = { 3, TF, SEN(listxattr), "llistxattr" },
-[234] = { 3, TD, SEN(flistxattr), "flistxattr" },
-[235] = { 2, TF, SEN(removexattr), "removexattr" },
-[236] = { 2, TF, SEN(removexattr), "lremovexattr" },
-[237] = { 2, TD, SEN(fremovexattr), "fremovexattr" },
+[226] = { 5, TF|TFX, SEN(setxattr), "setxattr" },
+[227] = { 5, TF|TFX, SEN(setxattr), "lsetxattr" },
+[228] = { 5, TD|TFX, SEN(fsetxattr), "fsetxattr" },
+[229] = { 4, TF|TFX, SEN(getxattr), "getxattr" },
+[230] = { 4, TF|TFX, SEN(getxattr), "lgetxattr" },
+[231] = { 4, TD|TFX, SEN(fgetxattr), "fgetxattr" },
+[232] = { 3, TF|TFX, SEN(listxattr), "listxattr" },
+[233] = { 3, TF|TFX, SEN(listxattr), "llistxattr" },
+[234] = { 3, TD|TFX, SEN(flistxattr), "flistxattr" },
+[235] = { 2, TF|TFX, SEN(removexattr), "removexattr" },
+[236] = { 2, TF|TFX, SEN(removexattr), "lremovexattr" },
+[237] = { 2, TD|TFX, SEN(fremovexattr), "fremovexattr" },
[238] = { 2, TS, SEN(kill), "tkill" },
[239] = { 4, TD|TN, SEN(sendfile64), "sendfile64" },
[240] = { 6, 0, SEN(futex), "futex" },
diff --git a/linux/mips/syscallent-n32.h b/linux/mips/syscallent-n32.h
index c7d35adf..2906bbc5 100644
--- a/linux/mips/syscallent-n32.h
+++ b/linux/mips/syscallent-n32.h
@@ -180,18 +180,18 @@
[6177] = { 0, 0, SEN(printargs), "reserved177" },
[6178] = { 0, NF, SEN(gettid), "gettid" },
[6179] = { 3, TD, SEN(readahead), "readahead" },
-[6180] = { 5, TF, SEN(setxattr), "setxattr" },
-[6181] = { 5, TF, SEN(setxattr), "lsetxattr" },
-[6182] = { 5, TD, SEN(fsetxattr), "fsetxattr" },
-[6183] = { 4, TF, SEN(getxattr), "getxattr" },
-[6184] = { 4, TF, SEN(getxattr), "lgetxattr" },
-[6185] = { 4, TD, SEN(fgetxattr), "fgetxattr" },
-[6186] = { 3, TF, SEN(listxattr), "listxattr" },
-[6187] = { 3, TF, SEN(listxattr), "llistxattr" },
-[6188] = { 3, TD, SEN(flistxattr), "flistxattr" },
-[6189] = { 2, TF, SEN(removexattr), "removexattr" },
-[6190] = { 2, TF, SEN(removexattr), "lremovexattr" },
-[6191] = { 2, TD, SEN(fremovexattr), "fremovexattr" },
+[6180] = { 5, TF|TFX, SEN(setxattr), "setxattr" },
+[6181] = { 5, TF|TFX, SEN(setxattr), "lsetxattr" },
+[6182] = { 5, TD|TFX, SEN(fsetxattr), "fsetxattr" },
+[6183] = { 4, TF|TFX, SEN(getxattr), "getxattr" },
+[6184] = { 4, TF|TFX, SEN(getxattr), "lgetxattr" },
+[6185] = { 4, TD|TFX, SEN(fgetxattr), "fgetxattr" },
+[6186] = { 3, TF|TFX, SEN(listxattr), "listxattr" },
+[6187] = { 3, TF|TFX, SEN(listxattr), "llistxattr" },
+[6188] = { 3, TD|TFX, SEN(flistxattr), "flistxattr" },
+[6189] = { 2, TF|TFX, SEN(removexattr), "removexattr" },
+[6190] = { 2, TF|TFX, SEN(removexattr), "lremovexattr" },
+[6191] = { 2, TD|TFX, SEN(fremovexattr), "fremovexattr" },
[6192] = { 2, TS, SEN(kill), "tkill" },
[6193] = { 1, 0, SEN(time), "time" },
[6194] = { 6, 0, SEN(futex), "futex" },
diff --git a/linux/mips/syscallent-n64.h b/linux/mips/syscallent-n64.h
index 3e558489..bfbd26d1 100644
--- a/linux/mips/syscallent-n64.h
+++ b/linux/mips/syscallent-n64.h
@@ -180,18 +180,18 @@
[5177] = { 0, 0, SEN(printargs), "reserved177" },
[5178] = { 0, NF, SEN(gettid), "gettid" },
[5179] = { 3, TD, SEN(readahead), "readahead" },
-[5180] = { 5, TF, SEN(setxattr), "setxattr" },
-[5181] = { 5, TF, SEN(setxattr), "lsetxattr" },
-[5182] = { 5, TD, SEN(fsetxattr), "fsetxattr" },
-[5183] = { 4, TF, SEN(getxattr), "getxattr" },
-[5184] = { 4, TF, SEN(getxattr), "lgetxattr" },
-[5185] = { 4, TD, SEN(fgetxattr), "fgetxattr" },
-[5186] = { 3, TF, SEN(listxattr), "listxattr" },
-[5187] = { 3, TF, SEN(listxattr), "llistxattr" },
-[5188] = { 3, TD, SEN(flistxattr), "flistxattr" },
-[5189] = { 2, TF, SEN(removexattr), "removexattr" },
-[5190] = { 2, TF, SEN(removexattr), "lremovexattr" },
-[5191] = { 2, TD, SEN(fremovexattr), "fremovexattr" },
+[5180] = { 5, TF|TFX, SEN(setxattr), "setxattr" },
+[5181] = { 5, TF|TFX, SEN(setxattr), "lsetxattr" },
+[5182] = { 5, TD|TFX, SEN(fsetxattr), "fsetxattr" },
+[5183] = { 4, TF|TFX, SEN(getxattr), "getxattr" },
+[5184] = { 4, TF|TFX, SEN(getxattr), "lgetxattr" },
+[5185] = { 4, TD|TFX, SEN(fgetxattr), "fgetxattr" },
+[5186] = { 3, TF|TFX, SEN(listxattr), "listxattr" },
+[5187] = { 3, TF|TFX, SEN(listxattr), "llistxattr" },
+[5188] = { 3, TD|TFX, SEN(flistxattr), "flistxattr" },
+[5189] = { 2, TF|TFX, SEN(removexattr), "removexattr" },
+[5190] = { 2, TF|TFX, SEN(removexattr), "lremovexattr" },
+[5191] = { 2, TD|TFX, SEN(fremovexattr), "fremovexattr" },
[5192] = { 2, TS, SEN(kill), "tkill" },
[5193] = { 1, 0, SEN(time), "time" },
[5194] = { 6, 0, SEN(futex), "futex" },
diff --git a/linux/mips/syscallent-o32.h b/linux/mips/syscallent-o32.h
index 40419073..7f634fa6 100644
--- a/linux/mips/syscallent-o32.h
+++ b/linux/mips/syscallent-o32.h
@@ -225,18 +225,18 @@
[4221] = { },
[4222] = { 0, NF, SEN(gettid), "gettid" },
[4223] = { 5, TD, SEN(readahead), "readahead" },
-[4224] = { 5, TF, SEN(setxattr), "setxattr" },
-[4225] = { 5, TF, SEN(setxattr), "lsetxattr" },
-[4226] = { 5, TD, SEN(fsetxattr), "fsetxattr" },
-[4227] = { 4, TF, SEN(getxattr), "getxattr" },
-[4228] = { 4, TF, SEN(getxattr), "lgetxattr" },
-[4229] = { 4, TD, SEN(fgetxattr), "fgetxattr" },
-[4230] = { 3, TF, SEN(listxattr), "listxattr" },
-[4231] = { 3, TF, SEN(listxattr), "llistxattr" },
-[4232] = { 3, TD, SEN(flistxattr), "flistxattr" },
-[4233] = { 2, TF, SEN(removexattr), "removexattr" },
-[4234] = { 2, TF, SEN(removexattr), "lremovexattr" },
-[4235] = { 2, TD, SEN(fremovexattr), "fremovexattr" },
+[4224] = { 5, TF|TFX, SEN(setxattr), "setxattr" },
+[4225] = { 5, TF|TFX, SEN(setxattr), "lsetxattr" },
+[4226] = { 5, TD|TFX, SEN(fsetxattr), "fsetxattr" },
+[4227] = { 4, TF|TFX, SEN(getxattr), "getxattr" },
+[4228] = { 4, TF|TFX, SEN(getxattr), "lgetxattr" },
+[4229] = { 4, TD|TFX, SEN(fgetxattr), "fgetxattr" },
+[4230] = { 3, TF|TFX, SEN(listxattr), "listxattr" },
+[4231] = { 3, TF|TFX, SEN(listxattr), "llistxattr" },
+[4232] = { 3, TD|TFX, SEN(flistxattr), "flistxattr" },
+[4233] = { 2, TF|TFX, SEN(removexattr), "removexattr" },
+[4234] = { 2, TF|TFX, SEN(removexattr), "lremovexattr" },
+[4235] = { 2, TD|TFX, SEN(fremovexattr), "fremovexattr" },
[4236] = { 2, TS, SEN(kill), "tkill" },
[4237] = { 4, TD|TN, SEN(sendfile64), "sendfile64" },
[4238] = { 6, 0, SEN(futex), "futex" },
diff --git a/linux/powerpc/syscallent.h b/linux/powerpc/syscallent.h
index d0bcbba7..9cb686c4 100644
--- a/linux/powerpc/syscallent.h
+++ b/linux/powerpc/syscallent.h
@@ -236,18 +236,18 @@
[206] = { 3, TM, SEN(mincore), "mincore" },
[207] = { 0, PU|NF, SEN(gettid), "gettid" },
[208] = { 2, TS, SEN(kill), "tkill" },
-[209] = { 5, TF, SEN(setxattr), "setxattr" },
-[210] = { 5, TF, SEN(setxattr), "lsetxattr" },
-[211] = { 5, TD, SEN(fsetxattr), "fsetxattr" },
-[212] = { 4, TF, SEN(getxattr), "getxattr" },
-[213] = { 4, TF, SEN(getxattr), "lgetxattr" },
-[214] = { 4, TD, SEN(fgetxattr), "fgetxattr" },
-[215] = { 3, TF, SEN(listxattr), "listxattr" },
-[216] = { 3, TF, SEN(listxattr), "llistxattr" },
-[217] = { 3, TD, SEN(flistxattr), "flistxattr" },
-[218] = { 2, TF, SEN(removexattr), "removexattr" },
-[219] = { 2, TF, SEN(removexattr), "lremovexattr" },
-[220] = { 2, TD, SEN(fremovexattr), "fremovexattr" },
+[209] = { 5, TF|TFX, SEN(setxattr), "setxattr" },
+[210] = { 5, TF|TFX, SEN(setxattr), "lsetxattr" },
+[211] = { 5, TD|TFX, SEN(fsetxattr), "fsetxattr" },
+[212] = { 4, TF|TFX, SEN(getxattr), "getxattr" },
+[213] = { 4, TF|TFX, SEN(getxattr), "lgetxattr" },
+[214] = { 4, TD|TFX, SEN(fgetxattr), "fgetxattr" },
+[215] = { 3, TF|TFX, SEN(listxattr), "listxattr" },
+[216] = { 3, TF|TFX, SEN(listxattr), "llistxattr" },
+[217] = { 3, TD|TFX, SEN(flistxattr), "flistxattr" },
+[218] = { 2, TF|TFX, SEN(removexattr), "removexattr" },
+[219] = { 2, TF|TFX, SEN(removexattr), "lremovexattr" },
+[220] = { 2, TD|TFX, SEN(fremovexattr), "fremovexattr" },
[221] = { 6, 0, SEN(futex), "futex" },
[222] = { 3, 0, SEN(sched_setaffinity), "sched_setaffinity" },
[223] = { 3, 0, SEN(sched_getaffinity), "sched_getaffinity" },
diff --git a/linux/powerpc64/syscallent.h b/linux/powerpc64/syscallent.h
index 74362c6f..69395237 100644
--- a/linux/powerpc64/syscallent.h
+++ b/linux/powerpc64/syscallent.h
@@ -231,18 +231,18 @@
[206] = { 3, TM, SEN(mincore), "mincore" },
[207] = { 0, PU|NF, SEN(gettid), "gettid" },
[208] = { 2, TS, SEN(kill), "tkill" },
-[209] = { 5, TF, SEN(setxattr), "setxattr" },
-[210] = { 5, TF, SEN(setxattr), "lsetxattr" },
-[211] = { 5, TD, SEN(fsetxattr), "fsetxattr" },
-[212] = { 4, TF, SEN(getxattr), "getxattr" },
-[213] = { 4, TF, SEN(getxattr), "lgetxattr" },
-[214] = { 4, TD, SEN(fgetxattr), "fgetxattr" },
-[215] = { 3, TF, SEN(listxattr), "listxattr" },
-[216] = { 3, TF, SEN(listxattr), "llistxattr" },
-[217] = { 3, TD, SEN(flistxattr), "flistxattr" },
-[218] = { 2, TF, SEN(removexattr), "removexattr" },
-[219] = { 2, TF, SEN(removexattr), "lremovexattr" },
-[220] = { 2, TD, SEN(fremovexattr), "fremovexattr" },
+[209] = { 5, TF|TFX, SEN(setxattr), "setxattr" },
+[210] = { 5, TF|TFX, SEN(setxattr), "lsetxattr" },
+[211] = { 5, TD|TFX, SEN(fsetxattr), "fsetxattr" },
+[212] = { 4, TF|TFX, SEN(getxattr), "getxattr" },
+[213] = { 4, TF|TFX, SEN(getxattr), "lgetxattr" },
+[214] = { 4, TD|TFX, SEN(fgetxattr), "fgetxattr" },
+[215] = { 3, TF|TFX, SEN(listxattr), "listxattr" },
+[216] = { 3, TF|TFX, SEN(listxattr), "llistxattr" },
+[217] = { 3, TD|TFX, SEN(flistxattr), "flistxattr" },
+[218] = { 2, TF|TFX, SEN(removexattr), "removexattr" },
+[219] = { 2, TF|TFX, SEN(removexattr), "lremovexattr" },
+[220] = { 2, TD|TFX, SEN(fremovexattr), "fremovexattr" },
[221] = { 6, 0, SEN(futex), "futex" },
[222] = { 3, 0, SEN(sched_setaffinity), "sched_setaffinity" },
[223] = { 3, 0, SEN(sched_getaffinity), "sched_getaffinity" },
diff --git a/linux/s390/syscallent.h b/linux/s390/syscallent.h
index b7e768e0..1b408d31 100644
--- a/linux/s390/syscallent.h
+++ b/linux/s390/syscallent.h
@@ -253,18 +253,18 @@
[221] = { 3, TD, SEN(fcntl64), "fcntl64" },
[222] = { 4, TD, SEN(readahead), "readahead" },
[223] = { 4, TD|TN, SEN(sendfile64), "sendfile64" },
-[224] = { 5, TF, SEN(setxattr), "setxattr" },
-[225] = { 5, TF, SEN(setxattr), "lsetxattr" },
-[226] = { 5, TD, SEN(fsetxattr), "fsetxattr" },
-[227] = { 4, TF, SEN(getxattr), "getxattr" },
-[228] = { 4, TF, SEN(getxattr), "lgetxattr" },
-[229] = { 4, TD, SEN(fgetxattr), "fgetxattr" },
-[230] = { 3, TF, SEN(listxattr), "listxattr" },
-[231] = { 3, TF, SEN(listxattr), "llistxattr" },
-[232] = { 3, TD, SEN(flistxattr), "flistxattr" },
-[233] = { 2, TF, SEN(removexattr), "removexattr" },
-[234] = { 2, TF, SEN(removexattr), "lremovexattr" },
-[235] = { 2, TD, SEN(fremovexattr), "fremovexattr" },
+[224] = { 5, TF|TFX, SEN(setxattr), "setxattr" },
+[225] = { 5, TF|TFX, SEN(setxattr), "lsetxattr" },
+[226] = { 5, TD|TFX, SEN(fsetxattr), "fsetxattr" },
+[227] = { 4, TF|TFX, SEN(getxattr), "getxattr" },
+[228] = { 4, TF|TFX, SEN(getxattr), "lgetxattr" },
+[229] = { 4, TD|TFX, SEN(fgetxattr), "fgetxattr" },
+[230] = { 3, TF|TFX, SEN(listxattr), "listxattr" },
+[231] = { 3, TF|TFX, SEN(listxattr), "llistxattr" },
+[232] = { 3, TD|TFX, SEN(flistxattr), "flistxattr" },
+[233] = { 2, TF|TFX, SEN(removexattr), "removexattr" },
+[234] = { 2, TF|TFX, SEN(removexattr), "lremovexattr" },
+[235] = { 2, TD|TFX, SEN(fremovexattr), "fremovexattr" },
[236] = { 0, PU|NF, SEN(gettid), "gettid" },
[237] = { 2, TS, SEN(kill), "tkill" },
[238] = { 6, 0, SEN(futex), "futex" },
diff --git a/linux/s390x/syscallent.h b/linux/s390x/syscallent.h
index d16ee94f..bc6037b5 100644
--- a/linux/s390x/syscallent.h
+++ b/linux/s390x/syscallent.h
@@ -237,18 +237,18 @@
[221] = { },
[222] = { 3, TD, SEN(readahead), "readahead" },
[223] = { },
-[224] = { 5, TF, SEN(setxattr), "setxattr" },
-[225] = { 5, TF, SEN(setxattr), "lsetxattr" },
-[226] = { 5, TD, SEN(fsetxattr), "fsetxattr" },
-[227] = { 4, TF, SEN(getxattr), "getxattr" },
-[228] = { 4, TF, SEN(getxattr), "lgetxattr" },
-[229] = { 4, TD, SEN(fgetxattr), "fgetxattr" },
-[230] = { 3, TF, SEN(listxattr), "listxattr" },
-[231] = { 3, TF, SEN(listxattr), "llistxattr" },
-[232] = { 3, TD, SEN(flistxattr), "flistxattr" },
-[233] = { 2, TF, SEN(removexattr), "removexattr" },
-[234] = { 2, TF, SEN(removexattr), "lremovexattr" },
-[235] = { 2, TD, SEN(fremovexattr), "fremovexattr" },
+[224] = { 5, TF|TFX, SEN(setxattr), "setxattr" },
+[225] = { 5, TF|TFX, SEN(setxattr), "lsetxattr" },
+[226] = { 5, TD|TFX, SEN(fsetxattr), "fsetxattr" },
+[227] = { 4, TF|TFX, SEN(getxattr), "getxattr" },
+[228] = { 4, TF|TFX, SEN(getxattr), "lgetxattr" },
+[229] = { 4, TD|TFX, SEN(fgetxattr), "fgetxattr" },
+[230] = { 3, TF|TFX, SEN(listxattr), "listxattr" },
+[231] = { 3, TF|TFX, SEN(listxattr), "llistxattr" },
+[232] = { 3, TD|TFX, SEN(flistxattr), "flistxattr" },
+[233] = { 2, TF|TFX, SEN(removexattr), "removexattr" },
+[234] = { 2, TF|TFX, SEN(removexattr), "lremovexattr" },
+[235] = { 2, TD|TFX, SEN(fremovexattr), "fremovexattr" },
[236] = { 0, PU|NF, SEN(gettid), "gettid" },
[237] = { 2, TS, SEN(kill), "tkill" },
[238] = { 6, 0, SEN(futex), "futex" },
diff --git a/linux/sh/syscallent.h b/linux/sh/syscallent.h
index c40b3352..ac69cc58 100644
--- a/linux/sh/syscallent.h
+++ b/linux/sh/syscallent.h
@@ -253,18 +253,18 @@
[222 ... 223] = { },
[224] = { 0, PU|NF, SEN(gettid), "gettid" },
[225] = { 4, TD, SEN(readahead), "readahead" },
-[226] = { 5, TF, SEN(setxattr), "setxattr" },
-[227] = { 5, TF, SEN(setxattr), "lsetxattr" },
-[228] = { 5, TD, SEN(fsetxattr), "fsetxattr" },
-[229] = { 4, TF, SEN(getxattr), "getxattr" },
-[230] = { 4, TF, SEN(getxattr), "lgetxattr" },
-[231] = { 4, TD, SEN(fgetxattr), "fgetxattr" },
-[232] = { 3, TF, SEN(listxattr), "listxattr" },
-[233] = { 3, TF, SEN(listxattr), "llistxattr" },
-[234] = { 3, TD, SEN(flistxattr), "flistxattr" },
-[235] = { 2, TF, SEN(removexattr), "removexattr" },
-[236] = { 2, TF, SEN(removexattr), "lremovexattr" },
-[237] = { 2, TD, SEN(fremovexattr), "fremovexattr" },
+[226] = { 5, TF|TFX, SEN(setxattr), "setxattr" },
+[227] = { 5, TF|TFX, SEN(setxattr), "lsetxattr" },
+[228] = { 5, TD|TFX, SEN(fsetxattr), "fsetxattr" },
+[229] = { 4, TF|TFX, SEN(getxattr), "getxattr" },
+[230] = { 4, TF|TFX, SEN(getxattr), "lgetxattr" },
+[231] = { 4, TD|TFX, SEN(fgetxattr), "fgetxattr" },
+[232] = { 3, TF|TFX, SEN(listxattr), "listxattr" },
+[233] = { 3, TF|TFX, SEN(listxattr), "llistxattr" },
+[234] = { 3, TD|TFX, SEN(flistxattr), "flistxattr" },
+[235] = { 2, TF|TFX, SEN(removexattr), "removexattr" },
+[236] = { 2, TF|TFX, SEN(removexattr), "lremovexattr" },
+[237] = { 2, TD|TFX, SEN(fremovexattr), "fremovexattr" },
[238] = { 2, TS, SEN(kill), "tkill" },
[239] = { 4, TD|TN, SEN(sendfile64), "sendfile64" },
[240] = { 6, 0, SEN(futex), "futex" },
diff --git a/linux/sh64/syscallent.h b/linux/sh64/syscallent.h
index 4905b0f9..eec3daf6 100644
--- a/linux/sh64/syscallent.h
+++ b/linux/sh64/syscallent.h
@@ -279,18 +279,18 @@
[250 ... 251] = { },
[252] = { 0, PU|NF, SEN(gettid), "gettid" },
[253] = { 3, TD, SEN(readahead), "readahead" },
-[254] = { 5, TF, SEN(setxattr), "setxattr" },
-[255] = { 5, TF, SEN(setxattr), "lsetxattr" },
-[256] = { 5, TD, SEN(fsetxattr), "fsetxattr" },
-[257] = { 4, TF, SEN(getxattr), "getxattr" },
-[258] = { 4, TF, SEN(getxattr), "lgetxattr" },
-[259] = { 4, TD, SEN(fgetxattr), "fgetxattr" },
-[260] = { 3, TF, SEN(listxattr), "listxattr" },
-[261] = { 3, TF, SEN(listxattr), "llistxattr" },
-[262] = { 3, TD, SEN(flistxattr), "flistxattr" },
-[263] = { 2, TF, SEN(removexattr), "removexattr" },
-[264] = { 2, TF, SEN(removexattr), "lremovexattr" },
-[265] = { 2, TD, SEN(fremovexattr), "fremovexattr" },
+[254] = { 5, TF|TFX, SEN(setxattr), "setxattr" },
+[255] = { 5, TF|TFX, SEN(setxattr), "lsetxattr" },
+[256] = { 5, TD|TFX, SEN(fsetxattr), "fsetxattr" },
+[257] = { 4, TF|TFX, SEN(getxattr), "getxattr" },
+[258] = { 4, TF|TFX, SEN(getxattr), "lgetxattr" },
+[259] = { 4, TD|TFX, SEN(fgetxattr), "fgetxattr" },
+[260] = { 3, TF|TFX, SEN(listxattr), "listxattr" },
+[261] = { 3, TF|TFX, SEN(listxattr), "llistxattr" },
+[262] = { 3, TD|TFX, SEN(flistxattr), "flistxattr" },
+[263] = { 2, TF|TFX, SEN(removexattr), "removexattr" },
+[264] = { 2, TF|TFX, SEN(removexattr), "lremovexattr" },
+[265] = { 2, TD|TFX, SEN(fremovexattr), "fremovexattr" },
[266] = { 2, TS, SEN(kill), "tkill" },
[267] = { 4, TD|TN, SEN(sendfile64), "sendfile64" },
[268] = { 6, 0, SEN(futex), "futex" },
diff --git a/linux/sparc/syscallent.h b/linux/sparc/syscallent.h
index a1974c2d..0c5cd99f 100644
--- a/linux/sparc/syscallent.h
+++ b/linux/sparc/syscallent.h
@@ -167,24 +167,24 @@
[166] = { 1, 0, SEN(set_tid_address), "set_tid_address" },
[167] = { 5, TF, SEN(mount), "mount" },
[168] = { 2, TSFA, SEN(ustat), "ustat" },
-[169] = { 5, TF, SEN(setxattr), "setxattr" },
-[170] = { 5, TF, SEN(setxattr), "lsetxattr" },
-[171] = { 5, TD, SEN(fsetxattr), "fsetxattr" },
-[172] = { 4, TF, SEN(getxattr), "getxattr" },
-[173] = { 4, TF, SEN(getxattr), "lgetxattr" },
+[169] = { 5, TF|TFX, SEN(setxattr), "setxattr" },
+[170] = { 5, TF|TFX, SEN(setxattr), "lsetxattr" },
+[171] = { 5, TD|TFX, SEN(fsetxattr), "fsetxattr" },
+[172] = { 4, TF|TFX, SEN(getxattr), "getxattr" },
+[173] = { 4, TF|TFX, SEN(getxattr), "lgetxattr" },
[174] = { 3, TD, SEN(getdents), "getdents" },
[175] = { 0, 0, SEN(setsid), "setsid" },
[176] = { 1, TD, SEN(fchdir), "fchdir" },
-[177] = { 4, TD, SEN(fgetxattr), "fgetxattr" },
-[178] = { 3, TF, SEN(listxattr), "listxattr" },
-[179] = { 3, TF, SEN(listxattr), "llistxattr" },
-[180] = { 3, TD, SEN(flistxattr), "flistxattr" },
-[181] = { 2, TF, SEN(removexattr), "removexattr" },
-[182] = { 2, TF, SEN(removexattr), "lremovexattr" },
+[177] = { 4, TD|TFX, SEN(fgetxattr), "fgetxattr" },
+[178] = { 3, TF|TFX, SEN(listxattr), "listxattr" },
+[179] = { 3, TF|TFX, SEN(listxattr), "llistxattr" },
+[180] = { 3, TD|TFX, SEN(flistxattr), "flistxattr" },
+[181] = { 2, TF|TFX, SEN(removexattr), "removexattr" },
+[182] = { 2, TF|TFX, SEN(removexattr), "lremovexattr" },
[183] = { 1, TS, SEN(sigpending), "sigpending" },
[184] = { 5, 0, SEN(query_module), "query_module" },
[185] = { 2, 0, SEN(setpgid), "setpgid" },
-[186] = { 2, TD, SEN(fremovexattr), "fremovexattr" },
+[186] = { 2, TD|TFX, SEN(fremovexattr), "fremovexattr" },
[187] = { 2, TS, SEN(kill), "tkill" },
[188] = { 1, TP|SE, SEN(exit), "exit_group" },
[189] = { 1, 0, SEN(uname), "uname" },
diff --git a/linux/sparc64/syscallent.h b/linux/sparc64/syscallent.h
index 0b3530e3..66ec8e19 100644
--- a/linux/sparc64/syscallent.h
+++ b/linux/sparc64/syscallent.h
@@ -165,24 +165,24 @@
[166] = { 1, 0, SEN(set_tid_address), "set_tid_address" },
[167] = { 5, TF, SEN(mount), "mount" },
[168] = { 2, TSFA, SEN(ustat), "ustat" },
-[169] = { 5, TF, SEN(setxattr), "setxattr" },
-[170] = { 5, TF, SEN(setxattr), "lsetxattr" },
-[171] = { 5, TD, SEN(fsetxattr), "fsetxattr" },
-[172] = { 4, TF, SEN(getxattr), "getxattr" },
-[173] = { 4, TF, SEN(getxattr), "lgetxattr" },
+[169] = { 5, TF|TFX, SEN(setxattr), "setxattr" },
+[170] = { 5, TF|TFX, SEN(setxattr), "lsetxattr" },
+[171] = { 5, TD|TFX, SEN(fsetxattr), "fsetxattr" },
+[172] = { 4, TF|TFX, SEN(getxattr), "getxattr" },
+[173] = { 4, TF|TFX, SEN(getxattr), "lgetxattr" },
[174] = { 3, TD, SEN(getdents), "getdents" },
[175] = { 0, 0, SEN(setsid), "setsid" },
[176] = { 1, TD, SEN(fchdir), "fchdir" },
-[177] = { 4, TD, SEN(fgetxattr), "fgetxattr" },
-[178] = { 3, TF, SEN(listxattr), "listxattr" },
-[179] = { 3, TF, SEN(listxattr), "llistxattr" },
-[180] = { 3, TD, SEN(flistxattr), "flistxattr" },
-[181] = { 2, TF, SEN(removexattr), "removexattr" },
-[182] = { 2, TF, SEN(removexattr), "lremovexattr" },
+[177] = { 4, TD|TFX, SEN(fgetxattr), "fgetxattr" },
+[178] = { 3, TF|TFX, SEN(listxattr), "listxattr" },
+[179] = { 3, TF|TFX, SEN(listxattr), "llistxattr" },
+[180] = { 3, TD|TFX, SEN(flistxattr), "flistxattr" },
+[181] = { 2, TF|TFX, SEN(removexattr), "removexattr" },
+[182] = { 2, TF|TFX, SEN(removexattr), "lremovexattr" },
[183] = { 1, TS, SEN(sigpending), "sigpending" },
[184] = { 5, 0, SEN(query_module), "query_module" },
[185] = { 2, 0, SEN(setpgid), "setpgid" },
-[186] = { 2, TD, SEN(fremovexattr), "fremovexattr" },
+[186] = { 2, TD|TFX, SEN(fremovexattr), "fremovexattr" },
[187] = { 2, TS, SEN(kill), "tkill" },
[188] = { 1, TP|SE, SEN(exit), "exit_group" },
[189] = { 1, 0, SEN(uname), "uname" },
diff --git a/linux/x32/syscallent.h b/linux/x32/syscallent.h
index e448dc5e..be8e64fb 100644
--- a/linux/x32/syscallent.h
+++ b/linux/x32/syscallent.h
@@ -186,18 +186,18 @@
[185] = { 3, 0, SEN(security), "security" },
[186] = { 0, PU|NF, SEN(gettid), "gettid" },
[187] = { 3, TD, SEN(readahead), "readahead" },
-[188] = { 5, TF, SEN(setxattr), "setxattr" },
-[189] = { 5, TF, SEN(setxattr), "lsetxattr" },
-[190] = { 5, TD, SEN(fsetxattr), "fsetxattr" },
-[191] = { 4, TF, SEN(getxattr), "getxattr" },
-[192] = { 4, TF, SEN(getxattr), "lgetxattr" },
-[193] = { 4, TD, SEN(fgetxattr), "fgetxattr" },
-[194] = { 3, TF, SEN(listxattr), "listxattr" },
-[195] = { 3, TF, SEN(listxattr), "llistxattr" },
-[196] = { 3, TD, SEN(flistxattr), "flistxattr" },
-[197] = { 2, TF, SEN(removexattr), "removexattr" },
-[198] = { 2, TF, SEN(removexattr), "lremovexattr" },
-[199] = { 2, TD, SEN(fremovexattr), "fremovexattr" },
+[188] = { 5, TF|TFX, SEN(setxattr), "setxattr" },
+[189] = { 5, TF|TFX, SEN(setxattr), "lsetxattr" },
+[190] = { 5, TD|TFX, SEN(fsetxattr), "fsetxattr" },
+[191] = { 4, TF|TFX, SEN(getxattr), "getxattr" },
+[192] = { 4, TF|TFX, SEN(getxattr), "lgetxattr" },
+[193] = { 4, TD|TFX, SEN(fgetxattr), "fgetxattr" },
+[194] = { 3, TF|TFX, SEN(listxattr), "listxattr" },
+[195] = { 3, TF|TFX, SEN(listxattr), "llistxattr" },
+[196] = { 3, TD|TFX, SEN(flistxattr), "flistxattr" },
+[197] = { 2, TF|TFX, SEN(removexattr), "removexattr" },
+[198] = { 2, TF|TFX, SEN(removexattr), "lremovexattr" },
+[199] = { 2, TD|TFX, SEN(fremovexattr), "fremovexattr" },
[200] = { 2, TS, SEN(kill), "tkill" },
[201] = { 1, 0, SEN(time), "time" },
[202] = { 6, 0, SEN(futex), "futex" },
diff --git a/linux/x86_64/syscallent.h b/linux/x86_64/syscallent.h
index 8d95c1db..d2435fa2 100644
--- a/linux/x86_64/syscallent.h
+++ b/linux/x86_64/syscallent.h
@@ -186,18 +186,18 @@
[185] = { 3, 0, SEN(security), "security" },
[186] = { 0, PU|NF, SEN(gettid), "gettid" },
[187] = { 3, TD, SEN(readahead), "readahead" },
-[188] = { 5, TF, SEN(setxattr), "setxattr" },
-[189] = { 5, TF, SEN(setxattr), "lsetxattr" },
-[190] = { 5, TD, SEN(fsetxattr), "fsetxattr" },
-[191] = { 4, TF, SEN(getxattr), "getxattr" },
-[192] = { 4, TF, SEN(getxattr), "lgetxattr" },
-[193] = { 4, TD, SEN(fgetxattr), "fgetxattr" },
-[194] = { 3, TF, SEN(listxattr), "listxattr" },
-[195] = { 3, TF, SEN(listxattr), "llistxattr" },
-[196] = { 3, TD, SEN(flistxattr), "flistxattr" },
-[197] = { 2, TF, SEN(removexattr), "removexattr" },
-[198] = { 2, TF, SEN(removexattr), "lremovexattr" },
-[199] = { 2, TD, SEN(fremovexattr), "fremovexattr" },
+[188] = { 5, TF|TFX, SEN(setxattr), "setxattr" },
+[189] = { 5, TF|TFX, SEN(setxattr), "lsetxattr" },
+[190] = { 5, TD|TFX, SEN(fsetxattr), "fsetxattr" },
+[191] = { 4, TF|TFX, SEN(getxattr), "getxattr" },
+[192] = { 4, TF|TFX, SEN(getxattr), "lgetxattr" },
+[193] = { 4, TD|TFX, SEN(fgetxattr), "fgetxattr" },
+[194] = { 3, TF|TFX, SEN(listxattr), "listxattr" },
+[195] = { 3, TF|TFX, SEN(listxattr), "llistxattr" },
+[196] = { 3, TD|TFX, SEN(flistxattr), "flistxattr" },
+[197] = { 2, TF|TFX, SEN(removexattr), "removexattr" },
+[198] = { 2, TF|TFX, SEN(removexattr), "lremovexattr" },
+[199] = { 2, TD|TFX, SEN(fremovexattr), "fremovexattr" },
[200] = { 2, TS, SEN(kill), "tkill" },
[201] = { 1, 0, SEN(time), "time" },
[202] = { 6, 0, SEN(futex), "futex" },
diff --git a/linux/xtensa/syscallent.h b/linux/xtensa/syscallent.h
index 4d69d2ee..897e6d22 100644
--- a/linux/xtensa/syscallent.h
+++ b/linux/xtensa/syscallent.h
@@ -61,18 +61,18 @@
[ 65] = { 2, TF, SEN(utimes), "utimes" },
[ 66] = { 3, TD, SEN(ioctl), "ioctl" },
[ 67] = { 3, TD, SEN(fcntl), "fcntl" },
-[ 68] = { 5, TF, SEN(setxattr), "setxattr" },
-[ 69] = { 4, TF, SEN(getxattr), "getxattr" },
-[ 70] = { 3, TF, SEN(listxattr), "listxattr" },
-[ 71] = { 2, TF, SEN(removexattr), "removexattr" },
-[ 72] = { 5, TF, SEN(setxattr), "lsetxattr" },
-[ 73] = { 4, TF, SEN(getxattr), "lgetxattr" },
-[ 74] = { 3, TF, SEN(listxattr), "llistxattr" },
-[ 75] = { 2, TF, SEN(removexattr), "lremovexattr" },
-[ 76] = { 5, TD, SEN(fsetxattr), "fsetxattr" },
-[ 77] = { 4, TD, SEN(fgetxattr), "fgetxattr" },
-[ 78] = { 3, TD, SEN(flistxattr), "flistxattr" },
-[ 79] = { 2, TD, SEN(fremovexattr), "fremovexattr" },
+[ 68] = { 5, TF|TFX, SEN(setxattr), "setxattr" },
+[ 69] = { 4, TF|TFX, SEN(getxattr), "getxattr" },
+[ 70] = { 3, TF|TFX, SEN(listxattr), "listxattr" },
+[ 71] = { 2, TF|TFX, SEN(removexattr), "removexattr" },
+[ 72] = { 5, TF|TFX, SEN(setxattr), "lsetxattr" },
+[ 73] = { 4, TF|TFX, SEN(getxattr), "lgetxattr" },
+[ 74] = { 3, TF|TFX, SEN(listxattr), "llistxattr" },
+[ 75] = { 2, TF|TFX, SEN(removexattr), "lremovexattr" },
+[ 76] = { 5, TD|TFX, SEN(fsetxattr), "fsetxattr" },
+[ 77] = { 4, TD|TFX, SEN(fgetxattr), "fgetxattr" },
+[ 78] = { 3, TD|TFX, SEN(flistxattr), "flistxattr" },
+[ 79] = { 2, TD|TFX, SEN(fremovexattr), "fremovexattr" },
[ 80] = { 6, TD|TM|SI, SEN(mmap_pgoff), "mmap2" },
[ 81] = { 2, TM|SI, SEN(munmap), "munmap" },
[ 82] = { 3, TM|SI, SEN(mprotect), "mprotect" },
diff --git a/strace.1.in b/strace.1.in
index 5d45e616..06351285 100644
--- a/strace.1.in
+++ b/strace.1.in
@@ -509,6 +509,9 @@ and ustat). The same effect can be achieved with
.BR "\-e\ trace" = /statv?fs|fsstat|ustat
regular expression.
.TP
+.BR "\-e\ trace" = %xattr
+Trace syscalls related to modifying file attributes (xattr-like).
+.TP
.BR "\-e\ trace" = %pure
Trace syscalls that always succeed and have no arguments.
Currently, this list includes
diff --git a/sysent.h b/sysent.h
index b01eb5f3..0a7a2a16 100644
--- a/sysent.h
+++ b/sysent.h
@@ -29,5 +29,6 @@ typedef struct sysent {
#define TRACE_FSTAT 00400000 /* Trace *fstat{,at}{,64} syscalls. */
#define TRACE_STAT_LIKE 01000000 /* Trace *{,l,f}stat{,x,at}{,64} syscalls. */
#define TRACE_PURE 02000000 /* Trace getter syscalls with no arguments. */
+#define TRACE_XATTR 04000000 /* Trace *xattr syscalls. */
#endif /* !STRACE_SYSENT_H */
diff --git a/sysent_shorthand_defs.h b/sysent_shorthand_defs.h
index ce435504..ca8b614f 100644
--- a/sysent_shorthand_defs.h
+++ b/sysent_shorthand_defs.h
@@ -14,6 +14,7 @@
# define TSF 0
# define TFSF 0
# define TSFA 0
+# define TFX 0
# define PU 0
# define NF 0
# define MA 0
@@ -38,6 +39,7 @@
# define TSF TRACE_STATFS
# define TFSF TRACE_FSTATFS
# define TSFA TRACE_STATFS_LIKE
+# define TFX TRACE_XATTR
# define PU TRACE_PURE
# define NF SYSCALL_NEVER_FAILS
# define MA MAX_ARGS
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 493a7f97..1297a0dd 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -399,6 +399,7 @@ EXTRA_DIST = \
trace_stat_like.in \
trace_statfs.in \
trace_statfs_like.in \
+ trace_xattr.in \
uio.expected \
umode_t.c \
umovestr.expected \
diff --git a/tests/trace_xattr.in b/tests/trace_xattr.in
new file mode 100644
index 00000000..403f305b
--- /dev/null
+++ b/tests/trace_xattr.in
@@ -0,0 +1,12 @@
+setxattr -a17
+lsetxattr -a33
+fsetxattr -a35
+getxattr -a23
+lgetxattr -a41
+fgetxattr -a43
+listxattr -a18
+llistxattr -a37
+flistxattr -a39
+removexattr -a24
+lremovexattr -a45
+fremovexattr -a47
--
2.14.1
------------------------------------------------------------------------------
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