This function is, as I think everyone will agree, way too large. This is about a third of the complete change, but I thought I'd get some feedback on the method and form before I go any farther.
r~ Richard Henderson (33): linux-user: Split out do_syscall1 linux-user: Relax single exit from "break" linux-user: Propagate goto ebadf to return linux-user: Propagate goto efault to return linux-user: Propagate goto unimplemented_nowarn to return linux-user: Split out goto unimplemented to do_unimplemented linux-user: Propagate goto fail to return linux-user: Make syscall number unsigned linux-user: Set up infrastructure for table-izing syscalls linux-user: Split out brk, close, exit, read, write linux-user: Split out execve linux-user: Split out open, openat linux-user: Split out name_to_handle_at linux-user: Split out open_to_handle_at linux-user: Split out creat, fork, waitid, waitpid linux-user: Split out link, linkat linux-user: Split out unlink, unlinkat linux-user: Split out chdir, mknod, mknodat, time, chmod linux-user: Remove all unimplemented entries linux-user: Split out getpid, getxpid, lseek linux-user: Split out mount, umount linux-user: Split out alarm, pause, stime, utime, utimes linux-user: Split out access, faccessat, futimesat, kill, nice, sync, syncfs linux-user: Split out rename, renameat, renameat2 linux-user: Split out dup, mkdir, mkdirat, rmdir linux-user: Split out acct, pipe, pipe2, times, umount2 linux-user: Split out ioctl linux-user: Split out chroot, dup2, dup3, fcntl, setpgid, umask linux-user: Split out getpgrp, getppid, setsid linux-user: Split out rt_sigaction, sigaction linux-user: Split out rt_sigprocmask, sgetmask, sigprocmask, ssetmask linux-user: Split out rt_sigpending, rt_sigsuspend, sigpending, sigsuspend linux-user: Split out rt_sigqueueinfo, rt_sigtimedwait, rt_tgsigqueueinfo linux-user/qemu.h | 2 +- linux-user/syscall.c | 4651 ++++++++++++++++++++++-------------------- 2 files changed, 2394 insertions(+), 2259 deletions(-) -- 2.17.0