summaryrefslogtreecommitdiff
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)
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 b22642910..cd3fdf553 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;