qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Syscall 269


From: James Pellow
Subject: Re: [Qemu-devel] Syscall 269
Date: Sun, 5 Dec 2004 17:16:25 -0800
User-agent: KMail/1.7.1

Hi Paul,

Ok, third time is the charm right...  It looks like the functions you referred 
to that handle struct timeval, are doing exactly what I had done.  Here is an 
updated patch that factors out the swap code using the existing function.  
Hopefully this is ready for inclusion.  Thanks for your help with this and 
for a truely incredible project!

-James Pellow

-----------------------------------------------------------------------------------------------------------------

diff -ruN qemu-0.6.1/linux-user/arm/syscall_nr.h 
qemu-0.6.1_new/linux-user/arm/syscall_nr.h
--- qemu-0.6.1/linux-user/arm/syscall_nr.h      2004-11-14 12:51:33.000000000 
-0800
+++ qemu-0.6.1_new/linux-user/arm/syscall_nr.h  2004-11-18 00:58:44.000000000 
-0800
@@ -259,3 +259,5 @@
                                        /* 254 for set_thread_area */
                                        /* 255 for get_thread_area */
                                        /* 256 for set_tid_address */
+#define TARGET_NR_utimes                       (269)
+
diff -ruN qemu-0.6.1/linux-user/i386/syscall_nr.h 
qemu-0.6.1_new/linux-user/i386/syscall_nr.h
--- qemu-0.6.1/linux-user/i386/syscall_nr.h     2004-11-14 12:51:33.000000000 
-0800
+++ qemu-0.6.1_new/linux-user/i386/syscall_nr.h 2004-11-18 01:28:59.000000000 
-0800
@@ -271,3 +271,5 @@
 #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 -ruN qemu-0.6.1/linux-user/syscall.c qemu-0.6.1_new/linux-user/syscall.c
--- qemu-0.6.1/linux-user/syscall.c     2004-11-14 12:51:33.000000000 -0800
+++ qemu-0.6.1_new/linux-user/syscall.c 2004-12-05 17:03:18.278887920 -0800
@@ -3025,6 +3025,14 @@
     case TARGET_NR_get_thread_area:
         goto unimplemented_nowarn;
 #endif
+    case TARGET_NR_utimes:
+    {
+       struct target_timeval *target_tv = (void *)arg2;
+       struct timeval tv;
+       target_to_host_timeval(&tv, target_tv);
+       ret = get_errno(utimes((const char *)arg1, &tv));
+       break;
+    }
     default:
     unimplemented:
         gemu_log("qemu: Unsupported syscall: %d\n", num);

-----------------------------------------------------------------------------------------------------------------

On Saturday 04 December 2004 07:09 am, Paul Brook wrote:
> On Saturday 04 December 2004 00:05, James Pellow wrote:
> > Hi Paul,
> >
> > Is this closer to what you want?  I saw the swap functions.  I wasn't
> > sure what long translated to for all supported archs.  Do I need to do
> > 32/64 bit translation?  tv_sec and tv_usec are both long.
>
> There is already code to properly handle struct timeval, you should use
> that. See the code for TARGET_NR_settimeofday.
>
> Paul

-- 
*****************************
James A. Pellow, President
Alent Design Solutions
www.alentdesignsolutions.com
(509) 526-0682
*****************************




reply via email to

[Prev in Thread] Current Thread [Next in Thread]