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