[PATCH v1] Add %open trace class.
glk0
hotkatz32 at gmail.com
Mon Apr 3 03:55:26 UTC 2023
The %open class includes syscalls syscalls used to open files: open,
openat, openat2 and open_by_handle_at.
syscallent headers are updated using the following command:
sed -i -r '
/\((open(at(2)?|_by_handle_at)?|creat)\)/ {
s/(\{[^,]*,\t[^0][^,]*)/\1|TO/
s/(\{[^,]*,\s*)0/\1TO/
}
' linux/*/syscallent*.h
* basic_filters.c (lookup_class): Add "%open" member to syscall_class[].
* sysent.h: Add TRACE_OPEN macro.
* sysent_shorthand_defs.h: Likewise.
* sysent_shorthand_undefs.h: Add undef.
* doc/strace.1.in (.SS Filtering): Add description for `-e trace=%open`.
* strace.c (usage): Add %open group to help message.
* linux/32/syscallent.h: Add TC flag for %open syscalls.
* 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/generic/syscallent-common.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.
* NEWS: mention this change.
---
NEWS | 1 +
doc/strace.1.in | 6 ++++
src/basic_filters.c | 1 +
src/linux/32/syscallent.h | 4 +--
src/linux/64/syscallent.h | 4 +--
src/linux/alpha/syscallent.h | 6 ++--
src/linux/arm/syscallent.h | 8 ++---
src/linux/avr32/syscallent.h | 8 ++---
src/linux/bfin/syscallent.h | 8 ++---
src/linux/generic/syscallent-common.h | 2 +-
src/linux/hppa/syscallent.h | 8 ++---
src/linux/i386/syscallent.h | 8 ++---
src/linux/ia64/syscallent.h | 8 ++---
src/linux/m68k/syscallent.h | 8 ++---
src/linux/microblaze/syscallent.h | 8 ++---
src/linux/mips/syscallent-n32.h | 8 ++---
src/linux/mips/syscallent-n64.h | 8 ++---
src/linux/mips/syscallent-o32.h | 8 ++---
src/linux/powerpc/syscallent.h | 8 ++---
src/linux/powerpc64/syscallent.h | 8 ++---
src/linux/s390/syscallent.h | 8 ++---
src/linux/s390x/syscallent.h | 8 ++---
src/linux/sh/syscallent.h | 8 ++---
src/linux/sh64/syscallent.h | 8 ++---
src/linux/sparc/syscallent.h | 8 ++---
src/linux/sparc64/syscallent.h | 8 ++---
src/linux/x32/syscallent.h | 8 ++---
src/linux/x86_64/syscallent.h | 8 ++---
src/linux/xtensa/syscallent.h | 8 ++---
src/strace.c | 2 +-
src/sysent.h | 49 ++++++++++++++-------------
src/sysent_shorthand_defs.h | 2 ++
src/sysent_shorthand_undefs.h | 1 +
33 files changed, 133 insertions(+), 121 deletions(-)
diff --git a/NEWS b/NEWS
index 5bf6c80cb..5c6f0da9c 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,7 @@ Noteworthy changes in release ?.? (????-??-??)
* Improvements
* Updated lists of ioctl commands from Linux 6.3.
+ * Added -e trace=%open for syscalls used to open files.
Noteworthy changes in release 6.2 (2023-02-26)
==============================================
diff --git a/doc/strace.1.in b/doc/strace.1.in
index 71661bd2e..bd45fbad1 100644
--- a/doc/strace.1.in
+++ b/doc/strace.1.in
@@ -620,6 +620,12 @@ regular expression.
.BR %clock
Trace system calls that read or modify system clocks.
.TP
+.BR %open
+Trace syscalls used to open files.
+Currently, this list includes
+.BR open "(2), " openat "(2), " openat2 "(2), " creat "(2) and"
+.BR open_by_handle_at "(2) syscalls."
+.TP
.BR %pure
Trace syscalls that always succeed and have no arguments.
Currently, this list includes
diff --git a/src/basic_filters.c b/src/basic_filters.c
index 8aa476bf3..3c676c744 100644
--- a/src/basic_filters.c
+++ b/src/basic_filters.c
@@ -129,6 +129,7 @@ qualify_syscall_class(const char *str, unsigned int p, struct number_set *set)
{ TRACE_STATFS_LIKE, "%%statfs" },
{ TRACE_PURE, "%pure" },
{ TRACE_CLOCK, "%clock" },
+ { TRACE_OPEN, "%open" },
/* legacy class names */
{ 0, "all" },
{ TRACE_DESC, "desc" },
diff --git a/src/linux/32/syscallent.h b/src/linux/32/syscallent.h
index 44bb908e1..6b8602517 100644
--- a/src/linux/32/syscallent.h
+++ b/src/linux/32/syscallent.h
@@ -64,7 +64,7 @@
[ 53] = { 3, TD|TF, SEN(fchmodat), "fchmodat" },
[ 54] = { 5, TD|TF, SEN(fchownat), "fchownat" },
[ 55] = { 3, TD, SEN(fchown), "fchown" },
-[ 56] = { 4, TD|TF, SEN(openat), "openat" },
+[ 56] = { 4, TD|TF|TO, SEN(openat), "openat" },
[ 57] = { 1, TD, SEN(close), "close" },
[ 58] = { 0, 0, SEN(vhangup), "vhangup" },
[ 59] = { 2, TD, SEN(pipe2), "pipe2" },
@@ -262,7 +262,7 @@
[262] = { 2, TD, SEN(fanotify_init), "fanotify_init" },
[263] = { 6, TD|TF, SEN(fanotify_mark), "fanotify_mark" },
[264] = { 5, TD|TF, SEN(name_to_handle_at), "name_to_handle_at" },
-[265] = { 3, TD, SEN(open_by_handle_at), "open_by_handle_at" },
+[265] = { 3, TD|TO, SEN(open_by_handle_at), "open_by_handle_at" },
/* [266] clock_adjtime */
[267] = { 1, TD, SEN(syncfs), "syncfs" },
[268] = { 2, TD, SEN(setns), "setns" },
diff --git a/src/linux/64/syscallent.h b/src/linux/64/syscallent.h
index 1463d1974..bbec47c9d 100644
--- a/src/linux/64/syscallent.h
+++ b/src/linux/64/syscallent.h
@@ -61,7 +61,7 @@
[ 53] = { 3, TD|TF, SEN(fchmodat), "fchmodat" },
[ 54] = { 5, TD|TF, SEN(fchownat), "fchownat" },
[ 55] = { 3, TD, SEN(fchown), "fchown" },
-[ 56] = { 4, TD|TF, SEN(openat), "openat" },
+[ 56] = { 4, TD|TF|TO, SEN(openat), "openat" },
[ 57] = { 1, TD, SEN(close), "close" },
[ 58] = { 0, 0, SEN(vhangup), "vhangup" },
[ 59] = { 2, TD, SEN(pipe2), "pipe2" },
@@ -255,7 +255,7 @@
[262] = { 2, TD, SEN(fanotify_init), "fanotify_init" },
[263] = { 5, TD|TF, SEN(fanotify_mark), "fanotify_mark" },
[264] = { 5, TD|TF, SEN(name_to_handle_at), "name_to_handle_at" },
-[265] = { 3, TD, SEN(open_by_handle_at), "open_by_handle_at" },
+[265] = { 3, TD|TO, SEN(open_by_handle_at), "open_by_handle_at" },
[266] = { 2, TCL, SEN(clock_adjtime64), "clock_adjtime" },
[267] = { 1, TD, SEN(syncfs), "syncfs" },
[268] = { 2, TD, SEN(setns), "setns" },
diff --git a/src/linux/alpha/syscallent.h b/src/linux/alpha/syscallent.h
index 87cbe59bd..8c6b47475 100644
--- a/src/linux/alpha/syscallent.h
+++ b/src/linux/alpha/syscallent.h
@@ -52,7 +52,7 @@
[ 42] = { 0, TD, SEN(pipe), "pipe" },
[ 43] = { 4, 0, SEN(printargs), "osf_set_program_attributes" },
[ 44] = { 5, 0, SEN(printargs), "osf_profil" }, /* not implemented */
-[ 45] = { 3, TD|TF, SEN(open), "open" },
+[ 45] = { 3, TD|TF|TO, SEN(open), "open" },
[ 46] = { 5, 0, SEN(printargs), "osf_old_sigaction" }, /* not implemented */
[ 47] = { 0, TC|PU|NF, SEN(getxgid), "getxgid" },
[ 48] = { 2, TS, SEN(osf_sigprocmask), "osf_sigprocmask" },
@@ -393,7 +393,7 @@
[447] = { 1, TD, SEN(fdatasync), "fdatasync" },
[448] = { 4, 0, SEN(kexec_load), "kexec_load" },
[449] = { 4, TM, SEN(migrate_pages), "migrate_pages" },
-[450] = { 4, TD|TF, SEN(openat), "openat" },
+[450] = { 4, TD|TF|TO, SEN(openat), "openat" },
[451] = { 3, TD|TF, SEN(mkdirat), "mkdirat" },
[452] = { 4, TD|TF, SEN(mknodat), "mknodat" },
[453] = { 5, TD|TF, SEN(fchownat), "fchownat" },
@@ -441,7 +441,7 @@
[495] = { 5, TD|TF, SEN(fanotify_mark), "fanotify_mark" },
[496] = { 4, 0, SEN(prlimit64), "prlimit64" },
[497] = { 5, TD|TF, SEN(name_to_handle_at), "name_to_handle_at" },
-[498] = { 3, TD, SEN(open_by_handle_at), "open_by_handle_at" },
+[498] = { 3, TD|TO, SEN(open_by_handle_at), "open_by_handle_at" },
[499] = { 2, TCL, SEN(clock_adjtime64), "clock_adjtime" },
[500] = { 1, TD, SEN(syncfs), "syncfs" },
[501] = { 2, TD, SEN(setns), "setns" },
diff --git a/src/linux/arm/syscallent.h b/src/linux/arm/syscallent.h
index 2086308a2..96ccefecf 100644
--- a/src/linux/arm/syscallent.h
+++ b/src/linux/arm/syscallent.h
@@ -12,10 +12,10 @@
[ 2] = { 0, TP, SEN(fork), "fork" },
[ 3] = { 3, TD, SEN(read), "read" },
[ 4] = { 3, TD, SEN(write), "write" },
-[ 5] = { 3, TD|TF, SEN(open), "open" },
+[ 5] = { 3, TD|TF|TO, SEN(open), "open" },
[ 6] = { 1, TD, SEN(close), "close" },
[ 7] = { 3, TP, SEN(waitpid), "waitpid" },
-[ 8] = { 2, TD|TF, SEN(creat), "creat" },
+[ 8] = { 2, TD|TF|TO, SEN(creat), "creat" },
[ 9] = { 2, TF, SEN(link), "link" },
[ 10] = { 1, TF, SEN(unlink), "unlink" },
[ 11] = { 3, CC|TF|TP|TSD|SE|SI, SEN(execve), "execve" },
@@ -329,7 +329,7 @@
[319] = { 6, TM, SEN(mbind), "mbind" },
[320] = { 5, TM, SEN(get_mempolicy), "get_mempolicy" },
[321] = { 3, TM, SEN(set_mempolicy), "set_mempolicy" },
-[322] = { 4, TD|TF, SEN(openat), "openat" },
+[322] = { 4, TD|TF|TO, SEN(openat), "openat" },
[323] = { 3, TD|TF, SEN(mkdirat), "mkdirat" },
[324] = { 4, TD|TF, SEN(mknodat), "mknodat" },
[325] = { 5, TD|TF, SEN(fchownat), "fchownat" },
@@ -378,7 +378,7 @@
[368] = { 6, TD|TF, SEN(fanotify_mark), "fanotify_mark" },
[369] = { 4, 0, SEN(prlimit64), "prlimit64" },
[370] = { 5, TD|TF, SEN(name_to_handle_at), "name_to_handle_at" },
-[371] = { 3, TD, SEN(open_by_handle_at), "open_by_handle_at" },
+[371] = { 3, TD|TO, SEN(open_by_handle_at), "open_by_handle_at" },
[372] = { 2, TCL, SEN(clock_adjtime32), "clock_adjtime" },
[373] = { 1, TD, SEN(syncfs), "syncfs" },
[374] = { 4, TN, SEN(sendmmsg), "sendmmsg" },
diff --git a/src/linux/avr32/syscallent.h b/src/linux/avr32/syscallent.h
index 104044e5f..d2240c671 100644
--- a/src/linux/avr32/syscallent.h
+++ b/src/linux/avr32/syscallent.h
@@ -11,10 +11,10 @@
[ 2] = { 0, TP, SEN(fork), "fork" },
[ 3] = { 3, TD, SEN(read), "read" },
[ 4] = { 3, TD, SEN(write), "write" },
-[ 5] = { 3, TD|TF, SEN(open), "open" },
+[ 5] = { 3, TD|TF|TO, SEN(open), "open" },
[ 6] = { 1, TD, SEN(close), "close" },
[ 7] = { 1, NF, SEN(umask), "umask" },
-[ 8] = { 2, TD|TF, SEN(creat), "creat" },
+[ 8] = { 2, TD|TF|TO, SEN(creat), "creat" },
[ 9] = { 2, TF, SEN(link), "link" },
[ 10] = { 1, TF, SEN(unlink), "unlink" },
[ 11] = { 3, CC|TF|TP|TSD|SE|SI, SEN(execve), "execve" },
@@ -249,7 +249,7 @@
[240] = { 0, TD, SEN(inotify_init), "inotify_init" },
[241] = { 3, TD|TF, SEN(inotify_add_watch), "inotify_add_watch" },
[242] = { 2, TD, SEN(inotify_rm_watch), "inotify_rm_watch" },
-[243] = { 4, TD|TF, SEN(openat), "openat" },
+[243] = { 4, TD|TF|TO, SEN(openat), "openat" },
[244] = { 3, TD|TF, SEN(mkdirat), "mkdirat" },
[245] = { 4, TD|TF, SEN(mknodat), "mknodat" },
[246] = { 5, TD|TF, SEN(fchownat), "fchownat" },
@@ -311,7 +311,7 @@
[302] = { 6, TD|TF, SEN(fanotify_mark), "fanotify_mark" },
[303] = { 4, 0, SEN(prlimit64), "prlimit64" },
[304] = { 5, TD|TF, SEN(name_to_handle_at), "name_to_handle_at" },
-[305] = { 3, TD, SEN(open_by_handle_at), "open_by_handle_at" },
+[305] = { 3, TD|TO, SEN(open_by_handle_at), "open_by_handle_at" },
[306] = { 2, TCL, SEN(clock_adjtime32), "clock_adjtime" },
[307] = { 1, TD, SEN(syncfs), "syncfs" },
[308] = { 4, TN, SEN(sendmmsg), "sendmmsg" },
diff --git a/src/linux/bfin/syscallent.h b/src/linux/bfin/syscallent.h
index 05720b4f9..4bc1d37bd 100644
--- a/src/linux/bfin/syscallent.h
+++ b/src/linux/bfin/syscallent.h
@@ -12,10 +12,10 @@
[ 2] = { 0, TP, SEN(fork), "fork" },
[ 3] = { 3, TD, SEN(read), "read" },
[ 4] = { 3, TD, SEN(write), "write" },
-[ 5] = { 3, TD|TF, SEN(open), "open" },
+[ 5] = { 3, TD|TF|TO, SEN(open), "open" },
[ 6] = { 1, TD, SEN(close), "close" },
[ 7] = { 3, TP, SEN(waitpid), "waitpid" },
-[ 8] = { 2, TD|TF, SEN(creat), "creat" },
+[ 8] = { 2, TD|TF|TO, SEN(creat), "creat" },
[ 9] = { 2, TF, SEN(link), "link" },
[ 10] = { 1, TF, SEN(unlink), "unlink" },
[ 11] = { 3, CC|TF|TP|TSD|SE|SI, SEN(execve), "execve" },
@@ -301,7 +301,7 @@
[292] = { 3, TD|TF, SEN(inotify_add_watch), "inotify_add_watch" },
[293] = { 2, TD, SEN(inotify_rm_watch), "inotify_rm_watch" },
[294] = { 4, TM, SEN(migrate_pages), "migrate_pages" },
-[295] = { 4, TD|TF, SEN(openat), "openat" },
+[295] = { 4, TD|TF|TO, SEN(openat), "openat" },
[296] = { 3, TD|TF, SEN(mkdirat), "mkdirat" },
[297] = { 4, TD|TF, SEN(mknodat), "mknodat" },
[298] = { 5, TD|TF, SEN(fchownat), "fchownat" },
@@ -382,7 +382,7 @@
[373] = { 4, 0, SEN(prlimit64), "prlimit64" },
[374] = { 3, 0, SEN(cacheflush), "cacheflush" },
[375] = { 5, TD|TF, SEN(name_to_handle_at), "name_to_handle_at" },
-[376] = { 3, TD, SEN(open_by_handle_at), "open_by_handle_at" },
+[376] = { 3, TD|TO, SEN(open_by_handle_at), "open_by_handle_at" },
[377] = { 2, TCL, SEN(clock_adjtime32), "clock_adjtime" },
[378] = { 1, TD, SEN(syncfs), "syncfs" },
[379] = { 2, TD, SEN(setns), "setns" },
diff --git a/src/linux/generic/syscallent-common.h b/src/linux/generic/syscallent-common.h
index 97ba328e6..058a72edb 100644
--- a/src/linux/generic/syscallent-common.h
+++ b/src/linux/generic/syscallent-common.h
@@ -21,7 +21,7 @@
[BASE_NR + 434] = { 2, TD, SEN(pidfd_open), "pidfd_open" },
[BASE_NR + 435] = { 2, TP, SEN(clone3), "clone3" },
[BASE_NR + 436] = { 3, 0, SEN(close_range), "close_range" },
-[BASE_NR + 437] = { 4, TD|TF, SEN(openat2), "openat2" },
+[BASE_NR + 437] = { 4, TD|TF|TO, SEN(openat2), "openat2" },
[BASE_NR + 438] = { 3, TD, SEN(pidfd_getfd), "pidfd_getfd" },
[BASE_NR + 439] = { 4, TD|TF, SEN(faccessat2), "faccessat2" },
[BASE_NR + 440] = { 5, TD, SEN(process_madvise), "process_madvise" },
diff --git a/src/linux/hppa/syscallent.h b/src/linux/hppa/syscallent.h
index a7dd57ce9..a8b3db888 100644
--- a/src/linux/hppa/syscallent.h
+++ b/src/linux/hppa/syscallent.h
@@ -8,10 +8,10 @@
[ 2] = { 0, TP, SEN(fork), "fork" },
[ 3] = { 3, TD, SEN(read), "read" },
[ 4] = { 3, TD, SEN(write), "write" },
-[ 5] = { 3, TD|TF, SEN(open), "open" },
+[ 5] = { 3, TD|TF|TO, SEN(open), "open" },
[ 6] = { 1, TD, SEN(close), "close" },
[ 7] = { 3, TP, SEN(waitpid), "waitpid" },
-[ 8] = { 2, TD|TF, SEN(creat), "creat" },
+[ 8] = { 2, TD|TF|TO, SEN(creat), "creat" },
[ 9] = { 2, TF, SEN(link), "link" },
[ 10] = { 1, TF, SEN(unlink), "unlink" },
[ 11] = { 3, CC|TF|TP|TSD|SE|SI, SEN(execve), "execve" },
@@ -278,7 +278,7 @@
[272] = { 4, TM, SEN(migrate_pages), "migrate_pages" },
[273] = { 6, TD, SEN(pselect6_time32), "pselect6" },
[274] = { 5, TD, SEN(ppoll_time32), "ppoll" },
-[275] = { 4, TD|TF, SEN(openat), "openat" },
+[275] = { 4, TD|TF|TO, SEN(openat), "openat" },
[276] = { 3, TD|TF, SEN(mkdirat), "mkdirat" },
[277] = { 4, TD|TF, SEN(mknodat), "mknodat" },
[278] = { 5, TD|TF, SEN(fchownat), "fchownat" },
@@ -329,7 +329,7 @@
[323] = { 6, TD|TF, SEN(fanotify_mark), "fanotify_mark" },
[324] = { 2, TCL, SEN(clock_adjtime32), "clock_adjtime" },
[325] = { 5, TD|TF, SEN(name_to_handle_at), "name_to_handle_at" },
-[326] = { 3, TD, SEN(open_by_handle_at), "open_by_handle_at" },
+[326] = { 3, TD|TO, SEN(open_by_handle_at), "open_by_handle_at" },
[327] = { 1, TD, SEN(syncfs), "syncfs" },
[328] = { 2, TD, SEN(setns), "setns" },
[329] = { 4, TN, SEN(sendmmsg), "sendmmsg" },
diff --git a/src/linux/i386/syscallent.h b/src/linux/i386/syscallent.h
index 3553a0575..68ee77892 100644
--- a/src/linux/i386/syscallent.h
+++ b/src/linux/i386/syscallent.h
@@ -12,10 +12,10 @@
[ 2] = { 0, TP, SEN(fork), "fork" },
[ 3] = { 3, TD, SEN(read), "read" },
[ 4] = { 3, TD, SEN(write), "write" },
-[ 5] = { 3, TD|TF, SEN(open), "open" },
+[ 5] = { 3, TD|TF|TO, SEN(open), "open" },
[ 6] = { 1, TD, SEN(close), "close" },
[ 7] = { 3, TP, SEN(waitpid), "waitpid" },
-[ 8] = { 2, TD|TF, SEN(creat), "creat" },
+[ 8] = { 2, TD|TF|TO, SEN(creat), "creat" },
[ 9] = { 2, TF, SEN(link), "link" },
[ 10] = { 1, TF, SEN(unlink), "unlink" },
[ 11] = { 3, CC|TF|TP|TSD|SE|SI, SEN(execve), "execve" },
@@ -301,7 +301,7 @@
[292] = { 3, TD|TF, SEN(inotify_add_watch), "inotify_add_watch" },
[293] = { 2, TD, SEN(inotify_rm_watch), "inotify_rm_watch" },
[294] = { 4, TM, SEN(migrate_pages), "migrate_pages" },
-[295] = { 4, TD|TF, SEN(openat), "openat" },
+[295] = { 4, TD|TF|TO, SEN(openat), "openat" },
[296] = { 3, TD|TF, SEN(mkdirat), "mkdirat" },
[297] = { 4, TD|TF, SEN(mknodat), "mknodat" },
[298] = { 5, TD|TF, SEN(fchownat), "fchownat" },
@@ -348,7 +348,7 @@
[339] = { 6, TD|TF, SEN(fanotify_mark), "fanotify_mark" },
[340] = { 4, 0, SEN(prlimit64), "prlimit64" },
[341] = { 5, TD|TF, SEN(name_to_handle_at), "name_to_handle_at" },
-[342] = { 3, TD, SEN(open_by_handle_at), "open_by_handle_at" },
+[342] = { 3, TD|TO, SEN(open_by_handle_at), "open_by_handle_at" },
[343] = { 2, TCL, SEN(clock_adjtime32), "clock_adjtime" },
[344] = { 1, TD, SEN(syncfs), "syncfs" },
[345] = { 4, TN, SEN(sendmmsg), "sendmmsg" },
diff --git a/src/linux/ia64/syscallent.h b/src/linux/ia64/syscallent.h
index b47c1cce1..ecd805777 100644
--- a/src/linux/ia64/syscallent.h
+++ b/src/linux/ia64/syscallent.h
@@ -24,9 +24,9 @@
[BASE_NR + 1] = { 1, TP|SE, SEN(exit), "exit" },
[BASE_NR + 2] = { 3, TD, SEN(read), "read" },
[BASE_NR + 3] = { 3, TD, SEN(write), "write" },
-[BASE_NR + 4] = { 3, TD|TF, SEN(open), "open" },
+[BASE_NR + 4] = { 3, TD|TF|TO, SEN(open), "open" },
[BASE_NR + 5] = { 1, TD, SEN(close), "close" },
-[BASE_NR + 6] = { 2, TD|TF, SEN(creat), "creat" },
+[BASE_NR + 6] = { 2, TD|TF|TO, SEN(creat), "creat" },
[BASE_NR + 7] = { 2, TF, SEN(link), "link" },
[BASE_NR + 8] = { 1, TF, SEN(unlink), "unlink" },
[BASE_NR + 9] = { 3, CC|TF|TP|TSD|SE|SI, SEN(execve), "execve" },
@@ -277,7 +277,7 @@
[BASE_NR + 254] = { 3, TD|TF, SEN(inotify_add_watch), "inotify_add_watch" },
[BASE_NR + 255] = { 2, TD, SEN(inotify_rm_watch), "inotify_rm_watch" },
[BASE_NR + 256] = { 4, TM, SEN(migrate_pages), "migrate_pages" },
-[BASE_NR + 257] = { 4, TD|TF, SEN(openat), "openat" },
+[BASE_NR + 257] = { 4, TD|TF|TO, SEN(openat), "openat" },
[BASE_NR + 258] = { 3, TD|TF, SEN(mkdirat), "mkdirat" },
[BASE_NR + 259] = { 4, TD|TF, SEN(mknodat), "mknodat" },
[BASE_NR + 260] = { 5, TD|TF, SEN(fchownat), "fchownat" },
@@ -323,7 +323,7 @@
[BASE_NR + 300] = { 5, TD|TF, SEN(fanotify_mark), "fanotify_mark" },
[BASE_NR + 301] = { 4, 0, SEN(prlimit64), "prlimit64" },
[BASE_NR + 302] = { 5, TD|TF, SEN(name_to_handle_at), "name_to_handle_at" },
-[BASE_NR + 303] = { 3, TD, SEN(open_by_handle_at), "open_by_handle_at" },
+[BASE_NR + 303] = { 3, TD|TO, SEN(open_by_handle_at), "open_by_handle_at" },
[BASE_NR + 304] = { 2, TCL, SEN(clock_adjtime64), "clock_adjtime" },
[BASE_NR + 305] = { 1, TD, SEN(syncfs), "syncfs" },
[BASE_NR + 306] = { 2, TD, SEN(setns), "setns" },
diff --git a/src/linux/m68k/syscallent.h b/src/linux/m68k/syscallent.h
index 3abd77b0c..ffd9605a4 100644
--- a/src/linux/m68k/syscallent.h
+++ b/src/linux/m68k/syscallent.h
@@ -12,10 +12,10 @@
[ 2] = { 0, TP, SEN(fork), "fork" },
[ 3] = { 3, TD, SEN(read), "read" },
[ 4] = { 3, TD, SEN(write), "write" },
-[ 5] = { 3, TD|TF, SEN(open), "open" },
+[ 5] = { 3, TD|TF|TO, SEN(open), "open" },
[ 6] = { 1, TD, SEN(close), "close" },
[ 7] = { 3, TP, SEN(waitpid), "waitpid" },
-[ 8] = { 2, TD|TF, SEN(creat), "creat" },
+[ 8] = { 2, TD|TF|TO, SEN(creat), "creat" },
[ 9] = { 2, TF, SEN(link), "link" },
[ 10] = { 1, TF, SEN(unlink), "unlink" },
[ 11] = { 3, CC|TF|TP|TSD|SE|SI, SEN(execve), "execve" },
@@ -294,7 +294,7 @@
[285] = { 3, TD|TF, SEN(inotify_add_watch), "inotify_add_watch" },
[286] = { 2, TD, SEN(inotify_rm_watch), "inotify_rm_watch" },
[287] = { 4, TM, SEN(migrate_pages), "migrate_pages" },
-[288] = { 4, TD|TF, SEN(openat), "openat" },
+[288] = { 4, TD|TF|TO, SEN(openat), "openat" },
[289] = { 3, TD|TF, SEN(mkdirat), "mkdirat" },
[290] = { 4, TD|TF, SEN(mknodat), "mknodat" },
[291] = { 5, TD|TF, SEN(fchownat), "fchownat" },
@@ -347,7 +347,7 @@
[338] = { 6, TD|TF, SEN(fanotify_mark), "fanotify_mark" },
[339] = { 4, 0, SEN(prlimit64), "prlimit64" },
[340] = { 5, TD|TF, SEN(name_to_handle_at), "name_to_handle_at" },
-[341] = { 3, TD, SEN(open_by_handle_at), "open_by_handle_at" },
+[341] = { 3, TD|TO, SEN(open_by_handle_at), "open_by_handle_at" },
[342] = { 2, TCL, SEN(clock_adjtime32), "clock_adjtime" },
[343] = { 1, TD, SEN(syncfs), "syncfs" },
[344] = { 2, TD, SEN(setns), "setns" },
diff --git a/src/linux/microblaze/syscallent.h b/src/linux/microblaze/syscallent.h
index 15ca048ca..9722f9f37 100644
--- a/src/linux/microblaze/syscallent.h
+++ b/src/linux/microblaze/syscallent.h
@@ -12,10 +12,10 @@
[ 2] = { 0, TP, SEN(fork), "fork" },
[ 3] = { 3, TD, SEN(read), "read" },
[ 4] = { 3, TD, SEN(write), "write" },
-[ 5] = { 3, TD|TF, SEN(open), "open" },
+[ 5] = { 3, TD|TF|TO, SEN(open), "open" },
[ 6] = { 1, TD, SEN(close), "close" },
[ 7] = { 3, TP, SEN(waitpid), "waitpid" },
-[ 8] = { 2, TD|TF, SEN(creat), "creat" },
+[ 8] = { 2, TD|TF|TO, SEN(creat), "creat" },
[ 9] = { 2, TF, SEN(link), "link" },
[ 10] = { 1, TF, SEN(unlink), "unlink" },
[ 11] = { 3, CC|TF|TP|TSD|SE|SI, SEN(execve), "execve" },
@@ -301,7 +301,7 @@
[292] = { 3, TD|TF, SEN(inotify_add_watch), "inotify_add_watch" },
[293] = { 2, TD, SEN(inotify_rm_watch), "inotify_rm_watch" },
[294] = { 4, TM, SEN(migrate_pages), "migrate_pages" },
-[295] = { 4, TD|TF, SEN(openat), "openat" },
+[295] = { 4, TD|TF|TO, SEN(openat), "openat" },
[296] = { 3, TD|TF, SEN(mkdirat), "mkdirat" },
[297] = { 4, TD|TF, SEN(mknodat), "mknodat" },
[298] = { 5, TD|TF, SEN(fchownat), "fchownat" },
@@ -378,7 +378,7 @@
[369] = { 6, TD|TF, SEN(fanotify_mark), "fanotify_mark" },
[370] = { 4, 0, SEN(prlimit64), "prlimit64" },
[371] = { 5, TD|TF, SEN(name_to_handle_at), "name_to_handle_at" },
-[372] = { 3, TD, SEN(open_by_handle_at), "open_by_handle_at" },
+[372] = { 3, TD|TO, SEN(open_by_handle_at), "open_by_handle_at" },
[373] = { 2, TCL, SEN(clock_adjtime32), "clock_adjtime" },
[374] = { 1, TD, SEN(syncfs), "syncfs" },
[375] = { 2, TD, SEN(setns), "setns" },
diff --git a/src/linux/mips/syscallent-n32.h b/src/linux/mips/syscallent-n32.h
index a3e2f1de3..70bb125b1 100644
--- a/src/linux/mips/syscallent-n32.h
+++ b/src/linux/mips/syscallent-n32.h
@@ -10,7 +10,7 @@
/* For an N32 strace decode the N32 64-bit syscalls. */
[BASE_NR + 0] = { 3, TD, SEN(read), "read" }, /* start of Linux N32 */
[BASE_NR + 1] = { 3, TD, SEN(write), "write" },
-[BASE_NR + 2] = { 3, TD|TF, SEN(open), "open" },
+[BASE_NR + 2] = { 3, TD|TF|TO, SEN(open), "open" },
[BASE_NR + 3] = { 1, TD, SEN(close), "close" },
[BASE_NR + 4] = { 2, TF|TST|TSTA, SEN(stat64), "stat" },
[BASE_NR + 5] = { 2, TD|TFST|TSTA, SEN(fstat64), "fstat" },
@@ -91,7 +91,7 @@
[BASE_NR + 80] = { 2, TF, SEN(rename), "rename" },
[BASE_NR + 81] = { 2, TF, SEN(mkdir), "mkdir" },
[BASE_NR + 82] = { 1, TF, SEN(rmdir), "rmdir" },
-[BASE_NR + 83] = { 2, TD|TF, SEN(creat), "creat" },
+[BASE_NR + 83] = { 2, TD|TF|TO, SEN(creat), "creat" },
[BASE_NR + 84] = { 2, TF, SEN(link), "link" },
[BASE_NR + 85] = { 1, TF, SEN(unlink), "unlink" },
[BASE_NR + 86] = { 2, TF, SEN(symlink), "symlink" },
@@ -259,7 +259,7 @@
[BASE_NR + 248] = { 3, TD|TF, SEN(inotify_add_watch), "inotify_add_watch" },
[BASE_NR + 249] = { 2, TD, SEN(inotify_rm_watch), "inotify_rm_watch" },
[BASE_NR + 250] = { 4, TM, SEN(migrate_pages), "migrate_pages" },
-[BASE_NR + 251] = { 4, TD|TF, SEN(openat), "openat" },
+[BASE_NR + 251] = { 4, TD|TF|TO, SEN(openat), "openat" },
[BASE_NR + 252] = { 3, TD|TF, SEN(mkdirat), "mkdirat" },
[BASE_NR + 253] = { 4, TD|TF, SEN(mknodat), "mknodat" },
[BASE_NR + 254] = { 5, TD|TF, SEN(fchownat), "fchownat" },
@@ -312,7 +312,7 @@
[BASE_NR + 301] = { 5, TD|TF, SEN(fanotify_mark), "fanotify_mark" },
[BASE_NR + 302] = { 4, 0, SEN(prlimit64), "prlimit64" },
[BASE_NR + 303] = { 5, TD|TF, SEN(name_to_handle_at), "name_to_handle_at" },
-[BASE_NR + 304] = { 3, TD, SEN(open_by_handle_at), "open_by_handle_at" },
+[BASE_NR + 304] = { 3, TD|TO, SEN(open_by_handle_at), "open_by_handle_at" },
[BASE_NR + 305] = { 2, TCL, SEN(clock_adjtime32), "clock_adjtime" },
[BASE_NR + 306] = { 1, TD, SEN(syncfs), "syncfs" },
[BASE_NR + 307] = { 4, TN, SEN(sendmmsg), "sendmmsg" },
diff --git a/src/linux/mips/syscallent-n64.h b/src/linux/mips/syscallent-n64.h
index 0eb9a4d57..271d85200 100644
--- a/src/linux/mips/syscallent-n64.h
+++ b/src/linux/mips/syscallent-n64.h
@@ -10,7 +10,7 @@
/* For an N64 strace decode the N64 64-bit syscalls. */
[BASE_NR + 0] = { 3, TD, SEN(read), "read" }, /* start of Linux N64 */
[BASE_NR + 1] = { 3, TD, SEN(write), "write" },
-[BASE_NR + 2] = { 3, TD|TF, SEN(open), "open" },
+[BASE_NR + 2] = { 3, TD|TF|TO, SEN(open), "open" },
[BASE_NR + 3] = { 1, TD, SEN(close), "close" },
[BASE_NR + 4] = { 2, TF|TST|TSTA, SEN(stat), "stat" },
[BASE_NR + 5] = { 2, TD|TFST|TSTA, SEN(fstat), "fstat" },
@@ -91,7 +91,7 @@
[BASE_NR + 80] = { 2, TF, SEN(rename), "rename" },
[BASE_NR + 81] = { 2, TF, SEN(mkdir), "mkdir" },
[BASE_NR + 82] = { 1, TF, SEN(rmdir), "rmdir" },
-[BASE_NR + 83] = { 2, TD|TF, SEN(creat), "creat" },
+[BASE_NR + 83] = { 2, TD|TF|TO, SEN(creat), "creat" },
[BASE_NR + 84] = { 2, TF, SEN(link), "link" },
[BASE_NR + 85] = { 1, TF, SEN(unlink), "unlink" },
[BASE_NR + 86] = { 2, TF, SEN(symlink), "symlink" },
@@ -255,7 +255,7 @@
[BASE_NR + 244] = { 3, TD|TF, SEN(inotify_add_watch), "inotify_add_watch" },
[BASE_NR + 245] = { 2, TD, SEN(inotify_rm_watch), "inotify_rm_watch" },
[BASE_NR + 246] = { 4, TM, SEN(migrate_pages), "migrate_pages" },
-[BASE_NR + 247] = { 4, TD|TF, SEN(openat), "openat" },
+[BASE_NR + 247] = { 4, TD|TF|TO, SEN(openat), "openat" },
[BASE_NR + 248] = { 3, TD|TF, SEN(mkdirat), "mkdirat" },
[BASE_NR + 249] = { 4, TD|TF, SEN(mknodat), "mknodat" },
[BASE_NR + 250] = { 5, TD|TF, SEN(fchownat), "fchownat" },
@@ -307,7 +307,7 @@
[BASE_NR + 296] = { 5, TD|TF, SEN(fanotify_mark), "fanotify_mark" },
[BASE_NR + 297] = { 4, 0, SEN(prlimit64), "prlimit64" },
[BASE_NR + 298] = { 5, TD|TF, SEN(name_to_handle_at), "name_to_handle_at" },
-[BASE_NR + 299] = { 3, TD, SEN(open_by_handle_at), "open_by_handle_at" },
+[BASE_NR + 299] = { 3, TD|TO, SEN(open_by_handle_at), "open_by_handle_at" },
[BASE_NR + 300] = { 2, TCL, SEN(clock_adjtime64), "clock_adjtime" },
[BASE_NR + 301] = { 1, TD, SEN(syncfs), "syncfs" },
[BASE_NR + 302] = { 4, TN, SEN(sendmmsg), "sendmmsg" },
diff --git a/src/linux/mips/syscallent-o32.h b/src/linux/mips/syscallent-o32.h
index 61eb35dfe..b92a02bc4 100644
--- a/src/linux/mips/syscallent-o32.h
+++ b/src/linux/mips/syscallent-o32.h
@@ -14,10 +14,10 @@
[BASE_NR + 2] = { 0, TP, SEN(fork), "fork" },
[BASE_NR + 3] = { 3, TD, SEN(read), "read" },
[BASE_NR + 4] = { 3, TD, SEN(write), "write" },
-[BASE_NR + 5] = { 3, TD|TF, SEN(open), "open" },
+[BASE_NR + 5] = { 3, TD|TF|TO, SEN(open), "open" },
[BASE_NR + 6] = { 1, TD, SEN(close), "close" },
[BASE_NR + 7] = { 3, TP, SEN(waitpid), "waitpid" },
-[BASE_NR + 8] = { 2, TD|TF, SEN(creat), "creat" },
+[BASE_NR + 8] = { 2, TD|TF|TO, SEN(creat), "creat" },
[BASE_NR + 9] = { 2, TF, SEN(link), "link" },
[BASE_NR + 10] = { 1, TF, SEN(unlink), "unlink" },
[BASE_NR + 11] = { 3, CC|TF|TP|TSD|SE|SI, SEN(execve), "execve" },
@@ -297,7 +297,7 @@
[BASE_NR + 285] = { 3, TD|TF, SEN(inotify_add_watch), "inotify_add_watch" },
[BASE_NR + 286] = { 2, TD, SEN(inotify_rm_watch), "inotify_rm_watch" },
[BASE_NR + 287] = { 4, TM, SEN(migrate_pages), "migrate_pages" },
-[BASE_NR + 288] = { 4, TD|TF, SEN(openat), "openat" },
+[BASE_NR + 288] = { 4, TD|TF|TO, SEN(openat), "openat" },
[BASE_NR + 289] = { 3, TD|TF, SEN(mkdirat), "mkdirat" },
[BASE_NR + 290] = { 4, TD|TF, SEN(mknodat), "mknodat" },
[BASE_NR + 291] = { 5, TD|TF, SEN(fchownat), "fchownat" },
@@ -349,7 +349,7 @@
[BASE_NR + 337] = { 6, TD|TF, SEN(fanotify_mark), "fanotify_mark" },
[BASE_NR + 338] = { 4, 0, SEN(prlimit64), "prlimit64" },
[BASE_NR + 339] = { 5, TD|TF, SEN(name_to_handle_at), "name_to_handle_at" },
-[BASE_NR + 340] = { 3, TD, SEN(open_by_handle_at), "open_by_handle_at" },
+[BASE_NR + 340] = { 3, TD|TO, SEN(open_by_handle_at), "open_by_handle_at" },
[BASE_NR + 341] = { 2, TCL, SEN(clock_adjtime32), "clock_adjtime" },
[BASE_NR + 342] = { 1, TD, SEN(syncfs), "syncfs" },
[BASE_NR + 343] = { 4, TN, SEN(sendmmsg), "sendmmsg" },
diff --git a/src/linux/powerpc/syscallent.h b/src/linux/powerpc/syscallent.h
index 34b78cfb2..1d4400a1d 100644
--- a/src/linux/powerpc/syscallent.h
+++ b/src/linux/powerpc/syscallent.h
@@ -12,10 +12,10 @@
[ 2] = { 0, TP, SEN(fork), "fork" },
[ 3] = { 3, TD, SEN(read), "read" },
[ 4] = { 3, TD, SEN(write), "write" },
-[ 5] = { 3, TD|TF, SEN(open), "open" },
+[ 5] = { 3, TD|TF|TO, SEN(open), "open" },
[ 6] = { 1, TD, SEN(close), "close" },
[ 7] = { 3, TP, SEN(waitpid), "waitpid" },
-[ 8] = { 2, TD|TF, SEN(creat), "creat" },
+[ 8] = { 2, TD|TF|TO, SEN(creat), "creat" },
[ 9] = { 2, TF, SEN(link), "link" },
[ 10] = { 1, TF, SEN(unlink), "unlink" },
[ 11] = { 3, CC|TF|TP|TSD|SE|SI, SEN(execve), "execve" },
@@ -293,7 +293,7 @@
[283] = { 6, TD, SEN(splice), "splice" },
[284] = { 4, TD, SEN(tee), "tee" },
[285] = { 4, TD, SEN(vmsplice), "vmsplice" },
-[286] = { 4, TD|TF, SEN(openat), "openat" },
+[286] = { 4, TD|TF|TO, SEN(openat), "openat" },
[287] = { 3, TD|TF, SEN(mkdirat), "mkdirat" },
[288] = { 4, TD|TF, SEN(mknodat), "mknodat" },
[289] = { 5, TD|TF, SEN(fchownat), "fchownat" },
@@ -353,7 +353,7 @@
[343] = { 5, TN, SEN(recvmmsg_time32), "recvmmsg" },
[344] = { 4, TN, SEN(accept4), "accept4" },
[345] = { 5, TD|TF, SEN(name_to_handle_at), "name_to_handle_at" },
-[346] = { 3, TD, SEN(open_by_handle_at), "open_by_handle_at" },
+[346] = { 3, TD|TO, SEN(open_by_handle_at), "open_by_handle_at" },
[347] = { 2, TCL, SEN(clock_adjtime32), "clock_adjtime" },
[348] = { 1, TD, SEN(syncfs), "syncfs" },
[349] = { 4, TN, SEN(sendmmsg), "sendmmsg" },
diff --git a/src/linux/powerpc64/syscallent.h b/src/linux/powerpc64/syscallent.h
index 0a4f7a8b5..51d9c86d5 100644
--- a/src/linux/powerpc64/syscallent.h
+++ b/src/linux/powerpc64/syscallent.h
@@ -12,10 +12,10 @@
[ 2] = { 0, TP, SEN(fork), "fork" },
[ 3] = { 3, TD, SEN(read), "read" },
[ 4] = { 3, TD, SEN(write), "write" },
-[ 5] = { 3, TD|TF, SEN(open), "open" },
+[ 5] = { 3, TD|TF|TO, SEN(open), "open" },
[ 6] = { 1, TD, SEN(close), "close" },
[ 7] = { 3, TP, SEN(waitpid), "waitpid" },
-[ 8] = { 2, TD|TF, SEN(creat), "creat" },
+[ 8] = { 2, TD|TF|TO, SEN(creat), "creat" },
[ 9] = { 2, TF, SEN(link), "link" },
[ 10] = { 1, TF, SEN(unlink), "unlink" },
[ 11] = { 3, CC|TF|TP|TSD|SE|SI, SEN(execve), "execve" },
@@ -293,7 +293,7 @@
[283] = { 6, TD, SEN(splice), "splice" },
[284] = { 4, TD, SEN(tee), "tee" },
[285] = { 4, TD, SEN(vmsplice), "vmsplice" },
-[286] = { 4, TD|TF, SEN(openat), "openat" },
+[286] = { 4, TD|TF|TO, SEN(openat), "openat" },
[287] = { 3, TD|TF, SEN(mkdirat), "mkdirat" },
[288] = { 4, TD|TF, SEN(mknodat), "mknodat" },
[289] = { 5, TD|TF, SEN(fchownat), "fchownat" },
@@ -353,7 +353,7 @@
[343] = { 5, TN, SEN(recvmmsg_time64), "recvmmsg" },
[344] = { 4, TN, SEN(accept4), "accept4" },
[345] = { 5, TD|TF, SEN(name_to_handle_at), "name_to_handle_at" },
-[346] = { 3, TD, SEN(open_by_handle_at), "open_by_handle_at" },
+[346] = { 3, TD|TO, SEN(open_by_handle_at), "open_by_handle_at" },
[347] = { 2, TCL, SEN(clock_adjtime64), "clock_adjtime" },
[348] = { 1, TD, SEN(syncfs), "syncfs" },
[349] = { 4, TN, SEN(sendmmsg), "sendmmsg" },
diff --git a/src/linux/s390/syscallent.h b/src/linux/s390/syscallent.h
index a808c7b5b..cd83b85fa 100644
--- a/src/linux/s390/syscallent.h
+++ b/src/linux/s390/syscallent.h
@@ -14,10 +14,10 @@
[ 2] = { 0, TP, SEN(fork), "fork" },
[ 3] = { 3, TD, SEN(read), "read" },
[ 4] = { 3, TD, SEN(write), "write" },
-[ 5] = { 3, TD|TF, SEN(open), "open" },
+[ 5] = { 3, TD|TF|TO, SEN(open), "open" },
[ 6] = { 1, TD, SEN(close), "close" },
[ 7] = { 0, 0, SEN(restart_syscall), "restart_syscall" },
-[ 8] = { 2, TD|TF, SEN(creat), "creat" },
+[ 8] = { 2, TD|TF|TO, SEN(creat), "creat" },
[ 9] = { 2, TF, SEN(link), "link" },
[ 10] = { 1, TF, SEN(unlink), "unlink" },
[ 11] = { 3, CC|TF|TP|TSD|SE|SI, SEN(execve), "execve" },
@@ -297,7 +297,7 @@
[285] = { 3, TD|TF, SEN(inotify_add_watch), "inotify_add_watch" },
[286] = { 2, TD, SEN(inotify_rm_watch), "inotify_rm_watch" },
[287] = { 4, TM, SEN(migrate_pages), "migrate_pages" },
-[288] = { 4, TD|TF, SEN(openat), "openat" },
+[288] = { 4, TD|TF|TO, SEN(openat), "openat" },
[289] = { 3, TD|TF, SEN(mkdirat), "mkdirat" },
[290] = { 4, TD|TF, SEN(mknodat), "mknodat" },
[291] = { 5, TD|TF, SEN(fchownat), "fchownat" },
@@ -345,7 +345,7 @@
[333] = { 6, TD|TF, SEN(fanotify_mark), "fanotify_mark" },
[334] = { 4, 0, SEN(prlimit64), "prlimit64" },
[335] = { 5, TD|TF, SEN(name_to_handle_at), "name_to_handle_at" },
-[336] = { 3, TD, SEN(open_by_handle_at), "open_by_handle_at" },
+[336] = { 3, TD|TO, SEN(open_by_handle_at), "open_by_handle_at" },
[337] = { 2, TCL, SEN(clock_adjtime32), "clock_adjtime" },
[338] = { 1, TD, SEN(syncfs), "syncfs" },
[339] = { 2, TD, SEN(setns), "setns" },
diff --git a/src/linux/s390x/syscallent.h b/src/linux/s390x/syscallent.h
index 90bf993b7..df589569a 100644
--- a/src/linux/s390x/syscallent.h
+++ b/src/linux/s390x/syscallent.h
@@ -13,10 +13,10 @@
[ 2] = { 0, TP, SEN(fork), "fork" },
[ 3] = { 3, TD, SEN(read), "read" },
[ 4] = { 3, TD, SEN(write), "write" },
-[ 5] = { 3, TD|TF, SEN(open), "open" },
+[ 5] = { 3, TD|TF|TO, SEN(open), "open" },
[ 6] = { 1, TD, SEN(close), "close" },
[ 7] = { 0, 0, SEN(restart_syscall), "restart_syscall" },
-[ 8] = { 2, TD|TF, SEN(creat), "creat" },
+[ 8] = { 2, TD|TF|TO, SEN(creat), "creat" },
[ 9] = { 2, TF, SEN(link), "link" },
[ 10] = { 1, TF, SEN(unlink), "unlink" },
[ 11] = { 3, CC|TF|TP|TSD|SE|SI, SEN(execve), "execve" },
@@ -281,7 +281,7 @@
[285] = { 3, TD|TF, SEN(inotify_add_watch), "inotify_add_watch" },
[286] = { 2, TD, SEN(inotify_rm_watch), "inotify_rm_watch" },
[287] = { 4, TM, SEN(migrate_pages), "migrate_pages" },
-[288] = { 4, TD|TF, SEN(openat), "openat" },
+[288] = { 4, TD|TF|TO, SEN(openat), "openat" },
[289] = { 3, TD|TF, SEN(mkdirat), "mkdirat" },
[290] = { 4, TD|TF, SEN(mknodat), "mknodat" },
[291] = { 5, TD|TF, SEN(fchownat), "fchownat" },
@@ -329,7 +329,7 @@
[333] = { 5, TD|TF, SEN(fanotify_mark), "fanotify_mark" },
[334] = { 4, 0, SEN(prlimit64), "prlimit64" },
[335] = { 5, TD|TF, SEN(name_to_handle_at), "name_to_handle_at" },
-[336] = { 3, TD, SEN(open_by_handle_at), "open_by_handle_at" },
+[336] = { 3, TD|TO, SEN(open_by_handle_at), "open_by_handle_at" },
[337] = { 2, TCL, SEN(clock_adjtime64), "clock_adjtime" },
[338] = { 1, TD, SEN(syncfs), "syncfs" },
[339] = { 2, TD, SEN(setns), "setns" },
diff --git a/src/linux/sh/syscallent.h b/src/linux/sh/syscallent.h
index c238f0400..f959b7b72 100644
--- a/src/linux/sh/syscallent.h
+++ b/src/linux/sh/syscallent.h
@@ -14,10 +14,10 @@
[ 2] = { 0, TP, SEN(fork), "fork" },
[ 3] = { 3, TD, SEN(read), "read" },
[ 4] = { 3, TD, SEN(write), "write" },
-[ 5] = { 3, TD|TF, SEN(open), "open" },
+[ 5] = { 3, TD|TF|TO, SEN(open), "open" },
[ 6] = { 1, TD, SEN(close), "close" },
[ 7] = { 3, TP, SEN(waitpid), "waitpid" },
-[ 8] = { 2, TD|TF, SEN(creat), "creat" },
+[ 8] = { 2, TD|TF|TO, SEN(creat), "creat" },
[ 9] = { 2, TF, SEN(link), "link" },
[ 10] = { 1, TF, SEN(unlink), "unlink" },
[ 11] = { 3, CC|TF|TP|TSD|SE|SI, SEN(execve), "execve" },
@@ -301,7 +301,7 @@
[292] = { 2, TD, SEN(inotify_rm_watch), "inotify_rm_watch" },
[293] = { },
[294] = { 4, TM, SEN(migrate_pages), "migrate_pages" },
-[295] = { 4, TD|TF, SEN(openat), "openat" },
+[295] = { 4, TD|TF|TO, SEN(openat), "openat" },
[296] = { 3, TD|TF, SEN(mkdirat), "mkdirat" },
[297] = { 4, TD|TF, SEN(mknodat), "mknodat" },
[298] = { 5, TD|TF, SEN(fchownat), "fchownat" },
@@ -366,7 +366,7 @@
[357] = { 5, TN, SEN(recvmmsg_time32), "recvmmsg" },
[358] = { 4, TN, SEN(accept4), "accept4" },
[359] = { 5, TD|TF, SEN(name_to_handle_at), "name_to_handle_at" },
-[360] = { 3, TD, SEN(open_by_handle_at), "open_by_handle_at" },
+[360] = { 3, TD|TO, SEN(open_by_handle_at), "open_by_handle_at" },
[361] = { 2, TCL, SEN(clock_adjtime32), "clock_adjtime" },
[362] = { 1, TD, SEN(syncfs), "syncfs" },
[363] = { 4, TN, SEN(sendmmsg), "sendmmsg" },
diff --git a/src/linux/sh64/syscallent.h b/src/linux/sh64/syscallent.h
index f33504235..8a04cfdde 100644
--- a/src/linux/sh64/syscallent.h
+++ b/src/linux/sh64/syscallent.h
@@ -12,10 +12,10 @@
[ 2] = { 0, TP, SEN(fork), "fork" },
[ 3] = { 3, TD, SEN(read), "read" },
[ 4] = { 3, TD, SEN(write), "write" },
-[ 5] = { 3, TD|TF, SEN(open), "open" },
+[ 5] = { 3, TD|TF|TO, SEN(open), "open" },
[ 6] = { 1, TD, SEN(close), "close" },
[ 7] = { 3, TP, SEN(waitpid), "waitpid" },
-[ 8] = { 2, TD|TF, SEN(creat), "creat" },
+[ 8] = { 2, TD|TF|TO, SEN(creat), "creat" },
[ 9] = { 2, TF, SEN(link), "link" },
[ 10] = { 1, TF, SEN(unlink), "unlink" },
[ 11] = { 3, CC|TF|TP|TSD|SE|SI, SEN(execve), "execve" },
@@ -327,7 +327,7 @@
[320] = { 2, TD, SEN(inotify_rm_watch), "inotify_rm_watch" },
[321] = { },
[322] = { 4, TM, SEN(migrate_pages), "migrate_pages" },
-[323] = { 4, TD|TF, SEN(openat), "openat" },
+[323] = { 4, TD|TF|TO, SEN(openat), "openat" },
[324] = { 3, TD|TF, SEN(mkdirat), "mkdirat" },
[325] = { 4, TD|TF, SEN(mknodat), "mknodat" },
[326] = { 5, TD|TF, SEN(fchownat), "fchownat" },
@@ -375,7 +375,7 @@
[368] = { 5, TD|TF, SEN(fanotify_mark), "fanotify_mark" },
[369] = { 4, 0, SEN(prlimit64), "prlimit64" },
[370] = { 5, TD|TF, SEN(name_to_handle_at), "name_to_handle_at" },
-[371] = { 3, TD, SEN(open_by_handle_at), "open_by_handle_at" },
+[371] = { 3, TD|TO, SEN(open_by_handle_at), "open_by_handle_at" },
[372] = { 2, TCL, SEN(clock_adjtime64), "clock_adjtime" },
[373] = { 1, TD, SEN(syncfs), "syncfs" },
[374] = { 4, TN, SEN(sendmmsg), "sendmmsg" },
diff --git a/src/linux/sparc/syscallent.h b/src/linux/sparc/syscallent.h
index ba2b1b0f1..5ec3c17d7 100644
--- a/src/linux/sparc/syscallent.h
+++ b/src/linux/sparc/syscallent.h
@@ -10,10 +10,10 @@
[ 2] = { 0, TP, SEN(fork), "fork" },
[ 3] = { 3, TD, SEN(read), "read" },
[ 4] = { 3, TD, SEN(write), "write" },
-[ 5] = { 3, TD|TF, SEN(open), "open" },
+[ 5] = { 3, TD|TF|TO, SEN(open), "open" },
[ 6] = { 1, TD, SEN(close), "close" },
[ 7] = { 4, TP, SEN(wait4), "wait4" },
-[ 8] = { 2, TD|TF, SEN(creat), "creat" },
+[ 8] = { 2, TD|TF|TO, SEN(creat), "creat" },
[ 9] = { 2, TF, SEN(link), "link" },
[ 10] = { 1, TF, SEN(unlink), "unlink" },
[ 11] = { 2, CC|TF|TP|TSD|SE|SI, SEN(execv), "execv" },
@@ -289,7 +289,7 @@
[281] = { 5, 0, SEN(add_key), "add_key" },
[282] = { 4, 0, SEN(request_key), "request_key" },
[283] = { 5, 0, SEN(keyctl), "keyctl" },
-[284] = { 4, TD|TF, SEN(openat), "openat" },
+[284] = { 4, TD|TF|TO, SEN(openat), "openat" },
[285] = { 3, TD|TF, SEN(mkdirat), "mkdirat" },
[286] = { 4, TD|TF, SEN(mknodat), "mknodat" },
[287] = { 5, TD|TF, SEN(fchownat), "fchownat" },
@@ -338,7 +338,7 @@
[330] = { 6, TD|TF, SEN(fanotify_mark), "fanotify_mark" },
[331] = { 4, 0, SEN(prlimit64), "prlimit64" },
[332] = { 5, TD|TF, SEN(name_to_handle_at), "name_to_handle_at" },
-[333] = { 3, TD, SEN(open_by_handle_at), "open_by_handle_at" },
+[333] = { 3, TD|TO, SEN(open_by_handle_at), "open_by_handle_at" },
[334] = { 2, TCL, SEN(clock_adjtime32), "clock_adjtime" },
[335] = { 1, TD, SEN(syncfs), "syncfs" },
[336] = { 4, TN, SEN(sendmmsg), "sendmmsg" },
diff --git a/src/linux/sparc64/syscallent.h b/src/linux/sparc64/syscallent.h
index 940d36635..ca3ee4863 100644
--- a/src/linux/sparc64/syscallent.h
+++ b/src/linux/sparc64/syscallent.h
@@ -10,10 +10,10 @@
[ 2] = { 0, TP, SEN(fork), "fork" },
[ 3] = { 3, TD, SEN(read), "read" },
[ 4] = { 3, TD, SEN(write), "write" },
-[ 5] = { 3, TD|TF, SEN(open), "open" },
+[ 5] = { 3, TD|TF|TO, SEN(open), "open" },
[ 6] = { 1, TD, SEN(close), "close" },
[ 7] = { 4, TP, SEN(wait4), "wait4" },
-[ 8] = { 2, TD|TF, SEN(creat), "creat" },
+[ 8] = { 2, TD|TF|TO, SEN(creat), "creat" },
[ 9] = { 2, TF, SEN(link), "link" },
[ 10] = { 1, TF, SEN(unlink), "unlink" },
[ 11] = { 2, CC|TF|TP|TSD|SE|SI, SEN(execv), "execv" },
@@ -289,7 +289,7 @@
[281] = { 5, 0, SEN(add_key), "add_key" },
[282] = { 4, 0, SEN(request_key), "request_key" },
[283] = { 5, 0, SEN(keyctl), "keyctl" },
-[284] = { 4, TD|TF, SEN(openat), "openat" },
+[284] = { 4, TD|TF|TO, SEN(openat), "openat" },
[285] = { 3, TD|TF, SEN(mkdirat), "mkdirat" },
[286] = { 4, TD|TF, SEN(mknodat), "mknodat" },
[287] = { 5, TD|TF, SEN(fchownat), "fchownat" },
@@ -338,7 +338,7 @@
[330] = { 5, TD|TF, SEN(fanotify_mark), "fanotify_mark" },
[331] = { 4, 0, SEN(prlimit64), "prlimit64" },
[332] = { 5, TD|TF, SEN(name_to_handle_at), "name_to_handle_at" },
-[333] = { 3, TD, SEN(open_by_handle_at), "open_by_handle_at" },
+[333] = { 3, TD|TO, SEN(open_by_handle_at), "open_by_handle_at" },
[334] = { 2, TCL, SEN(clock_sparc64_adjtime), "clock_adjtime" },
[335] = { 1, TD, SEN(syncfs), "syncfs" },
[336] = { 4, TN, SEN(sendmmsg), "sendmmsg" },
diff --git a/src/linux/x32/syscallent.h b/src/linux/x32/syscallent.h
index d9a773fa3..a07b4af54 100644
--- a/src/linux/x32/syscallent.h
+++ b/src/linux/x32/syscallent.h
@@ -7,7 +7,7 @@
[ 0] = { 3, TD, SEN(read), "read" },
[ 1] = { 3, TD, SEN(write), "write" },
-[ 2] = { 3, TD|TF, SEN(open), "open" },
+[ 2] = { 3, TD|TF|TO, SEN(open), "open" },
[ 3] = { 1, TD, SEN(close), "close" },
[ 4] = { 2, TF|TST|TSTA, SEN(stat), "stat" },
[ 5] = { 2, TD|TFST|TSTA, SEN(fstat), "fstat" },
@@ -90,7 +90,7 @@
[ 82] = { 2, TF, SEN(rename), "rename" },
[ 83] = { 2, TF, SEN(mkdir), "mkdir" },
[ 84] = { 1, TF, SEN(rmdir), "rmdir" },
-[ 85] = { 2, TD|TF, SEN(creat), "creat" },
+[ 85] = { 2, TD|TF|TO, SEN(creat), "creat" },
[ 86] = { 2, TF, SEN(link), "link" },
[ 87] = { 1, TF, SEN(unlink), "unlink" },
[ 88] = { 2, TF, SEN(symlink), "symlink" },
@@ -262,7 +262,7 @@
[254] = { 3, TD|TF, SEN(inotify_add_watch), "inotify_add_watch" },
[255] = { 2, TD, SEN(inotify_rm_watch), "inotify_rm_watch" },
[256] = { 4, TM, SEN(migrate_pages), "migrate_pages" },
-[257] = { 4, TD|TF, SEN(openat), "openat" },
+[257] = { 4, TD|TF|TO, SEN(openat), "openat" },
[258] = { 3, TD|TF, SEN(mkdirat), "mkdirat" },
[259] = { 4, TD|TF, SEN(mknodat), "mknodat" },
[260] = { 5, TD|TF, SEN(fchownat), "fchownat" },
@@ -309,7 +309,7 @@
[301] = { 5, TD|TF, SEN(fanotify_mark), "fanotify_mark" },
[302] = { 4, 0, SEN(prlimit64), "prlimit64" },
[303] = { 5, TD|TF, SEN(name_to_handle_at), "name_to_handle_at" },
-[304] = { 3, TD, SEN(open_by_handle_at), "open_by_handle_at" },
+[304] = { 3, TD|TO, SEN(open_by_handle_at), "open_by_handle_at" },
[305] = { 2, TCL, SEN(clock_adjtime64), "clock_adjtime" },
[306] = { 1, TD, SEN(syncfs), "syncfs" },
[307] = { 4, TN, SEN(printargs), "sendmmsg#64" },
diff --git a/src/linux/x86_64/syscallent.h b/src/linux/x86_64/syscallent.h
index 9fd1e3f22..56eae3627 100644
--- a/src/linux/x86_64/syscallent.h
+++ b/src/linux/x86_64/syscallent.h
@@ -7,7 +7,7 @@
[ 0] = { 3, TD, SEN(read), "read" },
[ 1] = { 3, TD, SEN(write), "write" },
-[ 2] = { 3, TD|TF, SEN(open), "open" },
+[ 2] = { 3, TD|TF|TO, SEN(open), "open" },
[ 3] = { 1, TD, SEN(close), "close" },
[ 4] = { 2, TF|TST|TSTA, SEN(stat), "stat" },
[ 5] = { 2, TD|TFST|TSTA, SEN(fstat), "fstat" },
@@ -90,7 +90,7 @@
[ 82] = { 2, TF, SEN(rename), "rename" },
[ 83] = { 2, TF, SEN(mkdir), "mkdir" },
[ 84] = { 1, TF, SEN(rmdir), "rmdir" },
-[ 85] = { 2, TD|TF, SEN(creat), "creat" },
+[ 85] = { 2, TD|TF|TO, SEN(creat), "creat" },
[ 86] = { 2, TF, SEN(link), "link" },
[ 87] = { 1, TF, SEN(unlink), "unlink" },
[ 88] = { 2, TF, SEN(symlink), "symlink" },
@@ -262,7 +262,7 @@
[254] = { 3, TD|TF, SEN(inotify_add_watch), "inotify_add_watch" },
[255] = { 2, TD, SEN(inotify_rm_watch), "inotify_rm_watch" },
[256] = { 4, TM, SEN(migrate_pages), "migrate_pages" },
-[257] = { 4, TD|TF, SEN(openat), "openat" },
+[257] = { 4, TD|TF|TO, SEN(openat), "openat" },
[258] = { 3, TD|TF, SEN(mkdirat), "mkdirat" },
[259] = { 4, TD|TF, SEN(mknodat), "mknodat" },
[260] = { 5, TD|TF, SEN(fchownat), "fchownat" },
@@ -309,7 +309,7 @@
[301] = { 5, TD|TF, SEN(fanotify_mark), "fanotify_mark" },
[302] = { 4, 0, SEN(prlimit64), "prlimit64" },
[303] = { 5, TD|TF, SEN(name_to_handle_at), "name_to_handle_at" },
-[304] = { 3, TD, SEN(open_by_handle_at), "open_by_handle_at" },
+[304] = { 3, TD|TO, SEN(open_by_handle_at), "open_by_handle_at" },
[305] = { 2, TCL, SEN(clock_adjtime64), "clock_adjtime" },
[306] = { 1, TD, SEN(syncfs), "syncfs" },
[307] = { 4, TN, SEN(sendmmsg), "sendmmsg" },
diff --git a/src/linux/xtensa/syscallent.h b/src/linux/xtensa/syscallent.h
index 09fed329c..d1502f763 100644
--- a/src/linux/xtensa/syscallent.h
+++ b/src/linux/xtensa/syscallent.h
@@ -8,7 +8,7 @@
[ 0] = { 0, 0, SEN(printargs), "spill" },
[ 1] = { 0, 0, SEN(printargs), "xtensa" },
[ 2 ... 7] = { },
-[ 8] = { 3, TD|TF, SEN(open), "open" },
+[ 8] = { 3, TD|TF|TO, SEN(open), "open" },
[ 9] = { 1, TD, SEN(close), "close" },
[ 10] = { 1, TD, SEN(dup), "dup" },
[ 11] = { 2, TD, SEN(dup2), "dup2" },
@@ -21,7 +21,7 @@
[ 18] = { 4, TD, SEN(epoll_wait), "epoll_wait" },
[ 19] = { 4, TD, SEN(epoll_ctl), "epoll_ctl" },
[ 20] = { 1, TD, SEN(epoll_create), "epoll_create" },
-[ 21] = { 2, TD|TF, SEN(creat), "creat" },
+[ 21] = { 2, TD|TF|TO, SEN(creat), "creat" },
[ 22] = { 2, TF, SEN(truncate), "truncate" },
[ 23] = { 2, TD, SEN(ftruncate), "ftruncate" },
[ 24] = { 3, TD, SEN(readv), "readv" },
@@ -284,7 +284,7 @@
[284] = { 2, 0, SEN(set_robust_list), "set_robust_list" },
[285] = { 3, 0, SEN(get_robust_list), "get_robust_list" },
[286 ... 287] = { },
-[288] = { 4, TD|TF, SEN(openat), "openat" },
+[288] = { 4, TD|TF|TO, SEN(openat), "openat" },
[289] = { 3, TD|TF, SEN(mkdirat), "mkdirat" },
[290] = { 4, TD|TF, SEN(mknodat), "mknodat" },
[291] = { 3, TD|TF, SEN(unlinkat), "unlinkat" },
@@ -320,7 +320,7 @@
[322] = { 6, 0, SEN(process_vm_readv), "process_vm_readv" },
[323] = { 6, 0, SEN(process_vm_writev), "process_vm_writev" },
[324] = { 5, TD|TF, SEN(name_to_handle_at), "name_to_handle_at" },
-[325] = { 3, TD, SEN(open_by_handle_at), "open_by_handle_at" },
+[325] = { 3, TD|TO, SEN(open_by_handle_at), "open_by_handle_at" },
[326] = { 6, TD, SEN(sync_file_range2), "sync_file_range2" },
[327] = { 5, TD, SEN(perf_event_open), "perf_event_open" },
[328] = { 4, TP|TS, SEN(rt_tgsigqueueinfo), "rt_tgsigqueueinfo" },
diff --git a/src/strace.c b/src/strace.c
index 21b693d02..bf3be8e7d 100644
--- a/src/strace.c
+++ b/src/strace.c
@@ -328,7 +328,7 @@ Filtering:\n\
trace only specified syscalls.\n\
groups: %%clock, %%creds, %%desc, %%file, %%fstat, %%fstatfs %%ipc, %%lstat,\n\
%%memory, %%net, %%process, %%pure, %%signal, %%stat, %%%%stat,\n\
- %%statfs, %%%%statfs\n\
+ %%statfs, %%%%statfs, %%open\n\
-e signal=SET, --signal=SET\n\
trace only the specified set of signals\n\
print only the signals from SET\n\
diff --git a/src/sysent.h b/src/sysent.h
index a551db8d5..05e1fca4e 100644
--- a/src/sysent.h
+++ b/src/sysent.h
@@ -18,29 +18,30 @@ typedef struct sysent {
const char *sys_name;
} struct_sysent;
-# define TRACE_FILE 000000001 /* Trace file-related syscalls. */
-# define TRACE_IPC 000000002 /* Trace IPC-related syscalls. */
-# define TRACE_NETWORK 000000004 /* Trace network-related syscalls. */
-# define TRACE_PROCESS 000000010 /* Trace process-related syscalls. */
-# define TRACE_SIGNAL 000000020 /* Trace signal-related syscalls. */
-# define TRACE_DESC 000000040 /* Trace file descriptor-related syscalls. */
-# define TRACE_MEMORY 000000100 /* Trace memory mapping-related syscalls. */
-# define SYSCALL_NEVER_FAILS 000000200 /* Syscall is always successful. */
-# define MEMORY_MAPPING_CHANGE 000000400 /* Trigger proc/maps cache updating */
-# define STACKTRACE_CAPTURE_ON_ENTER 000001000 /* Capture stacktrace on "entering" stage */
-# define TRACE_INDIRECT_SUBCALL 000002000 /* Syscall is an indirect socket/ipc subcall. */
-# define COMPAT_SYSCALL_TYPES 000004000 /* A compat syscall that uses compat types. */
-# define TRACE_STAT 000010000 /* Trace {,*_}{,old}{,x}stat{,64} syscalls. */
-# define TRACE_LSTAT 000020000 /* Trace *lstat* syscalls. */
-# define TRACE_STATFS 000040000 /* Trace statfs, statfs64, and statvfs syscalls. */
-# define TRACE_FSTATFS 000100000 /* Trace fstatfs, fstatfs64 and fstatvfs syscalls. */
-# define TRACE_STATFS_LIKE 000200000 /* Trace statfs-like, fstatfs-like and ustat syscalls. */
-# define TRACE_FSTAT 000400000 /* Trace *fstat{,at}{,64} syscalls. */
-# define TRACE_STAT_LIKE 001000000 /* Trace *{,l,f}stat{,x,at}{,64} syscalls. */
-# define TRACE_PURE 002000000 /* Trace getter syscalls with no arguments. */
-# define TRACE_SECCOMP_DEFAULT 004000000 /* Syscall is traced by seccomp filter by default. */
-# define TRACE_CREDS 010000000 /* Trace process credentials-related syscalls. */
-# define TRACE_CLOCK 020000000 /* Trace syscalls reading or modifying system clocks. */
-# define COMM_CHANGE 040000000 /* Trigger /proc/$pid/comm cache update. */
+# define TRACE_FILE 0000000001 /* Trace file-related syscalls. */
+# define TRACE_IPC 0000000002 /* Trace IPC-related syscalls. */
+# define TRACE_NETWORK 0000000004 /* Trace network-related syscalls. */
+# define TRACE_PROCESS 0000000010 /* Trace process-related syscalls. */
+# define TRACE_SIGNAL 0000000020 /* Trace signal-related syscalls. */
+# define TRACE_DESC 0000000040 /* Trace file descriptor-related syscalls. */
+# define TRACE_MEMORY 0000000100 /* Trace memory mapping-related syscalls. */
+# define SYSCALL_NEVER_FAILS 0000000200 /* Syscall is always successful. */
+# define MEMORY_MAPPING_CHANGE 0000000400 /* Trigger proc/maps cache updating */
+# define STACKTRACE_CAPTURE_ON_ENTER 0000001000 /* Capture stacktrace on "entering" stage */
+# define TRACE_INDIRECT_SUBCALL 0000002000 /* Syscall is an indirect socket/ipc subcall. */
+# define COMPAT_SYSCALL_TYPES 0000004000 /* A compat syscall that uses compat types. */
+# define TRACE_STAT 0000010000 /* Trace {,*_}{,old}{,x}stat{,64} syscalls. */
+# define TRACE_LSTAT 0000020000 /* Trace *lstat* syscalls. */
+# define TRACE_STATFS 0000040000 /* Trace statfs, statfs64, and statvfs syscalls. */
+# define TRACE_FSTATFS 0000100000 /* Trace fstatfs, fstatfs64 and fstatvfs syscalls. */
+# define TRACE_STATFS_LIKE 0000200000 /* Trace statfs-like, fstatfs-like and ustat syscalls. */
+# define TRACE_FSTAT 0000400000 /* Trace *fstat{,at}{,64} syscalls. */
+# define TRACE_STAT_LIKE 0001000000 /* Trace *{,l,f}stat{,x,at}{,64} syscalls. */
+# define TRACE_PURE 0002000000 /* Trace getter syscalls with no arguments. */
+# define TRACE_SECCOMP_DEFAULT 0004000000 /* Syscall is traced by seccomp filter by default. */
+# define TRACE_CREDS 0010000000 /* Trace process credentials-related syscalls. */
+# define TRACE_CLOCK 0020000000 /* Trace syscalls reading or modifying system clocks. */
+# define COMM_CHANGE 0040000000 /* Trigger /proc/$pid/comm cache update. */
+# define TRACE_OPEN 0100000000 /* Trace open, openat and creat syscalls */
#endif /* !STRACE_SYSENT_H */
diff --git a/src/sysent_shorthand_defs.h b/src/sysent_shorthand_defs.h
index 4cf65342a..952b8f3f8 100644
--- a/src/sysent_shorthand_defs.h
+++ b/src/sysent_shorthand_defs.h
@@ -30,6 +30,7 @@
# define TSD 0
# define TC 0
# define TCL 0
+# define TO 0
# define CC 0
# define SEN(a) 0, 0
@@ -59,6 +60,7 @@
# define TC TRACE_CREDS
# define TCL TRACE_CLOCK
# define CC COMM_CHANGE
+# define TO TRACE_OPEN
/* SEN(a) is defined elsewhere */
#endif
diff --git a/src/sysent_shorthand_undefs.h b/src/sysent_shorthand_undefs.h
index b5ce3c6b2..7729eb44b 100644
--- a/src/sysent_shorthand_undefs.h
+++ b/src/sysent_shorthand_undefs.h
@@ -29,4 +29,5 @@
#undef TC
#undef TCL
#undef CC
+#undef TO
#undef SEN
--
2.34.1
More information about the Strace-devel
mailing list