From f2674e31e0b79a8e30335438f274b846d084a383 Mon Sep 17 00:00:00 2001 From: bellard Date: Wed, 9 Jul 2003 12:26:09 +0000 Subject: [PATCH] old select support git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@313 c046a42c-6fe2-441c-8c8c-71466251a162 --- linux-user/syscall.c | 12 +++++++++++- linux-user/syscall_defs.h | 6 ++++++ 2 files changed, 17 insertions(+), 1 deletion(-) 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; diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h index 3826c12909..5caf2d855e 100644 --- a/linux-user/syscall_defs.h +++ b/linux-user/syscall_defs.h @@ -390,6 +390,12 @@ struct target_tms { target_clock_t tms_cstime; }; +struct target_sel_arg_struct { + target_long n; + target_long inp, outp, exp; + target_long tvp; +}; + struct target_iovec { target_long iov_base; /* Starting address */ target_long iov_len; /* Number of bytes */