qemu-cr16/hw/9pfs
Mark Johnston 6657f3bb55 9pfs: Add FreeBSD support
This is largely derived from existing Darwin support.  FreeBSD
apparently has better support for *at() system calls so doesn't require
workarounds for a missing mknodat().  The implementation has a couple of
warts however:
- The extattr(2) system calls don't support anything akin to
  XATTR_CREATE or XATTR_REPLACE, so a racy workaround is implemented.
- Attribute names cannot begin with "user." or "system." on ZFS.
  However FreeBSD's extattr(2) system calls support two dedicated
  namespaces for these two.  So "user." or "system." prefixes are
  trimmed off from attribute names and instead EXTATTR_NAMESPACE_USER or
  EXTATTR_NAMESPACE_SYSTEM are picked and passed to extattr system calls
  accordingly.

The 9pfs tests were verified to pass on the UFS, ZFS and tmpfs
filesystems.

Signed-off-by: Mark Johnston <markj@FreeBSD.org>
Link: https://lore.kernel.org/qemu-devel/aJOWhHB2p-fbueAm@nuc
Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
2025-09-18 21:21:29 +02:00
..
9p-local.c 9pfs: Introduce futimens file op 2025-05-05 11:28:29 +02:00
9p-local.h 9pfs: local: open/opendir: don't follow symlinks 2017-02-28 11:21:15 +01:00
9p-posix-acl.c 9pfs: fix removing non-existent POSIX ACL xattr on macOS host 2022-05-01 14:07:03 +02:00
9p-synth.c 9pfs: Add FreeBSD support 2025-09-18 21:21:29 +02:00
9p-synth.h 9pfs: Fix segfault in do_readdir_many caused by struct dirent overread 2022-02-17 16:57:58 +01:00
9p-util-darwin.c 9pfs: fix qemu_mknodat() to always return -1 on error on macOS host 2022-05-01 14:07:03 +02:00
9p-util-freebsd.c 9pfs: Add FreeBSD support 2025-09-18 21:21:29 +02:00
9p-util-generic.c 9pfs: improve v9fs_open() tracing 2025-02-06 17:10:46 +01:00
9p-util-linux.c 9p: darwin: Implement compatibility for mknodat 2022-03-07 11:49:31 +01:00
9p-util.h 9pfs: Add FreeBSD support 2025-09-18 21:21:29 +02:00
9p-xattr-user.c trivial typos: namesapce 2022-06-28 11:06:44 +02:00
9p-xattr.c 9pfs: add link to 9p developer docs 2021-07-05 13:03:16 +02:00
9p-xattr.h 9pfs: fix XattrOperations typedef 2018-01-08 11:18:22 +01:00
9p.c 9pfs: Add FreeBSD support 2025-09-18 21:21:29 +02:00
9p.h hw/9pfs: move G_GNUC_PRINTF to header 2025-07-16 14:18:48 +02:00
codir.c 9pfs: fix 'total_open_fd' decrementation 2025-05-05 11:28:29 +02:00
cofile.c 9pfs: fix 'total_open_fd' decrementation 2025-05-05 11:28:29 +02:00
cofs.c 9pfs: Introduce futimens file op 2025-05-05 11:28:29 +02:00
coth.c thread-pool: avoid passing the pool parameter every time 2023-04-25 13:17:28 +02:00
coth.h 9pfs: Introduce futimens file op 2025-05-05 11:28:29 +02:00
coxattr.c coroutine: Clean up superfluous inclusion of qemu/coroutine.h 2023-01-19 10:18:28 +01:00
Kconfig hw/9pfs: Fix Kconfig dependency problem between 9pfs and Xen 2020-11-05 15:21:11 +01:00
meson.build 9pfs: Add FreeBSD support 2025-09-18 21:21:29 +02:00
trace-events 9pfs: improve v9fs_open() tracing 2025-02-06 17:10:46 +01:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
virtio-9p-device.c qom: Have class_init() take a const data argument 2025-04-25 17:00:41 +02:00
virtio-9p.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
xen-9p-backend.c hw/xen: Make XenDevOps structures const 2024-06-04 11:53:43 +02:00
xen-9pfs.h xen: Import other xen/io/*.h 2019-06-24 10:42:30 +01:00