qemu-e2k/hw
Keno Fischer 029ed1bd9d 9p: darwin: Implement compatibility for mknodat
Darwin does not support mknodat. However, to avoid race conditions
with later setting the permissions, we must avoid using mknod on
the full path instead. We could try to fchdir, but that would cause
problems if multiple threads try to call mknodat at the same time.
However, luckily there is a solution: Darwin includes a function
that sets the cwd for the current thread only.
This should suffice to use mknod safely.

This function (pthread_fchdir_np) is protected by a check in
meson in a patch later in this series.

Signed-off-by: Keno Fischer <keno@juliacomputing.com>
Signed-off-by: Michael Roitzsch <reactorcontrol@icloud.com>
[Will Cohen: - Adjust coding style
             - Replace clang references with gcc
             - Note radar filed with Apple for missing syscall
             - Replace direct syscall with pthread_fchdir_np and
               adjust patch notes accordingly
             - Declare pthread_fchdir_np with
             - __attribute__((weak_import)) to allow checking for
               its presence before usage
             - Move declarations above cplusplus guard
             - Add CONFIG_PTHREAD_FCHDIR_NP to meson and check for
               presence in 9p-util
             - Rebase to apply cleanly on top of the 2022-02-10
               changes to 9pfs
             - Fix line over 90 characters formatting error]
Signed-off-by: Will Cohen <wwcohen@gmail.com>
Message-Id: <20220227223522.91937-10-wwcohen@gmail.com>
Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
Reviewed-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
2022-03-07 11:49:31 +01:00
..
9pfs 9p: darwin: Implement compatibility for mknodat 2022-03-07 11:49:31 +01:00
acpi * Improve virtio-net failover test 2022-02-22 13:07:32 +00:00
adc
alpha
arm target/arm: Report KVM's actual PSCI version to guest in dtb 2022-03-02 19:27:37 +00:00
audio Remove unnecessary minimum_version_id_old fields 2022-01-28 15:38:23 +01:00
avr
block block: rename bdrv_invalidate_cache_all, blk_invalidate_cache and test_sync_op_invalidate_cache 2022-03-04 18:14:40 +01:00
char hw/char/exynos4210_uart: Fix crash on trying to load VM state 2022-01-28 14:29:46 +00:00
core clock-vmstate: Add missing END_OF_LIST 2022-03-02 18:12:40 +00:00
cpu
cris
display hw/display/vmware_vga: replace fprintf calls with trace events 2022-03-04 11:38:07 +01:00
dma Mark remaining global TypeInfo instances as const 2022-02-21 13:30:20 +00:00
gpio exec/exec-all: Move 'qemu/log.h' include in units requiring it 2022-02-21 10:18:06 +01:00
hppa hppa: Add support for an emulated TOC/NMI button. 2022-02-02 18:46:42 +01:00
hyperv
i2c hw/i2c: flatten pca954x mux device 2022-03-02 19:27:36 +00:00
i386 hw/i386: Replace magic number with field length calculation 2022-03-04 11:24:52 +01:00
ide include: Move hardware version declarations to new qemu/hw-version.h 2022-02-21 13:30:20 +00:00
input hw/input/tsc210x: Don't abort on bad SPI word widths 2022-03-02 19:27:36 +00:00
intc hw/intc: Add RISC-V AIA IMSIC device emulation 2022-03-03 13:14:50 +10:00
ipack
ipmi Mark remaining global TypeInfo instances as const 2022-02-21 13:30:20 +00:00
isa
m68k m68k: virt: correctly set the initial PC 2022-01-20 09:09:37 +01:00
mem Mark remaining global TypeInfo instances as const 2022-02-21 13:30:20 +00:00
microblaze
mips hw/mips/jazz: Inline vga_mmio_init() and remove it 2022-01-13 10:58:54 +01:00
misc aspeed queue: 2022-02-28 16:46:45 +00:00
net Mark remaining global TypeInfo instances as const 2022-02-21 13:30:20 +00:00
nios2
nubus
nvme hw/nvme: 64-bit pi support 2022-03-03 09:30:21 +01:00
nvram block: rename bdrv_invalidate_cache_all, blk_invalidate_cache and test_sync_op_invalidate_cache 2022-03-04 18:14:40 +01:00
openrisc hw/openrisc/openrisc_sim: Add support for initrd loading 2022-02-26 10:39:36 +09:00
pci
pci-bridge
pci-host ppc/pnv: Add support for PHB5 "Address-based trigger" mode 2022-03-02 06:51:39 +01:00
pcmcia
ppc hw/ppc/spapr_vio.c: use g_autofree in spapr_dt_vdevice() 2022-03-02 06:51:40 +01:00
rdma hw/dma: Use dma_addr_t type definition when relevant 2022-01-18 12:56:29 +01:00
remote hw/remote: Add missing include 2022-02-21 10:18:06 +01:00
riscv hw: riscv: opentitan: fixup SPI addresses 2022-03-03 13:14:50 +10:00
rtc rtc: Have event RTC_CHANGE identify the RTC by QOM path 2022-02-28 11:39:35 +01:00
rx
s390x s390x/cpumodel: Bump up QEMU model to a stripped-down IBM z15 GA1 2022-02-28 11:29:15 +01:00
scsi include: Move hardware version declarations to new qemu/hw-version.h 2022-02-21 13:30:20 +00:00
sd Mark remaining global TypeInfo instances as const 2022-02-21 13:30:20 +00:00
sensor Kconfig: Add I2C_DEVICES device group 2022-02-21 13:30:20 +00:00
sh4
smbios smbios: Rename SMBIOS_ENTRY_POINT_* enums 2022-01-07 05:19:55 -05:00
sparc
sparc64
ssi migration: Remove load_state_old and minimum_version_id_old 2022-03-02 18:20:45 +00:00
timer hw/timer: fix a9gtimer vmstate 2022-02-21 13:30:21 +00:00
tpm hw/tpm: Clean includes 2022-02-21 10:18:06 +01:00
tricore
usb hw/usb/redirect.c: Stop using qemu_oom_check() 2022-03-04 11:20:16 +01:00
vfio Mark remaining global TypeInfo instances as const 2022-02-21 13:30:20 +00:00
virtio include: Move qemu_madvise() and related #defines to new qemu/madvise.h 2022-02-21 13:30:20 +00:00
watchdog
xen aio-posix: split poll check from ready handler 2022-01-12 17:09:39 +00:00
xenpv
xtensa
Kconfig
meson.build