Patched the changes that you have mentioned.
On Thu, Mar 16, 2017 at 7:45 AM, Dmitry V. Levin <l...@altlinux.org> wrote:
> On Thu, Mar 16, 2017 at 12:17:08AM +0530, Rishi Bhatt wrote:
> > linux/*/syscallent.h part is modified automatically by:
> >
> > git grep -Fl 'SEN(clock_' linux/ | xargs sed -i \
> > 's/0\(,[[:space:]]*SEN(clock_\)/TC\1/'
>
> I think TC is too short, let's use 3-letter abbreviations for new classes,
> e.g. TCL.
>
Done
> > * syscall.c: Alias TC to TRACE_CLOCK around syscallent.h inclusion.
> > * sysent.h (TRACE_CLOCK): New definition.
> > * qualify.c (lookup_class): Add TRACE_CLOCK for "%clock".
> > * strace.1 (.SS Filtering): Add information about %clock syscall
> class.
> > * linux/32/syscallent.h: Add TSC flag for sched_* sycalls.
>
> For sched_* sycalls? Really? When you do a cut-n-paste from commit
> 811638e9c1805438a63c14f9704b8b00ac922623, please do not copy its typos.
>
> Sorry,won't happen again.
noted.
> > * 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/crisv10/syscallent.h: Likewise.
> > * linux/hppa/syscallent.h: Likewise.
> > * linux/i386/syscallent.h: Likewise.
> > * linux/ia64/syscallent.h: Likewise.
> > * linux/m68k/syscallent.h: Likewise.
> > * linux/microblaze/syscallent.h: Likewise.
> > * linux/mips/syscallent-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.
> > * tests/Makefile.am (DECODER_TESTS): Add clock.test.
> > * tests/ksysent.c: Define TC to 0.
> > * tests/nsyscalls.c: Define TC to 0
>
> Use "Likewise".
>
> > * tests/clock.test: New test.
>
> The idiom is
> * tests/clock.test: New test.
> * tests/Makefile.am (DECODER_TESTS): Add it.
>
> [...]
> > --- a/strace.1
> > +++ b/strace.1
> > @@ -429,6 +429,9 @@ Trace all memory mapping related system calls.
> > .BR "\-e\ trace" = %sched
> > Trace all scheduler-related (sched_*) system calls.
> > .TP
> > +.BR "\-e\ trace" = %clock
> > +Trace all clock-related (clock_*) system calls
>
> Please terminate sentences.
>
> > +.TP
> > \fB\-e\ abbrev\fR=\,\fIset\fR
> > Abbreviate the output from printing each member of large structures.
> > The default is
> > diff --git a/syscall.c b/syscall.c
> > index 569055f2..c7980c40 100644
> > --- a/syscall.c
> > +++ b/syscall.c
> > @@ -77,6 +77,7 @@
> > #define TS TRACE_SIGNAL
> > #define TM TRACE_MEMORY
> > #define TSC TRACE_SCHED
> > +#define TC TRACE_CLOCK
> > #define NF SYSCALL_NEVER_FAILS
> > #define MA MAX_ARGS
> > #define SI STACKTRACE_INVALIDATE_CACHE
> > @@ -113,6 +114,7 @@ static const struct_sysent sysent2[] = {
> > #undef TS
> > #undef TM
> > #undef TSC
> > +#undef TC
> > #undef NF
> > #undef MA
> > #undef SI
> > diff --git a/sysent.h b/sysent.h
> > index f4eaa930..7e95ab3a 100644
> > --- a/sysent.h
> > +++ b/sysent.h
> > @@ -22,5 +22,5 @@ typedef struct sysent {
> > #define TRACE_INDIRECT_SUBCALL 02000 /* Syscall is an indirect
> socket/ipc subcall. */
> > #define COMPAT_SYSCALL_TYPES 04000 /* A compat syscall that uses
> compat types. */
> > #define TRACE_SCHED 010000 /* Trace scheduler-related
> syscalls. */
> > -
> > +#define TRACE_CLOCK 020000 /*Trace clock-related syscalls. */
>
> Why removing the empty line.
> i didn't get it?
> > #endif /* !STRACE_SYSENT_H */
> > diff --git a/tests/Makefile.am b/tests/Makefile.am
> > index c5c124c0..7a22d421 100644
> > --- a/tests/Makefile.am
> > +++ b/tests/Makefile.am
> > @@ -503,6 +503,7 @@ DECODER_TESTS = \
> > chown.test \
> > chown32.test \
> > chroot.test \
> > + clock.test \
> > clock_adjtime.test \
> > clock_nanosleep.test \
> > clock_xettime.test \
> > diff --git a/tests/clock.test b/tests/clock.test
> > new file mode 100755
> > index 00000000..8e3e1bd2
> > --- /dev/null
> > +++ b/tests/clock.test
> > @@ -0,0 +1,41 @@
> > +#!/bin/sh
> > +# Check -e trace=%clock option
>
> Please terminate sentences.
>
> This file is modelled after tests/sched.test which has been changed
> yesterday, please rebase.
>
> Done
> > +# Positive Test cases.
> > +CLOCK_TESTS='40 clock_nanosleep
> > +37 clock_adjtime
> > +36 clock_xettime'
> > +
> > +# Negative Test Cases.
> > +NON_CLOCK_TESTS='11 fchdir
> > +27 futex
> > +10 fsync'
> > +
> > +# Declaring the init.sh
> > +. "${srcdir=.}/init.sh"
> > +
> > +#
> > +# Tracing Clock_* related syscalls.
> > +#
> > +echo "$CLOCK_TESTS" | while read w i
> > +do
> > + run_prog ./$i > /dev/null
> > + run_strace -a$w -e trace=%clock,setitimer ./$i > "$EXP"
> > + match_diff "$LOG" "$EXP"
> > +
> > +done
> > +
> > +echo '+++ exited with 0 +++' > "$EXP"
> > +#
> > +# Tracing NON_CLOCK related syscalls
> > +# /dev/null for ignoring print statements
> > +# from the executable.
>
> Everybody knows what /dev/null is for, no need to mention it.
>
>
> --
> ldv
>
> ------------------------------------------------------------
> ------------------
> 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
>
>
From 17d2c8b52ee2cd274a34b0ff4841a6beb38f724b Mon Sep 17 00:00:00 2001
From: Rishi Bhatt <bhatt.rishi...@gmail.com>
Date: Thu, 16 Mar 2017 14:41:55 +0530
Subject: [PATCH v3] Implemented -e trace=%clock option
linux/*/syscallent.h part is modified automatically by:
git grep -Fl 'SEN(clock_' linux/ | xargs sed -i \
's/0\(,[[:space:]]*SEN(clock_\)/TCL\1/'
* sysent.h (TRACE_CLOCK): New definition.
* syscall.c: Alias TCL to TRACE_CLOCK around syscallent.h inclusion.
* linux/32/syscallent.h: Add TCL flag for clock_* sycalls.
* 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/crisv10/syscallent.h: Likewise.
* linux/hppa/syscallent.h: Likewise.
* linux/i386/syscallent.h: Likewise.
* linux/ia64/syscallent.h: Likewise.
* linux/m68k/syscallent.h: Likewise.
* linux/microblaze/syscallent.h: Likewise.
* linux/mips/syscallent-n32.h: Likewise.
* linux/mips/syscallent-n64.h: Likewise.
* linux/mips/syscallent-o32.h: Likewise.
* linux/powerpc/syscallent.h: Likewise.
* linux/powerpc64/syscallent.h: Likewise.
* linux/s390/syscallent.h: Likewise.
* linux/s390x/syscallent.h: Likewise.
* linux/sh/syscallent.h: Likewise.
* linux/sh64/syscallent.h: Likewise.
* linux/sparc/syscallent.h: Likewise.
* linux/sparc64/syscallent.h: Likewise.
* linux/x32/syscallent.h: Likewise.
* linux/x86_64/syscallent.h: Likewise.
* linux/xtensa/syscallent.h: Likewise.
* qualify.c (lookup_class): Add TRACE_CLOCK for "%clock".
* tests/ksysent.c: Define TCL to 0.
* tests/nsyscalls.c: Likewise.
* tests/clock.test: New test.
* tests/Makefile.am (DECODER_TESTS): Add it.
* strace.1 (.SS Filtering): Add information about %clock syscall class.
---
linux/32/syscallent.h | 10 ++++-----
linux/64/syscallent.h | 10 ++++-----
linux/alpha/syscallent.h | 10 ++++-----
linux/arm/syscallent.h | 10 ++++-----
linux/avr32/syscallent.h | 10 ++++-----
linux/bfin/syscallent.h | 10 ++++-----
linux/crisv10/syscallent.h | 10 ++++-----
linux/hppa/syscallent.h | 10 ++++-----
linux/i386/syscallent.h | 10 ++++-----
linux/ia64/syscallent.h | 10 ++++-----
linux/m68k/syscallent.h | 10 ++++-----
linux/microblaze/syscallent.h | 10 ++++-----
linux/mips/syscallent-n32.h | 10 ++++-----
linux/mips/syscallent-n64.h | 10 ++++-----
linux/mips/syscallent-o32.h | 10 ++++-----
linux/powerpc/syscallent.h | 10 ++++-----
linux/powerpc64/syscallent.h | 10 ++++-----
linux/s390/syscallent.h | 10 ++++-----
linux/s390x/syscallent.h | 10 ++++-----
linux/sh/syscallent.h | 10 ++++-----
linux/sh64/syscallent.h | 10 ++++-----
linux/sparc/syscallent.h | 10 ++++-----
linux/sparc64/syscallent.h | 10 ++++-----
linux/x32/syscallent.h | 10 ++++-----
linux/x86_64/syscallent.h | 10 ++++-----
linux/xtensa/syscallent.h | 10 ++++-----
qualify.c | 1 +
strace.1 | 3 +++
syscall.c | 2 ++
sysent.h | 2 +-
tests/Makefile.am | 1 +
tests/clock.test | 48 +++++++++++++++++++++++++++++++++++++++++++
tests/ksysent.c | 1 +
tests/nsyscalls.c | 1 +
34 files changed, 188 insertions(+), 131 deletions(-)
create mode 100755 tests/clock.test
diff --git a/linux/32/syscallent.h b/linux/32/syscallent.h
index a8f95107..236ac10e 100644
--- a/linux/32/syscallent.h
+++ b/linux/32/syscallent.h
@@ -117,10 +117,10 @@
[109] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" },
[110] = { 4, 0, SEN(timer_settime), "timer_settime" },
[111] = { 1, 0, SEN(timer_delete), "timer_delete" },
-[112] = { 2, 0, SEN(clock_settime), "clock_settime" },
-[113] = { 2, 0, SEN(clock_gettime), "clock_gettime" },
-[114] = { 2, 0, SEN(clock_getres), "clock_getres" },
-[115] = { 4, 0, SEN(clock_nanosleep), "clock_nanosleep" },
+[112] = { 2, TCL, SEN(clock_settime), "clock_settime" },
+[113] = { 2, TCL, SEN(clock_gettime), "clock_gettime" },
+[114] = { 2, TCL, SEN(clock_getres), "clock_getres" },
+[115] = { 4, TCL, SEN(clock_nanosleep), "clock_nanosleep" },
[116] = { 3, 0, SEN(syslog), "syslog" },
[117] = { 4, 0, SEN(ptrace), "ptrace" },
[118] = { 2, TSC, SEN(sched_setparam), "sched_setparam" },
@@ -256,7 +256,7 @@
[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" },
-[266] = { 2, 0, SEN(clock_adjtime), "clock_adjtime" },
+[266] = { 2, TCL, SEN(clock_adjtime), "clock_adjtime" },
[267] = { 1, TD, SEN(syncfs), "syncfs" },
[268] = { 2, TD, SEN(setns), "setns" },
[269] = { 4, TN, SEN(sendmmsg), "sendmmsg" },
diff --git a/linux/64/syscallent.h b/linux/64/syscallent.h
index b5a09d4f..e263bb01 100644
--- a/linux/64/syscallent.h
+++ b/linux/64/syscallent.h
@@ -110,10 +110,10 @@
[109] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" },
[110] = { 4, 0, SEN(timer_settime), "timer_settime" },
[111] = { 1, 0, SEN(timer_delete), "timer_delete" },
-[112] = { 2, 0, SEN(clock_settime), "clock_settime" },
-[113] = { 2, 0, SEN(clock_gettime), "clock_gettime" },
-[114] = { 2, 0, SEN(clock_getres), "clock_getres" },
-[115] = { 4, 0, SEN(clock_nanosleep), "clock_nanosleep" },
+[112] = { 2, TCL, SEN(clock_settime), "clock_settime" },
+[113] = { 2, TCL, SEN(clock_gettime), "clock_gettime" },
+[114] = { 2, TCL, SEN(clock_getres), "clock_getres" },
+[115] = { 4, TCL, SEN(clock_nanosleep), "clock_nanosleep" },
[116] = { 3, 0, SEN(syslog), "syslog" },
[117] = { 4, 0, SEN(ptrace), "ptrace" },
[118] = { 2, TSC, SEN(sched_setparam), "sched_setparam" },
@@ -249,7 +249,7 @@
[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" },
-[266] = { 2, 0, SEN(clock_adjtime), "clock_adjtime" },
+[266] = { 2, TCL, SEN(clock_adjtime), "clock_adjtime" },
[267] = { 1, TD, SEN(syncfs), "syncfs" },
[268] = { 2, TD, SEN(setns), "setns" },
[269] = { 4, TN, SEN(sendmmsg), "sendmmsg" },
diff --git a/linux/alpha/syscallent.h b/linux/alpha/syscallent.h
index 4449f221..cd4745d6 100644
--- a/linux/alpha/syscallent.h
+++ b/linux/alpha/syscallent.h
@@ -381,10 +381,10 @@
[416] = { 2, 0, SEN(timer_gettime), "timer_gettime" },
[417] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" },
[418] = { 1, 0, SEN(timer_delete), "timer_delete" },
-[419] = { 2, 0, SEN(clock_settime), "clock_settime" },
-[420] = { 2, 0, SEN(clock_gettime), "clock_gettime" },
-[421] = { 2, 0, SEN(clock_getres), "clock_getres" },
-[422] = { 4, 0, SEN(clock_nanosleep), "clock_nanosleep" },
+[419] = { 2, TCL, SEN(clock_settime), "clock_settime" },
+[420] = { 2, TCL, SEN(clock_gettime), "clock_gettime" },
+[421] = { 2, TCL, SEN(clock_getres), "clock_getres" },
+[422] = { 4, TCL, SEN(clock_nanosleep), "clock_nanosleep" },
[423] = { 4, TI, SEN(semtimedop), "semtimedop" },
[424] = { 3, TS, SEN(tgkill), "tgkill" },
[425] = { 2, TF, SEN(stat64), "stat64" },
@@ -461,7 +461,7 @@
[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" },
-[499] = { 2, 0, SEN(clock_adjtime), "clock_adjtime" },
+[499] = { 2, TCL, SEN(clock_adjtime), "clock_adjtime" },
[500] = { 1, TD, SEN(syncfs), "syncfs" },
[501] = { 2, TD, SEN(setns), "setns" },
[502] = { 4, TN, SEN(accept4), "accept4" },
diff --git a/linux/arm/syscallent.h b/linux/arm/syscallent.h
index ed9ec9ad..6444e4ff 100644
--- a/linux/arm/syscallent.h
+++ b/linux/arm/syscallent.h
@@ -286,10 +286,10 @@
[259] = { 2, 0, SEN(timer_gettime), "timer_gettime" },
[260] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" },
[261] = { 1, 0, SEN(timer_delete), "timer_delete" },
-[262] = { 2, 0, SEN(clock_settime), "clock_settime" },
-[263] = { 2, 0, SEN(clock_gettime), "clock_gettime" },
-[264] = { 2, 0, SEN(clock_getres), "clock_getres" },
-[265] = { 4, 0, SEN(clock_nanosleep), "clock_nanosleep" },
+[262] = { 2, TCL, SEN(clock_settime), "clock_settime" },
+[263] = { 2, TCL, SEN(clock_gettime), "clock_gettime" },
+[264] = { 2, TCL, SEN(clock_getres), "clock_getres" },
+[265] = { 4, TCL, SEN(clock_nanosleep), "clock_nanosleep" },
[266] = { 3, TF, SEN(statfs64), "statfs64" },
[267] = { 3, TD, SEN(fstatfs64), "fstatfs64" },
[268] = { 3, TS, SEN(tgkill), "tgkill" },
@@ -396,7 +396,7 @@
[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" },
-[372] = { 2, 0, SEN(clock_adjtime), "clock_adjtime" },
+[372] = { 2, TCL, SEN(clock_adjtime), "clock_adjtime" },
[373] = { 1, TD, SEN(syncfs), "syncfs" },
[374] = { 4, TN, SEN(sendmmsg), "sendmmsg" },
[375] = { 2, TD, SEN(setns), "setns" },
diff --git a/linux/avr32/syscallent.h b/linux/avr32/syscallent.h
index 7f50934b..84e409d1 100644
--- a/linux/avr32/syscallent.h
+++ b/linux/avr32/syscallent.h
@@ -240,10 +240,10 @@
[212] = { 2, 0, SEN(timer_gettime), "timer_gettime" },
[213] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" },
[214] = { 1, 0, SEN(timer_delete), "timer_delete" },
-[215] = { 2, 0, SEN(clock_settime), "clock_settime" },
-[216] = { 2, 0, SEN(clock_gettime), "clock_gettime" },
-[217] = { 2, 0, SEN(clock_getres), "clock_getres" },
-[218] = { 4, 0, SEN(clock_nanosleep), "clock_nanosleep" },
+[215] = { 2, TCL, SEN(clock_settime), "clock_settime" },
+[216] = { 2, TCL, SEN(clock_gettime), "clock_gettime" },
+[217] = { 2, TCL, SEN(clock_getres), "clock_getres" },
+[218] = { 4, TCL, SEN(clock_nanosleep), "clock_nanosleep" },
[219] = { 3, TF, SEN(statfs64), "statfs64" },
[220] = { 3, TD, SEN(fstatfs64), "fstatfs64" },
[221] = { 3, TS, SEN(tgkill), "tgkill" },
@@ -331,7 +331,7 @@
[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" },
-[306] = { 2, 0, SEN(clock_adjtime), "clock_adjtime" },
+[306] = { 2, TCL, SEN(clock_adjtime), "clock_adjtime" },
[307] = { 1, TD, SEN(syncfs), "syncfs" },
[308] = { 4, TN, SEN(sendmmsg), "sendmmsg" },
[309] = { 6, 0, SEN(process_vm_readv), "process_vm_readv" },
diff --git a/linux/bfin/syscallent.h b/linux/bfin/syscallent.h
index 800b943b..83e49c20 100644
--- a/linux/bfin/syscallent.h
+++ b/linux/bfin/syscallent.h
@@ -290,10 +290,10 @@
[262] = { 2, 0, SEN(timer_gettime), "timer_gettime" },
[263] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" },
[264] = { 1, 0, SEN(timer_delete), "timer_delete" },
-[265] = { 2, 0, SEN(clock_settime), "clock_settime" },
-[266] = { 2, 0, SEN(clock_gettime), "clock_gettime" },
-[267] = { 2, 0, SEN(clock_getres), "clock_getres" },
-[268] = { 4, 0, SEN(clock_nanosleep), "clock_nanosleep" },
+[265] = { 2, TCL, SEN(clock_settime), "clock_settime" },
+[266] = { 2, TCL, SEN(clock_gettime), "clock_gettime" },
+[267] = { 2, TCL, SEN(clock_getres), "clock_getres" },
+[268] = { 4, TCL, SEN(clock_nanosleep), "clock_nanosleep" },
[269] = { 3, TF, SEN(statfs64), "statfs64" },
[270] = { 3, TD, SEN(fstatfs64), "fstatfs64" },
[271] = { 3, TS, SEN(tgkill), "tgkill" },
@@ -402,7 +402,7 @@
[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" },
-[377] = { 2, 0, SEN(clock_adjtime), "clock_adjtime" },
+[377] = { 2, TCL, SEN(clock_adjtime), "clock_adjtime" },
[378] = { 1, TD, SEN(syncfs), "syncfs" },
[379] = { 2, TD, SEN(setns), "setns" },
[380] = { 4, TN, SEN(sendmmsg), "sendmmsg" },
diff --git a/linux/crisv10/syscallent.h b/linux/crisv10/syscallent.h
index 96fb6bd0..a66792d0 100644
--- a/linux/crisv10/syscallent.h
+++ b/linux/crisv10/syscallent.h
@@ -258,10 +258,10 @@
[261] = { 2, 0, SEN(timer_gettime), "timer_gettime" },
[262] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" },
[263] = { 1, 0, SEN(timer_delete), "timer_delete" },
-[264] = { 2, 0, SEN(clock_settime), "clock_settime" },
-[265] = { 2, 0, SEN(clock_gettime), "clock_gettime" },
-[266] = { 2, 0, SEN(clock_getres), "clock_getres" },
-[267] = { 4, 0, SEN(clock_nanosleep), "clock_nanosleep" },
+[264] = { 2, TCL, SEN(clock_settime), "clock_settime" },
+[265] = { 2, TCL, SEN(clock_gettime), "clock_gettime" },
+[266] = { 2, TCL, SEN(clock_getres), "clock_getres" },
+[267] = { 4, TCL, SEN(clock_nanosleep), "clock_nanosleep" },
[268] = { 3, TF, SEN(statfs64), "statfs64" },
[269] = { 3, TD, SEN(fstatfs64), "fstatfs64" },
[270] = { 3, TS, SEN(tgkill), "tgkill" },
@@ -338,7 +338,7 @@
[342] = { 2, TD, SEN(fanotify_init), "fanotify_init" },
[343] = { 6, TD|TF, SEN(fanotify_mark), "fanotify_mark" },
[344] = { 4, 0, SEN(prlimit64), "prlimit64" },
-[345] = { 2, 0, SEN(clock_adjtime), "clock_adjtime" },
+[345] = { 2, TCL, SEN(clock_adjtime), "clock_adjtime" },
[346] = { 1, TD, SEN(syncfs), "syncfs" },
[347] = { 4, TN, SEN(sendmmsg), "sendmmsg" },
[348] = { 6, 0, SEN(process_vm_readv), "process_vm_readv" },
diff --git a/linux/hppa/syscallent.h b/linux/hppa/syscallent.h
index f59ea571..f95944d2 100644
--- a/linux/hppa/syscallent.h
+++ b/linux/hppa/syscallent.h
@@ -257,10 +257,10 @@
[252] = { 2, 0, SEN(timer_gettime), "timer_gettime" },
[253] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" },
[254] = { 1, 0, SEN(timer_delete), "timer_delete" },
-[255] = { 2, 0, SEN(clock_settime), "clock_settime" },
-[256] = { 2, 0, SEN(clock_gettime), "clock_gettime" },
-[257] = { 2, 0, SEN(clock_getres), "clock_getres" },
-[258] = { 4, 0, SEN(clock_nanosleep), "clock_nanosleep" },
+[255] = { 2, TCL, SEN(clock_settime), "clock_settime" },
+[256] = { 2, TCL, SEN(clock_gettime), "clock_gettime" },
+[257] = { 2, TCL, SEN(clock_getres), "clock_getres" },
+[258] = { 4, TCL, SEN(clock_nanosleep), "clock_nanosleep" },
[259] = { 3, TS, SEN(tgkill), "tgkill" },
[260] = { 6, TM, SEN(mbind), "mbind" },
[261] = { 5, TM, SEN(get_mempolicy), "get_mempolicy" },
@@ -326,7 +326,7 @@
[321] = { 4, 0, SEN(prlimit64), "prlimit64" },
[322] = { 2, TD, SEN(fanotify_init), "fanotify_init" },
[323] = { 6, TD|TF, SEN(fanotify_mark), "fanotify_mark" },
-[324] = { 2, 0, SEN(clock_adjtime), "clock_adjtime" },
+[324] = { 2, TCL, SEN(clock_adjtime), "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" },
[327] = { 1, TD, SEN(syncfs), "syncfs" },
diff --git a/linux/i386/syscallent.h b/linux/i386/syscallent.h
index 8ef1b1cd..5b1b1605 100644
--- a/linux/i386/syscallent.h
+++ b/linux/i386/syscallent.h
@@ -289,10 +289,10 @@
[261] = { 2, 0, SEN(timer_gettime), "timer_gettime" },
[262] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" },
[263] = { 1, 0, SEN(timer_delete), "timer_delete" },
-[264] = { 2, 0, SEN(clock_settime), "clock_settime" },
-[265] = { 2, 0, SEN(clock_gettime), "clock_gettime" },
-[266] = { 2, 0, SEN(clock_getres), "clock_getres" },
-[267] = { 4, 0, SEN(clock_nanosleep), "clock_nanosleep" },
+[264] = { 2, TCL, SEN(clock_settime), "clock_settime" },
+[265] = { 2, TCL, SEN(clock_gettime), "clock_gettime" },
+[266] = { 2, TCL, SEN(clock_getres), "clock_getres" },
+[267] = { 4, TCL, SEN(clock_nanosleep), "clock_nanosleep" },
[268] = { 3, TF, SEN(statfs64), "statfs64" },
[269] = { 3, TD, SEN(fstatfs64), "fstatfs64" },
[270] = { 3, TS, SEN(tgkill), "tgkill" },
@@ -368,7 +368,7 @@
[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" },
-[343] = { 2, 0, SEN(clock_adjtime), "clock_adjtime" },
+[343] = { 2, TCL, SEN(clock_adjtime), "clock_adjtime" },
[344] = { 1, TD, SEN(syncfs), "syncfs" },
[345] = { 4, TN, SEN(sendmmsg), "sendmmsg" },
[346] = { 2, TD, SEN(setns), "setns" },
diff --git a/linux/ia64/syscallent.h b/linux/ia64/syscallent.h
index 47b71d6a..c226bc6e 100644
--- a/linux/ia64/syscallent.h
+++ b/linux/ia64/syscallent.h
@@ -270,10 +270,10 @@
[1250] = { 2, 0, SEN(timer_gettime), "timer_gettime" },
[1251] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" },
[1252] = { 1, 0, SEN(timer_delete), "timer_delete" },
-[1253] = { 2, 0, SEN(clock_settime), "clock_settime" },
-[1254] = { 2, 0, SEN(clock_gettime), "clock_gettime" },
-[1255] = { 2, 0, SEN(clock_getres), "clock_getres" },
-[1256] = { 4, 0, SEN(clock_nanosleep), "clock_nanosleep" },
+[1253] = { 2, TCL, SEN(clock_settime), "clock_settime" },
+[1254] = { 2, TCL, SEN(clock_gettime), "clock_gettime" },
+[1255] = { 2, TCL, SEN(clock_getres), "clock_getres" },
+[1256] = { 4, TCL, SEN(clock_nanosleep), "clock_nanosleep" },
[1257] = { 3, TD, SEN(fstatfs64), "fstatfs64" },
[1258] = { 3, TF, SEN(statfs64), "statfs64" },
[1259] = { 6, TM, SEN(mbind), "mbind" },
@@ -345,7 +345,7 @@
[1325] = { 4, 0, SEN(prlimit64), "prlimit64" },
[1326] = { 5, TD|TF, SEN(name_to_handle_at), "name_to_handle_at" },
[1327] = { 3, TD, SEN(open_by_handle_at), "open_by_handle_at" },
-[1328] = { 2, 0, SEN(clock_adjtime), "clock_adjtime" },
+[1328] = { 2, TCL, SEN(clock_adjtime), "clock_adjtime" },
[1329] = { 1, TD, SEN(syncfs), "syncfs" },
[1330] = { 2, TD, SEN(setns), "setns" },
[1331] = { 4, TN, SEN(sendmmsg), "sendmmsg" },
diff --git a/linux/m68k/syscallent.h b/linux/m68k/syscallent.h
index 8e7dd97d..0364ab97 100644
--- a/linux/m68k/syscallent.h
+++ b/linux/m68k/syscallent.h
@@ -284,10 +284,10 @@
[256] = { 2, 0, SEN(timer_gettime), "timer_gettime" },
[257] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" },
[258] = { 1, 0, SEN(timer_delete), "timer_delete" },
-[259] = { 2, 0, SEN(clock_settime), "clock_settime" },
-[260] = { 2, 0, SEN(clock_gettime), "clock_gettime" },
-[261] = { 2, 0, SEN(clock_getres), "clock_getres" },
-[262] = { 4, 0, SEN(clock_nanosleep), "clock_nanosleep" },
+[259] = { 2, TCL, SEN(clock_settime), "clock_settime" },
+[260] = { 2, TCL, SEN(clock_gettime), "clock_gettime" },
+[261] = { 2, TCL, SEN(clock_getres), "clock_getres" },
+[262] = { 4, TCL, SEN(clock_nanosleep), "clock_nanosleep" },
[263] = { 3, TF, SEN(statfs64), "statfs64" },
[264] = { 3, TD, SEN(fstatfs64), "fstatfs64" },
[265] = { 3, TS, SEN(tgkill), "tgkill" },
@@ -367,7 +367,7 @@
[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" },
-[342] = { 2, 0, SEN(clock_adjtime), "clock_adjtime" },
+[342] = { 2, TCL, SEN(clock_adjtime), "clock_adjtime" },
[343] = { 1, TD, SEN(syncfs), "syncfs" },
[344] = { 2, TD, SEN(setns), "setns" },
[345] = { 6, 0, SEN(process_vm_readv), "process_vm_readv" },
diff --git a/linux/microblaze/syscallent.h b/linux/microblaze/syscallent.h
index 2a59eb3d..e7cb98c5 100644
--- a/linux/microblaze/syscallent.h
+++ b/linux/microblaze/syscallent.h
@@ -289,10 +289,10 @@
[261] = { 2, 0, SEN(timer_gettime), "timer_gettime" },
[262] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" },
[263] = { 1, 0, SEN(timer_delete), "timer_delete" },
-[264] = { 2, 0, SEN(clock_settime), "clock_settime" },
-[265] = { 2, 0, SEN(clock_gettime), "clock_gettime" },
-[266] = { 2, 0, SEN(clock_getres), "clock_getres" },
-[267] = { 4, 0, SEN(clock_nanosleep), "clock_nanosleep" },
+[264] = { 2, TCL, SEN(clock_settime), "clock_settime" },
+[265] = { 2, TCL, SEN(clock_gettime), "clock_gettime" },
+[266] = { 2, TCL, SEN(clock_getres), "clock_getres" },
+[267] = { 4, TCL, SEN(clock_nanosleep), "clock_nanosleep" },
[268] = { 3, TF, SEN(statfs64), "statfs64" },
[269] = { 3, TD, SEN(fstatfs64), "fstatfs64" },
[270] = { 3, TS, SEN(tgkill), "tgkill" },
@@ -398,7 +398,7 @@
[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" },
-[373] = { 2, 0, SEN(clock_adjtime), "clock_adjtime" },
+[373] = { 2, TCL, SEN(clock_adjtime), "clock_adjtime" },
[374] = { 1, TD, SEN(syncfs), "syncfs" },
[375] = { 2, TD, SEN(setns), "setns" },
[376] = { 4, TN, SEN(sendmmsg), "sendmmsg" },
diff --git a/linux/mips/syscallent-n32.h b/linux/mips/syscallent-n32.h
index 052af4fa..bce788fb 100644
--- a/linux/mips/syscallent-n32.h
+++ b/linux/mips/syscallent-n32.h
@@ -225,10 +225,10 @@
[6222] = { 2, 0, SEN(timer_gettime), "timer_gettime" },
[6223] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" },
[6224] = { 1, 0, SEN(timer_delete), "timer_delete" },
-[6225] = { 2, 0, SEN(clock_settime), "clock_settime" },
-[6226] = { 2, 0, SEN(clock_gettime), "clock_gettime" },
-[6227] = { 2, 0, SEN(clock_getres), "clock_getres" },
-[6228] = { 4, 0, SEN(clock_nanosleep), "clock_nanosleep" },
+[6225] = { 2, TCL, SEN(clock_settime), "clock_settime" },
+[6226] = { 2, TCL, SEN(clock_gettime), "clock_gettime" },
+[6227] = { 2, TCL, SEN(clock_getres), "clock_getres" },
+[6228] = { 4, TCL, SEN(clock_nanosleep), "clock_nanosleep" },
[6229] = { 3, TS, SEN(tgkill), "tgkill" },
[6230] = { 2, TF, SEN(utimes), "utimes" },
[6231] = { 6, TM, SEN(mbind), "mbind" },
@@ -305,7 +305,7 @@
[6302] = { 4, 0, SEN(prlimit64), "prlimit64" },
[6303] = { 5, TD|TF, SEN(name_to_handle_at), "name_to_handle_at" },
[6304] = { 3, TD, SEN(open_by_handle_at), "open_by_handle_at" },
-[6305] = { 2, 0, SEN(clock_adjtime), "clock_adjtime" },
+[6305] = { 2, TCL, SEN(clock_adjtime), "clock_adjtime" },
[6306] = { 1, TD, SEN(syncfs), "syncfs" },
[6307] = { 4, TN, SEN(sendmmsg), "sendmmsg" },
[6308] = { 2, TD, SEN(setns), "setns" },
diff --git a/linux/mips/syscallent-n64.h b/linux/mips/syscallent-n64.h
index fdd778b4..37c20240 100644
--- a/linux/mips/syscallent-n64.h
+++ b/linux/mips/syscallent-n64.h
@@ -221,10 +221,10 @@
[5218] = { 2, 0, SEN(timer_gettime), "timer_gettime" },
[5219] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" },
[5220] = { 1, 0, SEN(timer_delete), "timer_delete" },
-[5221] = { 2, 0, SEN(clock_settime), "clock_settime" },
-[5222] = { 2, 0, SEN(clock_gettime), "clock_gettime" },
-[5223] = { 2, 0, SEN(clock_getres), "clock_getres" },
-[5224] = { 4, 0, SEN(clock_nanosleep), "clock_nanosleep" },
+[5221] = { 2, TCL, SEN(clock_settime), "clock_settime" },
+[5222] = { 2, TCL, SEN(clock_gettime), "clock_gettime" },
+[5223] = { 2, TCL, SEN(clock_getres), "clock_getres" },
+[5224] = { 4, TCL, SEN(clock_nanosleep), "clock_nanosleep" },
[5225] = { 3, TS, SEN(tgkill), "tgkill" },
[5226] = { 2, TF, SEN(utimes), "utimes" },
[5227] = { 6, TM, SEN(mbind), "mbind" },
@@ -300,7 +300,7 @@
[5297] = { 4, 0, SEN(prlimit64), "prlimit64" },
[5298] = { 5, TD|TF, SEN(name_to_handle_at), "name_to_handle_at" },
[5299] = { 3, TD, SEN(open_by_handle_at), "open_by_handle_at" },
-[5300] = { 2, 0, SEN(clock_adjtime), "clock_adjtime" },
+[5300] = { 2, TCL, SEN(clock_adjtime), "clock_adjtime" },
[5301] = { 1, TD, SEN(syncfs), "syncfs" },
[5302] = { 4, TN, SEN(sendmmsg), "sendmmsg" },
[5303] = { 2, TD, SEN(setns), "setns" },
diff --git a/linux/mips/syscallent-o32.h b/linux/mips/syscallent-o32.h
index 509a719a..4e5797ea 100644
--- a/linux/mips/syscallent-o32.h
+++ b/linux/mips/syscallent-o32.h
@@ -262,10 +262,10 @@
[4259] = { 2, 0, SEN(timer_gettime), "timer_gettime" },
[4260] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" },
[4261] = { 1, 0, SEN(timer_delete), "timer_delete" },
-[4262] = { 2, 0, SEN(clock_settime), "clock_settime" },
-[4263] = { 2, 0, SEN(clock_gettime), "clock_gettime" },
-[4264] = { 2, 0, SEN(clock_getres), "clock_getres" },
-[4265] = { 4, 0, SEN(clock_nanosleep), "clock_nanosleep" },
+[4262] = { 2, TCL, SEN(clock_settime), "clock_settime" },
+[4263] = { 2, TCL, SEN(clock_gettime), "clock_gettime" },
+[4264] = { 2, TCL, SEN(clock_getres), "clock_getres" },
+[4265] = { 4, TCL, SEN(clock_nanosleep), "clock_nanosleep" },
[4266] = { 3, TS, SEN(tgkill), "tgkill" },
[4267] = { 2, TF, SEN(utimes), "utimes" },
[4268] = { 6, TM, SEN(mbind), "mbind" },
@@ -341,7 +341,7 @@
[4338] = { 4, 0, SEN(prlimit64), "prlimit64" },
[4339] = { 5, TD|TF, SEN(name_to_handle_at), "name_to_handle_at" },
[4340] = { 3, TD, SEN(open_by_handle_at), "open_by_handle_at" },
-[4341] = { 2, 0, SEN(clock_adjtime), "clock_adjtime" },
+[4341] = { 2, TCL, SEN(clock_adjtime), "clock_adjtime" },
[4342] = { 1, TD, SEN(syncfs), "syncfs" },
[4343] = { 4, TN, SEN(sendmmsg), "sendmmsg" },
[4344] = { 2, TD, SEN(setns), "setns" },
diff --git a/linux/powerpc/syscallent.h b/linux/powerpc/syscallent.h
index 1431f8a9..86e3a3f6 100644
--- a/linux/powerpc/syscallent.h
+++ b/linux/powerpc/syscallent.h
@@ -271,10 +271,10 @@
[242] = { 2, 0, SEN(timer_gettime), "timer_gettime" },
[243] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" },
[244] = { 1, 0, SEN(timer_delete), "timer_delete" },
-[245] = { 2, 0, SEN(clock_settime), "clock_settime" },
-[246] = { 2, 0, SEN(clock_gettime), "clock_gettime" },
-[247] = { 2, 0, SEN(clock_getres), "clock_getres" },
-[248] = { 4, 0, SEN(clock_nanosleep), "clock_nanosleep" },
+[245] = { 2, TCL, SEN(clock_settime), "clock_settime" },
+[246] = { 2, TCL, SEN(clock_gettime), "clock_gettime" },
+[247] = { 2, TCL, SEN(clock_getres), "clock_getres" },
+[248] = { 4, TCL, SEN(clock_nanosleep), "clock_nanosleep" },
[249] = { 2, 0, SEN(printargs), "swapcontext" },
[250] = { 3, TS, SEN(tgkill), "tgkill" },
[251] = { 2, TF, SEN(utimes), "utimes" },
@@ -373,7 +373,7 @@
[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" },
-[347] = { 2, 0, SEN(clock_adjtime), "clock_adjtime" },
+[347] = { 2, TCL, SEN(clock_adjtime), "clock_adjtime" },
[348] = { 1, TD, SEN(syncfs), "syncfs" },
[349] = { 4, TN, SEN(sendmmsg), "sendmmsg" },
[350] = { 2, TD, SEN(setns), "setns" },
diff --git a/linux/powerpc64/syscallent.h b/linux/powerpc64/syscallent.h
index eae3b57b..77f91fa6 100644
--- a/linux/powerpc64/syscallent.h
+++ b/linux/powerpc64/syscallent.h
@@ -266,10 +266,10 @@
[242] = { 2, 0, SEN(timer_gettime), "timer_gettime" },
[243] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" },
[244] = { 1, 0, SEN(timer_delete), "timer_delete" },
-[245] = { 2, 0, SEN(clock_settime), "clock_settime" },
-[246] = { 2, 0, SEN(clock_gettime), "clock_gettime" },
-[247] = { 2, 0, SEN(clock_getres), "clock_getres" },
-[248] = { 4, 0, SEN(clock_nanosleep), "clock_nanosleep" },
+[245] = { 2, TCL, SEN(clock_settime), "clock_settime" },
+[246] = { 2, TCL, SEN(clock_gettime), "clock_gettime" },
+[247] = { 2, TCL, SEN(clock_getres), "clock_getres" },
+[248] = { 4, TCL, SEN(clock_nanosleep), "clock_nanosleep" },
[249] = { 2, 0, SEN(printargs), "swapcontext" },
[250] = { 3, TS, SEN(tgkill), "tgkill" },
[251] = { 2, TF, SEN(utimes), "utimes" },
@@ -368,7 +368,7 @@
[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" },
-[347] = { 2, 0, SEN(clock_adjtime), "clock_adjtime" },
+[347] = { 2, TCL, SEN(clock_adjtime), "clock_adjtime" },
[348] = { 1, TD, SEN(syncfs), "syncfs" },
[349] = { 4, TN, SEN(sendmmsg), "sendmmsg" },
[350] = { 2, TD, SEN(setns), "setns" },
diff --git a/linux/s390/syscallent.h b/linux/s390/syscallent.h
index 105e511e..3b5dc5b0 100644
--- a/linux/s390/syscallent.h
+++ b/linux/s390/syscallent.h
@@ -287,10 +287,10 @@
[256] = { 2, 0, SEN(timer_gettime), "timer_gettime" },
[257] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" },
[258] = { 1, 0, SEN(timer_delete), "timer_delete" },
-[259] = { 2, 0, SEN(clock_settime), "clock_settime" },
-[260] = { 2, 0, SEN(clock_gettime), "clock_gettime" },
-[261] = { 2, 0, SEN(clock_getres), "clock_getres" },
-[262] = { 4, 0, SEN(clock_nanosleep), "clock_nanosleep" },
+[259] = { 2, TCL, SEN(clock_settime), "clock_settime" },
+[260] = { 2, TCL, SEN(clock_gettime), "clock_gettime" },
+[261] = { 2, TCL, SEN(clock_getres), "clock_getres" },
+[262] = { 4, TCL, SEN(clock_nanosleep), "clock_nanosleep" },
[263] = { 5, 0, SEN(vserver), "vserver" },
[264] = { 6, TD, SEN(fadvise64_64), "fadvise64_64" },
[265] = { 3, TF, SEN(statfs64), "statfs64" },
@@ -365,7 +365,7 @@
[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" },
-[337] = { 2, 0, SEN(clock_adjtime), "clock_adjtime" },
+[337] = { 2, TCL, SEN(clock_adjtime), "clock_adjtime" },
[338] = { 1, TD, SEN(syncfs), "syncfs" },
[339] = { 2, TD, SEN(setns), "setns" },
[340] = { 6, 0, SEN(process_vm_readv), "process_vm_readv" },
diff --git a/linux/s390x/syscallent.h b/linux/s390x/syscallent.h
index d5b54590..0e82385a 100644
--- a/linux/s390x/syscallent.h
+++ b/linux/s390x/syscallent.h
@@ -271,10 +271,10 @@
[256] = { 2, 0, SEN(timer_gettime), "timer_gettime" },
[257] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" },
[258] = { 1, 0, SEN(timer_delete), "timer_delete" },
-[259] = { 2, 0, SEN(clock_settime), "clock_settime" },
-[260] = { 2, 0, SEN(clock_gettime), "clock_gettime" },
-[261] = { 2, 0, SEN(clock_getres), "clock_getres" },
-[262] = { 4, 0, SEN(clock_nanosleep), "clock_nanosleep" },
+[259] = { 2, TCL, SEN(clock_settime), "clock_settime" },
+[260] = { 2, TCL, SEN(clock_gettime), "clock_gettime" },
+[261] = { 2, TCL, SEN(clock_getres), "clock_getres" },
+[262] = { 4, TCL, SEN(clock_nanosleep), "clock_nanosleep" },
[263] = { 5, 0, SEN(vserver), "vserver" },
[264] = { },
[265] = { 3, TF, SEN(statfs64), "statfs64" },
@@ -349,7 +349,7 @@
[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" },
-[337] = { 2, 0, SEN(clock_adjtime), "clock_adjtime" },
+[337] = { 2, TCL, SEN(clock_adjtime), "clock_adjtime" },
[338] = { 1, TD, SEN(syncfs), "syncfs" },
[339] = { 2, TD, SEN(setns), "setns" },
[340] = { 6, 0, SEN(process_vm_readv), "process_vm_readv" },
diff --git a/linux/sh/syscallent.h b/linux/sh/syscallent.h
index 13884169..92ec4224 100644
--- a/linux/sh/syscallent.h
+++ b/linux/sh/syscallent.h
@@ -289,10 +289,10 @@
[261] = { 2, 0, SEN(timer_gettime), "timer_gettime" },
[262] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" },
[263] = { 1, 0, SEN(timer_delete), "timer_delete" },
-[264] = { 2, 0, SEN(clock_settime), "clock_settime" },
-[265] = { 2, 0, SEN(clock_gettime), "clock_gettime" },
-[266] = { 2, 0, SEN(clock_getres), "clock_getres" },
-[267] = { 4, 0, SEN(clock_nanosleep), "clock_nanosleep" },
+[264] = { 2, TCL, SEN(clock_settime), "clock_settime" },
+[265] = { 2, TCL, SEN(clock_gettime), "clock_gettime" },
+[266] = { 2, TCL, SEN(clock_getres), "clock_getres" },
+[267] = { 4, TCL, SEN(clock_nanosleep), "clock_nanosleep" },
[268] = { 3, TF, SEN(statfs64), "statfs64" },
[269] = { 3, TD, SEN(fstatfs64), "fstatfs64" },
[270] = { 3, TS, SEN(tgkill), "tgkill" },
@@ -386,7 +386,7 @@
[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" },
-[361] = { 2, 0, SEN(clock_adjtime), "clock_adjtime" },
+[361] = { 2, TCL, SEN(clock_adjtime), "clock_adjtime" },
[362] = { 1, TD, SEN(syncfs), "syncfs" },
[363] = { 4, TN, SEN(sendmmsg), "sendmmsg" },
[364] = { 2, TD, SEN(setns), "setns" },
diff --git a/linux/sh64/syscallent.h b/linux/sh64/syscallent.h
index e9351048..cf64fe4e 100644
--- a/linux/sh64/syscallent.h
+++ b/linux/sh64/syscallent.h
@@ -315,10 +315,10 @@
[289] = { 2, 0, SEN(timer_gettime), "timer_gettime" },
[290] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" },
[291] = { 1, 0, SEN(timer_delete), "timer_delete" },
-[292] = { 2, 0, SEN(clock_settime), "clock_settime" },
-[293] = { 2, 0, SEN(clock_gettime), "clock_gettime" },
-[294] = { 2, 0, SEN(clock_getres), "clock_getres" },
-[295] = { 4, 0, SEN(clock_nanosleep), "clock_nanosleep" },
+[292] = { 2, TCL, SEN(clock_settime), "clock_settime" },
+[293] = { 2, TCL, SEN(clock_gettime), "clock_gettime" },
+[294] = { 2, TCL, SEN(clock_getres), "clock_getres" },
+[295] = { 4, TCL, SEN(clock_nanosleep), "clock_nanosleep" },
[296] = { 3, TF, SEN(statfs64), "statfs64" },
[297] = { 3, TD, SEN(fstatfs64), "fstatfs64" },
[298] = { 3, TS, SEN(tgkill), "tgkill" },
@@ -395,7 +395,7 @@
[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" },
-[372] = { 2, 0, SEN(clock_adjtime), "clock_adjtime" },
+[372] = { 2, TCL, SEN(clock_adjtime), "clock_adjtime" },
[373] = { 1, TD, SEN(syncfs), "syncfs" },
[374] = { 4, TN, SEN(sendmmsg), "sendmmsg" },
[375] = { 2, TD, SEN(setns), "setns" },
diff --git a/linux/sparc/syscallent.h b/linux/sparc/syscallent.h
index 30d88193..3c3c9462 100644
--- a/linux/sparc/syscallent.h
+++ b/linux/sparc/syscallent.h
@@ -254,10 +254,10 @@
[253] = { 1, TD, SEN(fdatasync), "fdatasync" },
[254] = { 3, 0, SEN(nfsservctl), "nfsservctl" },
[255] = { 6, TD, SEN(sync_file_range), "sync_file_range" },
-[256] = { 2, 0, SEN(clock_settime), "clock_settime" },
-[257] = { 2, 0, SEN(clock_gettime), "clock_gettime" },
-[258] = { 2, 0, SEN(clock_getres), "clock_getres" },
-[259] = { 4, 0, SEN(clock_nanosleep), "clock_nanosleep" },
+[256] = { 2, TCL, SEN(clock_settime), "clock_settime" },
+[257] = { 2, TCL, SEN(clock_gettime), "clock_gettime" },
+[258] = { 2, TCL, SEN(clock_getres), "clock_getres" },
+[259] = { 4, TCL, SEN(clock_nanosleep), "clock_nanosleep" },
[260] = { 3, TSC, SEN(sched_getaffinity), "sched_getaffinity" },
[261] = { 3, TSC, SEN(sched_setaffinity), "sched_setaffinity" },
[262] = { 4, 0, SEN(timer_settime), "timer_settime" },
@@ -332,7 +332,7 @@
[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" },
-[334] = { 2, 0, SEN(clock_adjtime), "clock_adjtime" },
+[334] = { 2, TCL, SEN(clock_adjtime), "clock_adjtime" },
[335] = { 1, TD, SEN(syncfs), "syncfs" },
[336] = { 4, TN, SEN(sendmmsg), "sendmmsg" },
[337] = { 2, TD, SEN(setns), "setns" },
diff --git a/linux/sparc64/syscallent.h b/linux/sparc64/syscallent.h
index 1137a3e5..be6a3d99 100644
--- a/linux/sparc64/syscallent.h
+++ b/linux/sparc64/syscallent.h
@@ -252,10 +252,10 @@
[253] = { 1, TD, SEN(fdatasync), "fdatasync" },
[254] = { 3, 0, SEN(nfsservctl), "nfsservctl" },
[255] = { 4, TD, SEN(sync_file_range), "sync_file_range" },
-[256] = { 2, 0, SEN(clock_settime), "clock_settime" },
-[257] = { 2, 0, SEN(clock_gettime), "clock_gettime" },
-[258] = { 2, 0, SEN(clock_getres), "clock_getres" },
-[259] = { 4, 0, SEN(clock_nanosleep), "clock_nanosleep" },
+[256] = { 2, TCL, SEN(clock_settime), "clock_settime" },
+[257] = { 2, TCL, SEN(clock_gettime), "clock_gettime" },
+[258] = { 2, TCL, SEN(clock_getres), "clock_getres" },
+[259] = { 4, TCL, SEN(clock_nanosleep), "clock_nanosleep" },
[260] = { 3, TSC, SEN(sched_getaffinity), "sched_getaffinity" },
[261] = { 3, TSC, SEN(sched_setaffinity), "sched_setaffinity" },
[262] = { 4, 0, SEN(timer_settime), "timer_settime" },
@@ -330,7 +330,7 @@
[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" },
-[334] = { 2, 0, SEN(clock_adjtime), "clock_adjtime" },
+[334] = { 2, TCL, SEN(clock_adjtime), "clock_adjtime" },
[335] = { 1, TD, SEN(syncfs), "syncfs" },
[336] = { 4, TN, SEN(sendmmsg), "sendmmsg" },
[337] = { 2, TD, SEN(setns), "setns" },
diff --git a/linux/x32/syscallent.h b/linux/x32/syscallent.h
index 30a684a8..d0ec86fc 100644
--- a/linux/x32/syscallent.h
+++ b/linux/x32/syscallent.h
@@ -225,10 +225,10 @@
[224] = { 2, 0, SEN(timer_gettime), "timer_gettime" },
[225] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" },
[226] = { 1, 0, SEN(timer_delete), "timer_delete" },
-[227] = { 2, 0, SEN(clock_settime), "clock_settime" },
-[228] = { 2, 0, SEN(clock_gettime), "clock_gettime" },
-[229] = { 2, 0, SEN(clock_getres), "clock_getres" },
-[230] = { 4, 0, SEN(clock_nanosleep), "clock_nanosleep" },
+[227] = { 2, TCL, SEN(clock_settime), "clock_settime" },
+[228] = { 2, TCL, SEN(clock_gettime), "clock_gettime" },
+[229] = { 2, TCL, SEN(clock_getres), "clock_getres" },
+[230] = { 4, TCL, SEN(clock_nanosleep), "clock_nanosleep" },
[231] = { 1, TP|SE, SEN(exit), "exit_group" },
[232] = { 4, TD, SEN(epoll_wait), "epoll_wait" },
[233] = { 4, TD, SEN(epoll_ctl), "epoll_ctl" },
@@ -303,7 +303,7 @@
[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" },
-[305] = { 2, 0, SEN(clock_adjtime), "clock_adjtime" },
+[305] = { 2, TCL, SEN(clock_adjtime), "clock_adjtime" },
[306] = { 1, TD, SEN(syncfs), "syncfs" },
[307] = { 4, TN, SEN(printargs), "64:sendmmsg" },
[308] = { 2, TD, SEN(setns), "setns" },
diff --git a/linux/x86_64/syscallent.h b/linux/x86_64/syscallent.h
index 62960d21..86e86f1b 100644
--- a/linux/x86_64/syscallent.h
+++ b/linux/x86_64/syscallent.h
@@ -225,10 +225,10 @@
[224] = { 2, 0, SEN(timer_gettime), "timer_gettime" },
[225] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" },
[226] = { 1, 0, SEN(timer_delete), "timer_delete" },
-[227] = { 2, 0, SEN(clock_settime), "clock_settime" },
-[228] = { 2, 0, SEN(clock_gettime), "clock_gettime" },
-[229] = { 2, 0, SEN(clock_getres), "clock_getres" },
-[230] = { 4, 0, SEN(clock_nanosleep), "clock_nanosleep" },
+[227] = { 2, TCL, SEN(clock_settime), "clock_settime" },
+[228] = { 2, TCL, SEN(clock_gettime), "clock_gettime" },
+[229] = { 2, TCL, SEN(clock_getres), "clock_getres" },
+[230] = { 4, TCL, SEN(clock_nanosleep), "clock_nanosleep" },
[231] = { 1, TP|SE, SEN(exit), "exit_group" },
[232] = { 4, TD, SEN(epoll_wait), "epoll_wait" },
[233] = { 4, TD, SEN(epoll_ctl), "epoll_ctl" },
@@ -303,7 +303,7 @@
[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" },
-[305] = { 2, 0, SEN(clock_adjtime), "clock_adjtime" },
+[305] = { 2, TCL, SEN(clock_adjtime), "clock_adjtime" },
[306] = { 1, TD, SEN(syncfs), "syncfs" },
[307] = { 4, TN, SEN(sendmmsg), "sendmmsg" },
[308] = { 2, TD, SEN(setns), "setns" },
diff --git a/linux/xtensa/syscallent.h b/linux/xtensa/syscallent.h
index 63995bc2..21dea9fd 100644
--- a/linux/xtensa/syscallent.h
+++ b/linux/xtensa/syscallent.h
@@ -234,10 +234,10 @@
[241] = { 3, 0, SEN(io_submit), "io_submit" },
[242] = { 5, 0, SEN(io_getevents), "io_getevents" },
[243] = { 3, 0, SEN(io_cancel), "io_cancel" },
-[244] = { 2, 0, SEN(clock_settime), "clock_settime" },
-[245] = { 2, 0, SEN(clock_gettime), "clock_gettime" },
-[246] = { 2, 0, SEN(clock_getres), "clock_getres" },
-[247] = { 4, 0, SEN(clock_nanosleep), "clock_nanosleep" },
+[244] = { 2, TCL, SEN(clock_settime), "clock_settime" },
+[245] = { 2, TCL, SEN(clock_gettime), "clock_gettime" },
+[246] = { 2, TCL, SEN(clock_getres), "clock_getres" },
+[247] = { 4, TCL, SEN(clock_nanosleep), "clock_nanosleep" },
[248] = { 3, 0, SEN(timer_create), "timer_create" },
[249] = { 1, 0, SEN(timer_delete), "timer_delete" },
[250] = { 4, 0, SEN(timer_settime), "timer_settime" },
@@ -317,7 +317,7 @@
[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" },
-[329] = { 2, 0, SEN(clock_adjtime), "clock_adjtime" },
+[329] = { 2, TCL, SEN(clock_adjtime), "clock_adjtime" },
[330] = { 4, 0, SEN(prlimit64), "prlimit64" },
[331] = { 5, 0, SEN(kcmp), "kcmp" },
[332] = { 3, TD, SEN(finit_module), "finit_module" },
diff --git a/qualify.c b/qualify.c
index b5023f21..6ab30339 100644
--- a/qualify.c
+++ b/qualify.c
@@ -220,6 +220,7 @@ lookup_class(const char *s)
{ "%ipc", TRACE_IPC },
{ "%network", TRACE_NETWORK },
{ "%sched", TRACE_SCHED },
+ { "%clock", TRACE_CLOCK },
};
unsigned int i;
diff --git a/strace.1 b/strace.1
index 9b69ec22..0c0f1a7a 100644
--- a/strace.1
+++ b/strace.1
@@ -429,6 +429,9 @@ Trace all memory mapping related system calls.
.BR "\-e\ trace" = %sched
Trace all scheduler-related (sched_*) system calls.
.TP
+.BR "\-e\ trace" = %clock
+Trace all clock-related (clock_*) system calls.
+.TP
\fB\-e\ abbrev\fR=\,\fIset\fR
Abbreviate the output from printing each member of large structures.
The default is
diff --git a/syscall.c b/syscall.c
index 569055f2..5ca46d1e 100644
--- a/syscall.c
+++ b/syscall.c
@@ -77,6 +77,7 @@
#define TS TRACE_SIGNAL
#define TM TRACE_MEMORY
#define TSC TRACE_SCHED
+#define TCL TRACE_CLOCK
#define NF SYSCALL_NEVER_FAILS
#define MA MAX_ARGS
#define SI STACKTRACE_INVALIDATE_CACHE
@@ -113,6 +114,7 @@ static const struct_sysent sysent2[] = {
#undef TS
#undef TM
#undef TSC
+#undef TCL
#undef NF
#undef MA
#undef SI
diff --git a/sysent.h b/sysent.h
index f4eaa930..7e95ab3a 100644
--- a/sysent.h
+++ b/sysent.h
@@ -22,5 +22,5 @@ typedef struct sysent {
#define TRACE_INDIRECT_SUBCALL 02000 /* Syscall is an indirect socket/ipc subcall. */
#define COMPAT_SYSCALL_TYPES 04000 /* A compat syscall that uses compat types. */
#define TRACE_SCHED 010000 /* Trace scheduler-related syscalls. */
-
+#define TRACE_CLOCK 020000 /*Trace clock-related syscalls. */
#endif /* !STRACE_SYSENT_H */
diff --git a/tests/Makefile.am b/tests/Makefile.am
index c5c124c0..7a22d421 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -503,6 +503,7 @@ DECODER_TESTS = \
chown.test \
chown32.test \
chroot.test \
+ clock.test \
clock_adjtime.test \
clock_nanosleep.test \
clock_xettime.test \
diff --git a/tests/clock.test b/tests/clock.test
new file mode 100755
index 00000000..8b2750c8
--- /dev/null
+++ b/tests/clock.test
@@ -0,0 +1,48 @@
+#!/bin/sh
+# Check -e trace=%clock option.
+
+try_run_prog()
+{
+ "$@" > /dev/null || {
+ rc=$?
+ if [ $rc -eq 77 ]; then
+ return 1
+ else
+ fail_ "$* failed with code $rc"
+ fi
+ }
+}
+
+. "${srcdir=.}/init.sh"
+
+#
+# Tracing Clock_* related syscalls.
+#
+while read w i
+do
+ try_run_prog ./$i > /dev/null
+ run_strace -a$w -e trace=%clock ./$i > "$EXP"
+ match_diff "$LOG" "$EXP"
+done << EOF
+40 clock_nanosleep
+37 clock_adjtime
+36 clock_xettime
+EOF
+
+echo '+++ exited with 0 +++' > "$EXP"
+
+#
+# Tracing NON_CLOCK related syscalls
+#
+while read w i
+do
+ try_run_prog ./$i > /dev/null
+ run_strace -a$w -e trace=%clock ./$i > /dev/null
+ match_diff "$LOG" "$EXP"
+done << EOF
+11 fchdir
+27 futex
+10 fsync
+EOF
+
+rm "$EXP"
diff --git a/tests/ksysent.c b/tests/ksysent.c
index 252feffc..72413692 100644
--- a/tests/ksysent.c
+++ b/tests/ksysent.c
@@ -41,6 +41,7 @@
#define TS 0
#define TM 0
#define TSC 0
+#define TCL 0
#define NF 0
#define MA 0
#define SI 0
diff --git a/tests/nsyscalls.c b/tests/nsyscalls.c
index c2bdb202..10943898 100644
--- a/tests/nsyscalls.c
+++ b/tests/nsyscalls.c
@@ -42,6 +42,7 @@
#define TS 0
#define TM 0
#define TSC 0
+#define TCL 0
#define NF 0
#define MA 0
#define SI 0
--
2.11.0
------------------------------------------------------------------------------
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