Implement the next round of system calls. These are open, openat, close, fdatasync, fsync, close_from, revoke, access, eacccess, facccessat, chdir, fchdir, rename, renameat, mkdir, mkdirat, rmdir, _getcwd, dup, dup2, truncate, ftruncate, acct and sync. In addition, the helper functions needed for these to work are included. With the helper functions, all of these system calls are the 'obvious' wrapper...
I've tried to lump these together with related functions in the same change, all less than 100 lines per change (most less than 40). This represents a little over 1/3 of the remaining system calls related to files (we have quite a few more cagegories to go through). I think the lumping represents a good trade-off between 'small enough to review' and 'few enough parts to not add too much overhead' vs 'one commit per system call' which would have bloated this series to 35 pieces. I hope to do the remaining system calls at this chunk granularity and maybe twice as many parts to get through the ~15k backlog I still have to go through. Warner Losh (11): bsd-user: Implement open, openat and close bsd-user: Implement fdatasync, fsync and close_from bsd-user: Implement revoke, access, eaccess and faccessat bsd-user: Implement chdir and fchdir bsd-user: Implement rename and renameat bsd-user: Implement link, linkat, unlink and unlinkat bsd-user: Implement mkdir and mkdirat bsd-user: Implement rmdir and undocumented -_getcwd bsd-user: Implement dup and dup2 bsd-user: Implement trunctate and ftruncate bsd-user: Implement acct and sync bsd-user/bsd-file.h | 369 ++++++++++++++++++++++++++++++++++ bsd-user/freebsd/os-syscall.c | 116 +++++++++++ bsd-user/syscall_defs.h | 4 + 3 files changed, 489 insertions(+) -- 2.33.1