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

Reply via email to