From 31e531b2b4afe8ec5e08d700727afdbbbe45bf34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lu=C3=ADs=20Marques?= Date: Sat, 5 Jan 2019 02:08:06 +0000 Subject: Implement clock_gettime syscall (#139) --- pk/syscall.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'pk') diff --git a/pk/syscall.c b/pk/syscall.c index d944c52..5a86c5c 100644 --- a/pk/syscall.c +++ b/pk/syscall.c @@ -380,6 +380,15 @@ int sys_gettimeofday(long* loc) return 0; } +long sys_clock_gettime(int clk_id, long *loc) +{ + uintptr_t t = rdcycle(); + loc[0] = t / CLOCK_FREQ; + loc[1] = (t % CLOCK_FREQ) / (CLOCK_FREQ / 1000000000); + + return 0; +} + ssize_t sys_writev(int fd, const long* iov, int cnt) { ssize_t ret = 0; @@ -455,7 +464,7 @@ long do_syscall(long a0, long a1, long a2, long a3, long a4, long a5, unsigned l [SYS_readlinkat] = sys_stub_nosys, [SYS_rt_sigprocmask] = sys_stub_success, [SYS_ioctl] = sys_stub_nosys, - [SYS_clock_gettime] = sys_stub_nosys, + [SYS_clock_gettime] = sys_clock_gettime, [SYS_getrusage] = sys_stub_nosys, [SYS_getrlimit] = sys_stub_nosys, [SYS_setrlimit] = sys_stub_nosys, -- cgit v1.1