qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v3 00/32] Implement the stat system calls for FreeBSD.


From: Warner Losh
Subject: Re: [PATCH v3 00/32] Implement the stat system calls for FreeBSD.
Date: Sat, 19 Aug 2023 22:03:46 -0600



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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]