On 10/12/2012 11:24 AM, riku.voi...@linaro.org wrote: > From: Riku Voipio <riku.voi...@linaro.org> > > Currently linux-user handles system calls with a 3000+ line switch/case > construct > in do_syscall(). Some syscalls are implemented inline in the switch/case, > others > as separate functions, and the rest as mix of both. > > As the first step of the cleanup, I'd like to move implementation of each > syscall > completely to their own functions. While at it, we define more standard > interface between > do_syscall() and the functions implementing the system calls: system call > functions take > parameter as raw abi_long, and leave the host to target errno conversion to > do_syscall.
My only concern is leaving the host-to-target conversion to do_syscall. I think the return value from do_foo should be the proper target return value. My concern here are those handful of syscalls for which we have target-specific error reporting mechanisms, and for which those reporting mechanisms are exploited in some nefarious way. E.g. sigprocmask and getpriority. r~