Message ID | 20230813084153.6510-1-kariem.taha2.7@gmail.com |
---|---|
Headers | show |
Series | Implement the stat system calls for FreeBSD. | expand |
On Sun, Aug 13, 2023 at 1:43 PM Karim Taha <kariem.taha2.7@gmail.com> wrote: > Upstream the implementation of the stat system calls from the > qemu-bsd-user fork, the following system calls are implemented: > stat(2), lstat(2), fstat(2), fstatat(2), nstat, nfstat, nlstat > getfh(2), lgetfh(2), fhopen(2), fhstat(2), fhstatfs(2), statfs(2) > fstatfs(2), getfsstat(2), getdents(2), getdirentries(2), fcntl(2) > The changes themselves look good (although i had to apply the safe_fcntl one by hand, it was trivial, but next time i'll ask you to redo things). I also needed to tweak the commit messages in three ways: (1) I had to add 'bsd-user: ' to the front of the first line of each of the commits (2) I had to reword a few of them to make them unique and (3) I had to wrap the lines at 80 columns in a few places. The best way to check on this is to make sure each of the lines with 'git log --oneline master..' is different. Next time I'll try to flag them at the review stage. checkpatches.pl passes with minor warnings (all expected and OK). And these patches seem to match bsd-user fork blitz. And my acceptance test works, so long as I don't add '-strace' which hits this bug documented in strace.c: /* XXX: this format system is broken because it uses host types and host pointers for strings */ and we pass a target address to a host to do a %s on... Hopefully all that code will go away, but since this is a pre-existing bug that you weren't trying to fix, this counts as a pass. It doesn't fail in the obvious way due to another bug in qemu-upstream bsd-user, that's fixed in the blitz branch (it generates a segv, which isn't properly handled sometimes in qemu upstream). I document it here for others that might run into it in the future :). I've queued them to the branch that I'll submit when things open up... Warner > Karim Taha (1): > Add os-stat.c to the build > > Kyle Evans (2): > Disable clang warnings > Define safe_fcntl macro in bsd-user/syscall_defs.h > > Michal Meloun (8): > Add struct target_stat to bsd-user/syscall_defs.h > Add struct target_statfs to bsd-user/syscall_defs.h > Implement h2t_freebsd_stat and h2t_freebsd_statfs functions > Implement freebsd11 stat related syscalls > Implement freebsd11 stat related syscalls > Implement freebsd11 stat related syscalls > Implement freebsd11 stat related syscalls > Implement freebsd11 stat related syscalls > > Mikaël Urankar (1): > Implement do_freebsd_realpathat syscall > > Stacey Son (13): > Declarations of h2t and t2h conversion functions. > Add struct target_freebsd11_stat to bsd-user/syscall_defs > Add structs target_freebsd11_nstat and target_freebsd11_statfs to > bsd-user/syscall_defs.h > Add struct target_freebsd_fhandle and fcntl flags to > bsd-user/syscall_defs.h > Implement h2t_freebsd11_stat h2t_freebsd_nstat > Implement h2t_freebsd_fhandle t2h_freebsd_fhandle functions > Implement h2t_freebds11_statfs > Implement target_to_host_fcntl_cmd > Implement stat related syscalls > Implement stat related syscalls > Implement stat related syscalls > Implement stat related syscalls > Implement stat related syscalls > > Warner Losh (7): > Move _WANT_FREEBSD macros to include/qemu/osdep.h > Update the definitions of __put_user and __get_user macros > Rename target_freebsd_time_t to target_time_t > Add glue to call the following syscalls to the freebsd_syscall > function: > Add glue to call the following syscalls to the freebsd_syscall > function: > Add glue to call the following syscalls to the freebsd_syscall > function: > Add glue to call the following syscalls to the freebsd_syscall > function: > > bsd-user/freebsd/meson.build | 1 + > bsd-user/freebsd/os-stat.c | 262 ++++++++++++++ > bsd-user/freebsd/os-stat.h | 663 ++++++++++++++++++++++++++++++++++ > bsd-user/freebsd/os-syscall.c | 121 ++++++- > bsd-user/freebsd/qemu-os.h | 50 +++ > bsd-user/qemu.h | 82 ++--- > bsd-user/signal.c | 5 +- > bsd-user/syscall_defs.h | 221 +++++++++++- > include/qemu/compiler.h | 30 ++ > include/qemu/osdep.h | 13 + > 10 files changed, 1382 insertions(+), 66 deletions(-) > create mode 100644 bsd-user/freebsd/os-stat.c > create mode 100644 bsd-user/freebsd/os-stat.h > create mode 100644 bsd-user/freebsd/qemu-os.h > > -- > 2.40.0 > >
Subjects should start with a subsystem tag. Diffstat suggests "bsd-user:".