[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] fixed stat64 support (take II)
From: |
Rusty Russell |
Subject: |
[Qemu-devel] [PATCH] fixed stat64 support (take II) |
Date: |
Wed, 23 Apr 2003 18:15:45 +1000 |
Previous version of this patch added packed attribute, but didn't fix
st_ino. Chris's glibc version found this one, too.
Name: Fix stat64
Author: Rusty Russell
Status: Tested
D: PPC64 gets size of x86 stat64 struct wrong due to padding
D: differences. Also, translation of st_ino is incorrect.
diff -urpN --exclude TAGS -X /home/rusty/current-dontdiff --minimal
qemu-0.1.6/syscall-i386.h qemu-0.1.6-debug/syscall-i386.h
--- qemu-0.1.6/syscall-i386.h 2003-04-11 11:01:57.000000000 +1000
+++ qemu-0.1.6-debug/syscall-i386.h 2003-04-23 17:39:27.000000000 +1000
@@ -330,7 +329,7 @@ struct target_stat64 {
target_ulong __pad7; /* will be high 32 bits of ctime
someday */
unsigned long long st_ino;
-};
+} __attribute__((packed));
#define TARGET_SA_NOCLDSTOP 0x00000001
#define TARGET_SA_NOCLDWAIT 0x00000002 /* not supported yet */
diff -urpN --exclude TAGS -X /home/rusty/current-dontdiff --minimal
qemu-0.1.6/syscall.c qemu-0.1.6-debug/syscall.c
--- qemu-0.1.6/syscall.c 2003-04-11 11:01:57.000000000 +1000
+++ qemu-0.1.6-debug/syscall.c 2003-04-23 17:41:01.000000000 +1000
@@ -2257,7 +2257,7 @@ long do_syscall(void *cpu_env, int num,
struct target_stat64 *target_st = (void *)arg2;
memset(target_st, 0, sizeof(struct target_stat64));
target_st->st_dev = tswap16(st.st_dev);
- target_st->st_ino = tswapl(st.st_ino);
+ target_st->st_ino = tswap64(st.st_ino);
#ifdef TARGET_STAT64_HAS_BROKEN_ST_INO
target_st->__st_ino = tswapl(st.st_ino);
#endif
--
Anyone who quotes me in their sig is an idiot. -- Rusty Russell.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-devel] [PATCH] fixed stat64 support (take II),
Rusty Russell <=