summary refs log tree commit diff stats
path: root/linux-user/syscall.c
diff options
context:
space:
mode:
authorUlrich Hecht <uli@suse.de>2009-07-24 19:10:28 +0200
committerRiku Voipio <riku.voipio@iki.fi>2009-08-25 17:15:34 +0300
commitd83c8733b7cf955f3c0b58ecd6e9c58bc35fadad (patch)
tree3d1489a5a8db34f1c3f2c4a104e3a1953ecc60ad /linux-user/syscall.c
parent7e22e546028e4ea8336e3dcd44161a216647dcaa (diff)
downloadfocaccia-qemu-d83c8733b7cf955f3c0b58ecd6e9c58bc35fadad.tar.gz
focaccia-qemu-d83c8733b7cf955f3c0b58ecd6e9c58bc35fadad.zip
linux-user: enable getdents for > 32-bit systems
works perfectly fine with the example from getdents(2) and passes the LTP
tests (tested with s390x on x86_64 emulation)

Signed-off-by: Ulrich Hecht <uli@suse.de>
Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
Diffstat (limited to 'linux-user/syscall.c')
-rw-r--r--linux-user/syscall.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index e69f0fd6cd..a7de154703 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -196,9 +196,7 @@ static int gettid(void) {
     return -ENOSYS;
 }
 #endif
-#if TARGET_ABI_BITS == 32
 _syscall3(int, sys_getdents, uint, fd, struct linux_dirent *, dirp, uint, count);
-#endif
 #if defined(TARGET_NR_getdents64) && defined(__NR_getdents64)
 _syscall3(int, sys_getdents64, uint, fd, struct linux_dirent64 *, dirp, uint, count);
 #endif
@@ -5795,9 +5793,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
         break;
 #endif
     case TARGET_NR_getdents:
-#if TARGET_ABI_BITS != 32
-        goto unimplemented;
-#elif TARGET_ABI_BITS == 32 && HOST_LONG_BITS == 64
+#if TARGET_ABI_BITS == 32 && HOST_LONG_BITS == 64
         {
             struct target_dirent *target_dirp;
             struct linux_dirent *dirp;