This is a followup to https://lists.nongnu.org/archive/html/qemu-devel/2022-01/msg05993.html, adding 9p server support for Darwin.
Since v3, the following changes have been made: - Move XATTR_SIZE_MAX to P9_XATTR_SIZE MAX in 9p.h, and provide explanatory context as preliminary solution - Add explanatory note surrounding virtio-9p-test with output of pre-patch failing test - Remove superfluous header guards from file-opt-9p - Add note about virtfs-proxy-helper being disabled on non-linux for this patch series - Note radar filed with Apple for missing mknodat syscall - Replace direct syscall to pthread_fchdir with pthread_fchdir_np, and add check for this function’s presence in meson - Ensure that d_seekoff is filled using telldir on darwin, and create qemu_dirent_off helper to decide which to access. - Ensure that [amc]tim.tv_sec are all initialized alongside [amc]tim.tv_nsec in 9p-proxy - Ensure that all patch email addresses are valid - Add telldir error handling for dirent on darwin Keno Fischer (10): 9p: linux: Fix a couple Linux assumptions 9p: Rename 9p-util -> 9p-util-linux 9p: darwin: Handle struct stat(fs) differences 9p: darwin: Handle struct dirent differences 9p: darwin: Ignore O_{NOATIME, DIRECT} 9p: darwin: Move XATTR_SIZE_MAX->P9_XATTR_SIZE_MAX 9p: darwin: *xattr_nofollow implementations 9p: darwin: Compatibility for f/l*xattr 9p: darwin: Implement compatibility for mknodat 9p: darwin: meson: Allow VirtFS on Darwin Will Cohen (1): 9p: darwin: Adjust assumption on virtio-9p-test fsdev/file-op-9p.h | 9 ++- fsdev/meson.build | 1 + hw/9pfs/9p-local.c | 28 ++++++-- hw/9pfs/9p-proxy.c | 38 ++++++++++- hw/9pfs/9p-synth.c | 6 ++ hw/9pfs/9p-util-darwin.c | 91 ++++++++++++++++++++++++++ hw/9pfs/{9p-util.c => 9p-util-linux.c} | 7 +- hw/9pfs/9p-util.h | 38 +++++++++++ hw/9pfs/9p.c | 50 ++++++++++++-- hw/9pfs/9p.h | 11 ++++ hw/9pfs/codir.c | 7 ++ hw/9pfs/meson.build | 3 +- include/qemu/xattr.h | 4 +- meson.build | 14 ++-- tests/qtest/virtio-9p-test.c | 2 +- 15 files changed, 285 insertions(+), 24 deletions(-) create mode 100644 hw/9pfs/9p-util-darwin.c rename hw/9pfs/{9p-util.c => 9p-util-linux.c} (90%) -- 2.32.0 (Apple Git-132)