qemu-cr16/hw
Antonios Motakis 1a6ed33cc5 9p: Added virtfs option 'multidevs=remap|forbid|warn'
'warn' (default): Only log an error message (once) on host if more than one
device is shared by same export, except of that just ignore this config
error though. This is the default behaviour for not breaking existing
installations implying that they really know what they are doing.

'forbid': Like 'warn', but except of just logging an error this
also denies access of guest to additional devices.

'remap': Allows to share more than one device per export by remapping
inodes from host to guest appropriately. To support multiple devices on the
9p share, and avoid qid path collisions we take the device id as input to
generate a unique QID path. The lowest 48 bits of the path will be set
equal to the file inode, and the top bits will be uniquely assigned based
on the top 16 bits of the inode and the device id.

Signed-off-by: Antonios Motakis <antonios.motakis@huawei.com>
[CS: - Rebased to https://github.com/gkurz/qemu/commits/9p-next
       (SHA1 7fc4c49e91).
     - Added virtfs option 'multidevs', original patch simply did the inode
       remapping without being asked.
     - Updated hash calls to new xxhash API.
     - Updated docs for new option 'multidevs'.
     - Fixed v9fs_do_readdir() not having remapped inodes.
     - Log error message when running out of prefixes in
       qid_path_prefixmap().
     - Fixed definition of QPATH_INO_MASK.
     - Wrapped qpp_table initialization to dedicated qpp_table_init()
       function.
     - Dropped unnecessary parantheses in qpp_lookup_func().
     - Dropped unnecessary g_malloc0() result checks. ]
Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
[groug: - Moved "multidevs" parsing to the local backend.
        - Added hint to invalid multidevs option error.
	- Turn "remap" into "x-remap". ]
Signed-off-by: Greg Kurz <groug@kaod.org>
2019-10-10 11:36:05 +02:00
..
9pfs 9p: Added virtfs option 'multidevs=remap|forbid|warn' 2019-10-10 11:36:05 +02:00
acpi ipmi: Fix SSIF ACPI handling to use the right CRS 2019-09-20 14:08:10 -05:00
adc Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
alpha Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
arm memory: allow memory_region_register_iommu_notifier() to fail 2019-10-04 18:49:18 +02:00
audio audio: remove audio_MIN, audio_MAX 2019-08-21 09:13:37 +02:00
block virtio-blk: schedule virtio_notify_config to run on main context 2019-10-08 14:28:25 +01:00
bt Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
char spapr: Replace spapr_vio_qirq() helper with spapr_vio_irq_pulse() helper 2019-10-04 19:08:22 +10:00
core hw/core/loader: Fix possible crash in rom_copy() 2019-10-01 11:42:27 +02:00
cpu hw/core: Move cpu.c, cpu.h from qom/ to hw/core/ 2019-08-21 13:24:01 +02:00
cris Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
display ati: use vga_read_byte in ati_cursor_define 2019-09-19 10:37:46 +02:00
dma hw/dma/xilinx_axi: Use object_initialize_child for correct ref. counting 2019-09-03 16:20:34 +01:00
gpio hw/gpio: Add basic Aspeed GPIO model for AST2400 and AST2500 2019-09-13 16:05:00 +01:00
hppa hppa: fix leak from g_strdup_printf 2019-10-04 18:49:17 +02:00
hyperv Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
i2c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
i386 memory: allow memory_region_register_iommu_notifier() to fail 2019-10-04 18:49:18 +02:00
ide ide: fix leak from qemu_allocate_irqs 2019-10-04 18:49:16 +02:00
input sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
intc xive: Improve irq claim/free path 2019-10-04 19:08:23 +10:00
ipack Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
ipmi ipmi: Add an SMBus IPMI interface 2019-09-20 14:08:10 -05:00
isa hw/isa: Introduce a CONFIG_ISA_SUPERIO switch for isa-superio.c 2019-10-04 18:49:16 +02:00
lm32 Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
m68k mcf5208: fix leak from qemu_allocate_irqs 2019-10-04 18:49:16 +02:00
mem numa: move numa global variable nb_numa_nodes into MachineState 2019-09-03 11:26:55 -03:00
microblaze microblaze: fix leak of fdevice tree blob 2019-10-04 18:49:16 +02:00
mips mips: fix memory leaks in board initialization 2019-10-04 18:49:17 +02:00
misc trace: Remove trailing newline in events 2019-09-18 10:19:47 +01:00
moxie Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
net spapr: Replace spapr_vio_qirq() helper with spapr_vio_irq_pulse() helper 2019-10-04 19:08:22 +10:00
nios2 Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
nvram sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
openrisc Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
pci Include sysemu/sysemu.h a lot less 2019-08-16 13:31:53 +02:00
pci-bridge numa: move numa global variable nb_numa_nodes into MachineState 2019-09-03 11:26:55 -03:00
pci-host hw/core: Add a config switch for the "or-irq" device 2019-08-20 09:11:17 +02:00
pcmcia Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
ppc ppc patch queue 2019-10-04 2019-10-07 13:49:02 +01:00
rdma sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
riscv riscv: sifive_u: Update model and compatible strings in device tree 2019-09-17 08:42:49 -07:00
s390x s390: do not call memory_region_allocate_system_memory() multiple times 2019-09-30 13:51:50 +02:00
scsi trace: Remove trailing newline in events 2019-09-18 10:19:47 +01:00
sd trace: Remove trailing newline in events 2019-09-18 10:19:47 +01:00
semihosting Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
sh4 sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
smbios smbios:ipmi: Ignore IPMI devices with no fwinfo function 2019-09-20 14:08:10 -05:00
sparc sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
sparc64 hw/misc: Add a config switch for the "unimplemented" device 2019-08-20 09:11:17 +02:00
ssi aspeed/smc: Calculate checksum on normal DMA 2019-09-13 16:05:01 +01:00
timer lm32: do not leak memory on object_new/object_unref 2019-10-04 18:49:17 +02:00
tpm Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
tricore Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
unicore32 Include hw/irq.h a lot less 2019-08-16 13:31:52 +02:00
usb usb-mtp: add sanity checks on rootdir 2019-08-29 07:31:12 +02:00
vfio memory: allow memory_region_register_iommu_notifier() to fail 2019-10-04 18:49:18 +02:00
virtio memory: allow memory_region_register_iommu_notifier() to fail 2019-10-04 18:49:18 +02:00
watchdog sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
xen xen-bus: only set the xen device frontend state if it is missing 2019-09-24 12:21:29 +01:00
xenpv Include sysemu/sysemu.h a lot less 2019-08-16 13:31:53 +02:00
xtensa sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
Kconfig hw/core: Add a config switch for the "register" device 2019-08-20 09:11:05 +02:00
Makefile.objs Makefile: do not repeat $(CONFIG_SOFTMMU) in hw/Makefile.objs 2019-07-15 20:58:37 +02:00