summary refs log tree commit diff stats
path: root/linux-user/syscall.c
diff options
context:
space:
mode:
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2003-07-09 12:26:09 +0000
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2003-07-09 12:26:09 +0000
commitf2674e31e0b79a8e30335438f274b846d084a383 (patch)
tree9daeb06681d70422d32912029a4601072de4bb4d /linux-user/syscall.c
parent4690764bba3a489d5180106d08970ced59113e22 (diff)
downloadfocaccia-qemu-f2674e31e0b79a8e30335438f274b846d084a383.tar.gz
focaccia-qemu-f2674e31e0b79a8e30335438f274b846d084a383.zip
old select support
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@313 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'linux-user/syscall.c')
-rw-r--r--linux-user/syscall.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index b226429103..cd3fdf5535 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -1763,7 +1763,17 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3,
         }
         break;
     case TARGET_NR_select:
-        goto unimplemented;
+        {
+            struct target_sel_arg_struct *sel = (void *)arg1;
+            sel->n = tswapl(sel->n);
+            sel->inp = tswapl(sel->inp);
+            sel->outp = tswapl(sel->outp);
+            sel->exp = tswapl(sel->exp);
+            sel->tvp = tswapl(sel->tvp);
+            ret = do_select(sel->n, (void *)sel->inp, (void *)sel->outp,
+                            (void *)sel->exp, (void *)sel->tvp);
+        }
+        break;
     case TARGET_NR_symlink:
         ret = get_errno(symlink((const char *)arg1, (const char *)arg2));
         break;