xref: /aosp_15_r20/external/musl/src/time/clock_getcpuclockid.c (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
1*c9945492SAndroid Build Coastguard Worker #include <time.h>
2*c9945492SAndroid Build Coastguard Worker #include <errno.h>
3*c9945492SAndroid Build Coastguard Worker #include <unistd.h>
4*c9945492SAndroid Build Coastguard Worker #include "syscall.h"
5*c9945492SAndroid Build Coastguard Worker 
clock_getcpuclockid(pid_t pid,clockid_t * clk)6*c9945492SAndroid Build Coastguard Worker int clock_getcpuclockid(pid_t pid, clockid_t *clk)
7*c9945492SAndroid Build Coastguard Worker {
8*c9945492SAndroid Build Coastguard Worker 	struct timespec ts;
9*c9945492SAndroid Build Coastguard Worker 	clockid_t id = (-pid-1)*8U + 2;
10*c9945492SAndroid Build Coastguard Worker 	int ret = __syscall(SYS_clock_getres, id, &ts);
11*c9945492SAndroid Build Coastguard Worker 	if (ret == -EINVAL) ret = -ESRCH;
12*c9945492SAndroid Build Coastguard Worker 	if (ret) return -ret;
13*c9945492SAndroid Build Coastguard Worker 	*clk = id;
14*c9945492SAndroid Build Coastguard Worker 	return 0;
15*c9945492SAndroid Build Coastguard Worker }
16