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 18:58:30 -0800
User-agent: KMail/1.7.1

Hi Paul,

Ok, you got me that time.  I guess I have been trying to hury my way through 
this to get it working.  The man page I was looking at that defined utimes 
defines it as:

int utimes(char *filename, struct timeval *tvp);

If you go looking further in the page, a discussion is found about *tvp 
actually being a two member array.  I hadn't looked down that far I guess. (a 
bit red in the face...)  So, this should be it:

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

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 18:49:23.208271576 -0800
@@ -3025,6 +3025,15 @@
     case TARGET_NR_get_thread_area:
         goto unimplemented_nowarn;
 #endif
+    case TARGET_NR_utimes:
+    {
+       struct target_timeval *target_tv = (void *)arg2;
+       struct timeval tv[2];
+       target_to_host_timeval(&tv[0], &target_tv[0]);
+       target_to_host_timeval(&tv[1], &target_tv[1]);
+       ret = get_errno(utimes((const char *)arg1, tv));
+       break;
+    }
     default:
     unimplemented:
         gemu_log("qemu: Unsupported syscall: %d\n", num);

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

Thanks for your help.

-James Pellow

On Sunday 05 December 2004 05:26 pm, Paul Brook wrote:
> On Monday 06 December 2004 01:16, James Pellow wrote:
> > 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!
>
> Still not quite there. utimes takes [a pointer to] an array of two struct
> timeval.  You only thunk the first one.
>
> 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]