This adds support for multiple namespaces by introducing a new 'nvme-ns' device model. The nvme device creates a bus named from the device name ('id'). The nvme-ns devices then connect to this and registers themselves with the nvme device. This changes how an nvme device is created. Example with two namespaces: -drive file=nvme0n1.img,if=none,id=disk1 -drive file=nvme0n2.img,if=none,id=disk2 -device nvme,serial=deadbeef,id=nvme0 -device nvme-ns,drive=disk1,bus=nvme0,nsid=1 -device nvme-ns,drive=disk2,bus=nvme0,nsid=2 The drive property is kept on the nvme device to keep the change backward compatible, but the property is now optional. Specifying a drive for the nvme device will always create the namespace with nsid 1. Signed-off-by: Klaus Jensen <k.jensen@samsung.com> Reviewed-by: Keith Busch <kbusch@kernel.org> Reviewed-by: Minwoo Im <minwoo.im.dev@gmail.com>
22 lines
996 B
Meson
22 lines
996 B
Meson
softmmu_ss.add(files(
|
|
'block.c',
|
|
'cdrom.c',
|
|
'hd-geometry.c'
|
|
))
|
|
softmmu_ss.add(when: 'CONFIG_ECC', if_true: files('ecc.c'))
|
|
softmmu_ss.add(when: 'CONFIG_FDC', if_true: files('fdc.c'))
|
|
softmmu_ss.add(when: 'CONFIG_NAND', if_true: files('nand.c'))
|
|
softmmu_ss.add(when: 'CONFIG_ONENAND', if_true: files('onenand.c'))
|
|
softmmu_ss.add(when: 'CONFIG_PFLASH_CFI01', if_true: files('pflash_cfi01.c'))
|
|
softmmu_ss.add(when: 'CONFIG_PFLASH_CFI02', if_true: files('pflash_cfi02.c'))
|
|
softmmu_ss.add(when: 'CONFIG_SSI_M25P80', if_true: files('m25p80.c'))
|
|
softmmu_ss.add(when: 'CONFIG_SWIM', if_true: files('swim.c'))
|
|
softmmu_ss.add(when: 'CONFIG_XEN', if_true: files('xen-block.c'))
|
|
softmmu_ss.add(when: 'CONFIG_SH4', if_true: files('tc58128.c'))
|
|
softmmu_ss.add(when: 'CONFIG_NVME_PCI', if_true: files('nvme.c', 'nvme-ns.c'))
|
|
|
|
specific_ss.add(when: 'CONFIG_VIRTIO_BLK', if_true: files('virtio-blk.c'))
|
|
specific_ss.add(when: 'CONFIG_VHOST_USER_BLK', if_true: files('vhost-user-blk.c'))
|
|
|
|
subdir('dataplane')
|