From 978a66ff73add1f462903af92ccf9a34f6a513c2 Mon Sep 17 00:00:00 2001 From: bellard Date: Mon, 6 Dec 2004 22:58:05 +0000 Subject: [PATCH] utimes() support git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1164 c046a42c-6fe2-441c-8c8c-71466251a162 --- linux-user/arm/syscall_nr.h | 1 + linux-user/i386/syscall_nr.h | 1 + linux-user/syscall.c | 14 ++++++++++++++ 3 files changed, 16 insertions(+) diff --git a/linux-user/arm/syscall_nr.h b/linux-user/arm/syscall_nr.h index 13a9ee11fd..195e459ec7 100644 --- a/linux-user/arm/syscall_nr.h +++ b/linux-user/arm/syscall_nr.h @@ -259,3 +259,4 @@ /* 254 for set_thread_area */ /* 255 for get_thread_area */ /* 256 for set_tid_address */ +#define TARGET_NR_utimes (269) diff --git a/linux-user/i386/syscall_nr.h b/linux-user/i386/syscall_nr.h index c994381aa3..9fa6be96ac 100644 --- a/linux-user/i386/syscall_nr.h +++ b/linux-user/i386/syscall_nr.h @@ -271,3 +271,4 @@ #define TARGET_NR_clock_getres (TARGET_NR_timer_create+7) #define TARGET_NR_clock_nanosleep (TARGET_NR_timer_create+8) +#define TARGET_NR_utimes 271 diff --git a/linux-user/syscall.c b/linux-user/syscall.c index b2965bbbd9..2407400c1f 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -1742,6 +1742,20 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, ret = get_errno(utime((const char *)arg1, tbuf1)); } break; + case TARGET_NR_utimes: + { + struct target_timeval *target_tvp = (struct target_timeval *)arg2; + struct timeval *tvp, tv[2]; + if (target_tvp) { + target_to_host_timeval(&tv[0], &target_tvp[0]); + target_to_host_timeval(&tv[1], &target_tvp[1]); + tvp = tv; + } else { + tvp = NULL; + } + ret = get_errno(utimes((const char *)arg1, tvp)); + } + break; #ifdef TARGET_NR_stty case TARGET_NR_stty: goto unimplemented; -- GitLab