Implemented -e trace=%clock option

Eugene Syromyatnikov evgsyr at gmail.com
Mon Mar 13 05:18:36 UTC 2017


On Sat, Mar 11, 2017 at 10:16:42PM +0530, Rishi Bhatt wrote:
> Sorry, Ignore previous attachment.
> 
> The following  patch is the implementation.
> 

I've tried to apply this, but git-am(1) failed with the following
diagnostics:

.git/rebase-apply/patch:801: trailing whitespace.
#define TC TRACE_CLOCK 
.git/rebase-apply/patch:870: trailing whitespace.
#define TC 0 
fatal: 2 lines add whitespace errors.


> On Sat, Mar 11, 2017 at 9:48 PM, Rishi Bhatt <bhatt.rishi062 at gmail.com>
> wrote:
> 
> > Hi,ldv
> > i have  implemented a test for the -e trace=%clock option.
> > (tests/Makefile.am: clock.test \ )
> >
> > On Fri, Mar 10, 2017 at 10:37 PM, Dmitry V. Levin <ldv at altlinux.org>
> > wrote:
> >
> >> On Fri, Mar 10, 2017 at 08:30:55PM +0530, Rishi Bhatt wrote:
> >> > Hey,
> >> > So for extending a trace class option syntax,i have implemented clock_*
> >> > related syscall.
> >> >
> >> > The idea came in my mind after the scheduler option was committed
> >> recently.
> >> > I thought clock related syscalls would be good.
> >>
> >> Yes, why not.
> >>
> >> > So i have attached the patch,please review it and give me the feedback.
> >>
> >> Thanks.  Any change that adds new functionality needs an appropriate test,
> >> so please resubmit the patch with a test.
> >>
> >>
> >> --
> >> ldv
> >>
> >> ------------------------------------------------------------
> >> ------------------
> >> Announcing the Oxford Dictionaries API! The API offers world-renowned
> >> dictionary content that is easy and intuitive to access. Sign up for an
> >> account today to start using our lexical data to power your apps and
> >> projects. Get started today and enter our developer competition.
> >> http://sdm.link/oxford
> >> _______________________________________________
> >> Strace-devel mailing list
> >> Strace-devel at lists.sourceforge.net
> >> https://lists.sourceforge.net/lists/listinfo/strace-devel
> >>
> >>
> >

It is preferred that patches are sent inline.

> From afe2b0ecb21cf24daf65a6e11d8694638db52fed Mon Sep 17 00:00:00 2001
> From: Rishi Bhatt <bhatt.rishi062 at gmail.com>
> Date: Sat, 11 Mar 2017 22:14:03 +0530
> Subject: [PATCH] Implemented -e trace=%clock option for clock_*
>  related-syscalls
> 

The change log is missing. Please refer to README-hacking and
https://www.gnu.org/prep/standards/html_node/Style-of-Change-Logs.html .

> ---
>  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              | 20 ++++++++++++++++++++
>  tests/ksysent.c               |  1 +
>  tests/nsyscalls.c             |  1 +
>  34 files changed, 160 insertions(+), 130 deletions(-)
>  create mode 100644 tests/clock.test
These permissions are incorrect, they lead to the following error when
this test is actually tried to be executed: "timeout: failed to run command
`./clock.test': Permission denied ". The correct permissions should be
100755.

When file access rights are corrected, test fails with the following diagnostics:

5d4
< setitimer(ITIMER_REAL, {it_interval={tv_sec=0, tv_usec=222222}, it_value={tv_sec=0, tv_usec=111111}}, NULL) = 0
clock.test: failed test: ../strace -a40 -e trace=%clock ./clock_nanosleep output mismatch


> 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..33cc3f92 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	},
Formatting differs from the neighbouring lines.

>  	};
>  
>  	unsigned int i;
> diff --git a/strace.1 b/strace.1
> index 9b69ec22..c46ca3ba 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 
Trailing whitespace.

>  #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..fa6c3dee 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		030		/*Trace clocks-related syscalls*/
This value couldn't be correct, it must be something which doesn't collide with
other TRACE_* values.

>  
>  #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..6dfd2bb7
> --- /dev/null
> +++ b/tests/clock.test
> @@ -0,0 +1,20 @@
> +#!/bin/sh
> +#Check -e trace=%clock option
> +
> +#Test cases.
> +CLOCK_TESTS='40 clock_nanosleep
> +37 clock_adjtime
> +36 clock_xettime'
> +
> +#Declaring the init.sh
> +. "${srcdir=.}/init.sh"
> +
> +echo "$CLOCK_TESTS" | while read w i
> +do
> +	run_prog ./$i > /dev/null
> +	run_strace -a$w -e trace=%clock ./$i > "$EXP"
> +	match_diff "$LOG" "$EXP"
> +done
Please also consider adding some negative match tests, as it is done in
case of %sched class. It is not a very good test, but nevertheless.

> +echo '+++ exited with 0 +++' > "$EXP"
Why it is here?

> +
> +rm "$EXP"
> \ No newline at end of file
Is this intended?

> 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 
Trailing whitespace.

>  #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
> 

> ------------------------------------------------------------------------------
> Announcing the Oxford Dictionaries API! The API offers world-renowned
> dictionary content that is easy and intuitive to access. Sign up for an
> account today to start using our lexical data to power your apps and
> projects. Get started today and enter our developer competition.
> http://sdm.link/oxford

> _______________________________________________
> 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