[Top][All Lists]
[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
*****************************