From b5906f958974df6f0fef821268bd1593ebefc143 Mon Sep 17 00:00:00 2001 From: ths Date: Mon, 19 Mar 2007 13:32:45 +0000 Subject: [PATCH] Linux usermode clock_gettime/clock_getres emulation, by Kirill A. Shutemov. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2501 c046a42c-6fe2-441c-8c8c-71466251a162 --- Makefile.target | 1 + linux-user/syscall.c | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/Makefile.target b/Makefile.target index 38899ff..8be2835 100644 --- a/Makefile.target +++ b/Makefile.target @@ -208,6 +208,7 @@ endif ifdef CONFIG_LINUX_USER OBJS= main.o syscall.o mmap.o signal.o path.o osdep.o thunk.o \ elfload.o linuxload.o +LIBS+= $(AIOLIBS) ifdef TARGET_HAS_BFLT OBJS+= flatload.o endif diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 71788a8..5eb5b39 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -3990,6 +3990,29 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, goto unimplemented_nowarn; #endif +#ifdef TARGET_NR_clock_gettime + case TARGET_NR_clock_gettime: + { + struct timespec ts; + ret = get_errno(clock_gettime(arg1, &ts)); + if (!is_error(ret)) { + host_to_target_timespec(arg2, &ts); + } + break; + } +#endif +#ifdef TARGET_NR_clock_getres + case TARGET_NR_clock_getres: + { + struct timespec ts; + ret = get_errno(clock_getres(arg1, &ts)); + if (!is_error(ret)) { + host_to_target_timespec(arg2, &ts); + } + break; + } +#endif + #if defined(TARGET_NR_set_tid_address) && defined(__NR_set_tid_address) case TARGET_NR_set_tid_address: ret = get_errno(set_tid_address((int *) arg1)); -- 2.7.4