summaryrefslogtreecommitdiff
path: root/lib/libc/time/clock_getcpuclockid.c
blob: a0f10b8ad0ec908d2a63674b2e0abb7649324ec3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <syscall.h> // for __syscall_2, syscall
#include <time.h>    // for clockid_t, clock_getcpuclockid, pid_t

int clock_getcpuclockid(pid_t pid, clockid_t *clock_id)
{
	int ret;
	clockid_t id;
	struct timespec ts;

	id = (clockid_t)((-pid - 1) * 8U + 2);
	ret = syscall(clock_getres, id, &ts);

	if (ret >= 0) {
		*clock_id = id;
	}

	return ret;
}