summaryrefslogtreecommitdiffstats
path: root/sys/kern/systrace_args.c
diff options
context:
space:
mode:
authordavidxu <davidxu@FreeBSD.org>2012-08-17 02:26:31 +0000
committerdavidxu <davidxu@FreeBSD.org>2012-08-17 02:26:31 +0000
commit3f0806aa1fc8c8dc2f294421d558472faec7fd3f (patch)
tree0a8a4e31773d219b58db16ff36859c4d3d4eb6cc /sys/kern/systrace_args.c
parent71de2d67ba40838ccc3b3d8320d1513b40220ec4 (diff)
downloadFreeBSD-src-3f0806aa1fc8c8dc2f294421d558472faec7fd3f.zip
FreeBSD-src-3f0806aa1fc8c8dc2f294421d558472faec7fd3f.tar.gz
Implement syscall clock_getcpuclockid2, so we can get a clock id
for process, thread or others we want to support. Use the syscall to implement POSIX API clock_getcpuclock and pthread_getcpuclockid. PR: 168417
Diffstat (limited to 'sys/kern/systrace_args.c')
-rw-r--r--sys/kern/systrace_args.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/sys/kern/systrace_args.c b/sys/kern/systrace_args.c
index 522954b..4c57237 100644
--- a/sys/kern/systrace_args.c
+++ b/sys/kern/systrace_args.c
@@ -1358,6 +1358,15 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
*n_args = 1;
break;
}
+ /* clock_getcpuclockid2 */
+ case 247: {
+ struct clock_getcpuclockid2_args *p = params;
+ iarg[0] = p->id; /* id_t */
+ iarg[1] = p->which; /* int */
+ uarg[2] = (intptr_t) p->clock_id; /* clockid_t * */
+ *n_args = 3;
+ break;
+ }
/* ntp_gettime */
case 248: {
struct ntp_gettime_args *p = params;
@@ -5432,6 +5441,22 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
break;
};
break;
+ /* clock_getcpuclockid2 */
+ case 247:
+ switch(ndx) {
+ case 0:
+ p = "id_t";
+ break;
+ case 1:
+ p = "int";
+ break;
+ case 2:
+ p = "clockid_t *";
+ break;
+ default:
+ break;
+ };
+ break;
/* ntp_gettime */
case 248:
switch(ndx) {
@@ -9464,6 +9489,11 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
if (ndx == 0 || ndx == 1)
p = "int";
break;
+ /* clock_getcpuclockid2 */
+ case 247:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
/* ntp_gettime */
case 248:
if (ndx == 0 || ndx == 1)
OpenPOWER on IntegriCloud