Implemented -e trace=%clock option
Rishi Bhatt
bhatt.rishi062 at gmail.com
Tue Mar 14 16:48:27 UTC 2017
Hey,
I have implemented clock.test test case,and ya clock_nanosleep's test
has setitimer as one of the option,so i did the same and and included
setitimer in my test case so that $LOG and $EXP have the same out
put. But well i am still in doubt that why printing setitimer is
necessary in clock_nanosleep.c?
Well i am not sure about the changeLog thing but what i have
understood in README-hacking i have implemented that.
I have used TRACE_SCHED 00030,well Eugene said that i have to use a
code which doesn't collide with other TRACE_* so what collision means
here?
Also i have fixed the other issues that Eugene had pointed out.
So take a look,
>From db0bcd1ec344610e574481a186e91345844d0b29 Mon Sep 17 00:00:00 2001
From: Rishi Bhatt <bhatt.rishi062 at gmail.com>
Date: Tue, 14 Mar 2017 21:25:26 +0530
Subject: [PATCH v2] 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_\)/TC\1/'
* sysent.h (TRACE_CLOCK): New definition.
* syscall.c: Alias TC to TRACE_CLOCK around syscallent.h inclusion.
* linux/32/syscallent.h: Add TC 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 TC to 0.
* tests/nsyscalls.c: Likewise.
* tests/clock.test: New test.
* tests/Makefile.am (DECODER_TESTS): Add clock.test.
* 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 | 1 +
tests/Makefile.am | 1 +
tests/clock.test | 42 ++++++++++++++++++++++++++++++++++++++++++
tests/ksysent.c | 1 +
tests/nsyscalls.c | 1 +
34 files changed, 182 insertions(+), 130 deletions(-)
create mode 100644 tests/clock.test
diff --git a/linux/32/syscallent.h b/linux/32/syscallent.h
index a8f95107..2e6fabbd 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, TC, SEN(clock_settime), "clock_settime" },
+[113] = { 2, TC, SEN(clock_gettime), "clock_gettime" },
+[114] = { 2, TC, SEN(clock_getres), "clock_getres" },
+[115] = { 4, TC, 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, TC, 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 a705eae9..60b7b073 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, TC, SEN(clock_settime), "clock_settime" },
+[113] = { 2, TC, SEN(clock_gettime), "clock_gettime" },
+[114] = { 2, TC, SEN(clock_getres), "clock_getres" },
+[115] = { 4, TC, 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, TC, 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..6ded7df2 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, TC, SEN(clock_settime), "clock_settime" },
+[420] = { 2, TC, SEN(clock_gettime), "clock_gettime" },
+[421] = { 2, TC, SEN(clock_getres), "clock_getres" },
+[422] = { 4, TC, 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, TC, 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..f4c8812c 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, TC, SEN(clock_settime), "clock_settime" },
+[263] = { 2, TC, SEN(clock_gettime), "clock_gettime" },
+[264] = { 2, TC, SEN(clock_getres), "clock_getres" },
+[265] = { 4, TC, 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, TC, 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..d174ccac 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, TC, SEN(clock_settime), "clock_settime" },
+[216] = { 2, TC, SEN(clock_gettime), "clock_gettime" },
+[217] = { 2, TC, SEN(clock_getres), "clock_getres" },
+[218] = { 4, TC, 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, TC, 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..b0a5f690 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, TC, SEN(clock_settime), "clock_settime" },
+[266] = { 2, TC, SEN(clock_gettime), "clock_gettime" },
+[267] = { 2, TC, SEN(clock_getres), "clock_getres" },
+[268] = { 4, TC, 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, TC, 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..c0c9ec71 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, TC, SEN(clock_settime), "clock_settime" },
+[265] = { 2, TC, SEN(clock_gettime), "clock_gettime" },
+[266] = { 2, TC, SEN(clock_getres), "clock_getres" },
+[267] = { 4, TC, 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, TC, 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 647a2dc5..a04c2e45 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, TC, SEN(clock_settime), "clock_settime" },
+[256] = { 2, TC, SEN(clock_gettime), "clock_gettime" },
+[257] = { 2, TC, SEN(clock_getres), "clock_getres" },
+[258] = { 4, TC, 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, TC, 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..8845d8d6 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, TC, SEN(clock_settime), "clock_settime" },
+[265] = { 2, TC, SEN(clock_gettime), "clock_gettime" },
+[266] = { 2, TC, SEN(clock_getres), "clock_getres" },
+[267] = { 4, TC, 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, TC, 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 895e7aec..275ee12e 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, TC, SEN(clock_settime), "clock_settime" },
+[1254] = { 2, TC, SEN(clock_gettime), "clock_gettime" },
+[1255] = { 2, TC, SEN(clock_getres), "clock_getres" },
+[1256] = { 4, TC, 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, TC, 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..1d481859 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, TC, SEN(clock_settime), "clock_settime" },
+[260] = { 2, TC, SEN(clock_gettime), "clock_gettime" },
+[261] = { 2, TC, SEN(clock_getres), "clock_getres" },
+[262] = { 4, TC, 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, TC, 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..6c48939f 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, TC, SEN(clock_settime), "clock_settime" },
+[265] = { 2, TC, SEN(clock_gettime), "clock_gettime" },
+[266] = { 2, TC, SEN(clock_getres), "clock_getres" },
+[267] = { 4, TC, 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, TC, 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..4a9afe25 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, TC, SEN(clock_settime), "clock_settime" },
+[6226] = { 2, TC, SEN(clock_gettime), "clock_gettime" },
+[6227] = { 2, TC, SEN(clock_getres), "clock_getres" },
+[6228] = { 4, TC, 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, TC, 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..a489323f 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, TC, SEN(clock_settime), "clock_settime" },
+[5222] = { 2, TC, SEN(clock_gettime), "clock_gettime" },
+[5223] = { 2, TC, SEN(clock_getres), "clock_getres" },
+[5224] = { 4, TC, 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, TC, 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..93a22934 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, TC, SEN(clock_settime), "clock_settime" },
+[4263] = { 2, TC, SEN(clock_gettime), "clock_gettime" },
+[4264] = { 2, TC, SEN(clock_getres), "clock_getres" },
+[4265] = { 4, TC, 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, TC, 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..0928b7ef 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, TC, SEN(clock_settime), "clock_settime" },
+[246] = { 2, TC, SEN(clock_gettime), "clock_gettime" },
+[247] = { 2, TC, SEN(clock_getres), "clock_getres" },
+[248] = { 4, TC, 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, TC, 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..c8642415 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, TC, SEN(clock_settime), "clock_settime" },
+[246] = { 2, TC, SEN(clock_gettime), "clock_gettime" },
+[247] = { 2, TC, SEN(clock_getres), "clock_getres" },
+[248] = { 4, TC, 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, TC, 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 c04353cc..6de6d90a 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, TC, SEN(clock_settime), "clock_settime" },
+[260] = { 2, TC, SEN(clock_gettime), "clock_gettime" },
+[261] = { 2, TC, SEN(clock_getres), "clock_getres" },
+[262] = { 4, TC, 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, TC, 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 ab8a5d86..3e5d0956 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, TC, SEN(clock_settime), "clock_settime" },
+[260] = { 2, TC, SEN(clock_gettime), "clock_gettime" },
+[261] = { 2, TC, SEN(clock_getres), "clock_getres" },
+[262] = { 4, TC, 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, TC, 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..4eee0e59 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, TC, SEN(clock_settime), "clock_settime" },
+[265] = { 2, TC, SEN(clock_gettime), "clock_gettime" },
+[266] = { 2, TC, SEN(clock_getres), "clock_getres" },
+[267] = { 4, TC, 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, TC, 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..287bdf08 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, TC, SEN(clock_settime), "clock_settime" },
+[293] = { 2, TC, SEN(clock_gettime), "clock_gettime" },
+[294] = { 2, TC, SEN(clock_getres), "clock_getres" },
+[295] = { 4, TC, 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, TC, 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..6f3f54fc 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, TC, SEN(clock_settime), "clock_settime" },
+[257] = { 2, TC, SEN(clock_gettime), "clock_gettime" },
+[258] = { 2, TC, SEN(clock_getres), "clock_getres" },
+[259] = { 4, TC, 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, TC, 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..4f4fc201 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, TC, SEN(clock_settime), "clock_settime" },
+[257] = { 2, TC, SEN(clock_gettime), "clock_gettime" },
+[258] = { 2, TC, SEN(clock_getres), "clock_getres" },
+[259] = { 4, TC, 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, TC, 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 2699bc04..e2e3a178 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, TC, SEN(clock_settime), "clock_settime" },
+[228] = { 2, TC, SEN(clock_gettime), "clock_gettime" },
+[229] = { 2, TC, SEN(clock_getres), "clock_getres" },
+[230] = { 4, TC, 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, TC, 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 a1a268ec..3adc9345 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, TC, SEN(clock_settime), "clock_settime" },
+[228] = { 2, TC, SEN(clock_gettime), "clock_gettime" },
+[229] = { 2, TC, SEN(clock_getres), "clock_getres" },
+[230] = { 4, TC, 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, TC, 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..eab5b0e8 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, TC, SEN(clock_settime), "clock_settime" },
+[245] = { 2, TC, SEN(clock_gettime), "clock_gettime" },
+[246] = { 2, TC, SEN(clock_getres), "clock_getres" },
+[247] = { 4, TC, 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, TC, 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..373393f6 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..383c7d8f 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..dc00ae3f 100644
--- a/sysent.h
+++ b/sysent.h
@@ -22,5 +22,6 @@ typedef struct sysent {
#define TRACE_INDIRECT_SUBCALL 02000 /* Syscall is an indirect
socket/ipc subcall. */
#define COMPAT_SYSCALL_TYPES 04000 /* A compat syscall that uses
compat types. */
#define TRACE_SCHED 010000 /* Trace scheduler-related syscalls. */
+#define TRACE_CLOCK 00030 /*Trace clocks-related syscalls*/
#endif /* !STRACE_SYSENT_H */
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 5a7a45f6..57e99454 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -502,6 +502,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 100644
index 00000000..cba21d38
--- /dev/null
+++ b/tests/clock.test
@@ -0,0 +1,42 @@
+#!/bin/sh
+# Check -e trace=%clock option
+
+# 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.
+#
+echo "$NON_CLOCK_TESTS" | while read w i
+do
+ run_prog ./$i > /dev/null
+ run_strace -a$w -e trace=%clock ./$i > /dev/null
+ match_diff "$LOG" "$EXP"
+done
+
+rm "$EXP"
+
diff --git a/tests/ksysent.c b/tests/ksysent.c
index 252feffc..9e978ed2 100644
--- a/tests/ksysent.c
+++ b/tests/ksysent.c
@@ -41,6 +41,7 @@
#define TS 0
#define TM 0
#define TSC 0
+#define TC 0
#define NF 0
#define MA 0
#define SI 0
diff --git a/tests/nsyscalls.c b/tests/nsyscalls.c
index c2bdb202..ab440f77 100644
--- a/tests/nsyscalls.c
+++ b/tests/nsyscalls.c
@@ -42,6 +42,7 @@
#define TS 0
#define TM 0
#define TSC 0
+#define TC 0
#define NF 0
#define MA 0
#define SI 0
--
2.11.0
On 3/14/17, Rishi Bhatt <bhatt.rishi062 at gmail.com> wrote:
> Well i got it so i have done something like this:
>
> run_prog ./$i > /dev/null
> run_strace -a$w -e trace=%clock,setitimer ./$i > "$EXP"
> match_diff "$LOG" "$EXP"
>
> On Tue, Mar 14, 2017 at 8:04 AM, Dmitry V. Levin <ldv at altlinux.org> wrote:
>
>> On Mon, Mar 13, 2017 at 11:20:30PM +0530, Rishi Bhatt wrote:
>> > Hey does $STRACE in init.sh is doing this:strace -e trace=%clock
>> > ./clock_nanosleep > /dev/null
>> >
>> > So my problem here is the output in .tmp file is correct but the .exp
>> has
>> > the print statements from ./clock_nanosleep so for matching .exp and
>> > .tmp
>> > files i have to filter setitimer string from .exp file?
>> >
>> > (< setitimer(ITIMER_REAL, {it_interval={tv_sec=0, tv_usec=222222},
>> > it_value={tv_sec=0, tv_usec=111111}}, NULL) = 0)
>> >
>> > Also please give me some idea about if i want to implement a test case,
>> > i
>> > am confuse in ,what should be the output and from whom i have to
>> > compare
>> > it? Or what should be my basic approach to implement test cases.
>> >
>> > Sorry if this thing is too easy but well i am not just getting the crux
>> of
>> > it.
>>
>> Looks like you don't understand the fact that you are trying to reuse a
>> part of clock_nanosleep.test for your new test, and you don't understand
>> that it doesn't work as easily as with other clock_* tests you are trying
>> to reuse because for some obscure reason clock_nanosleep.test doesn't
>> limit itself with testing of clock_nanosleep decoder.
>>
>>
>> --
>> 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 at lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/strace-devel
>>
>>
>
More information about the Strace-devel
mailing list