1f94b21801
A HostIOMMUDevice is an abstraction for an assigned device that is protected by a physical IOMMU (aka host IOMMU). The userspace interaction with this physical IOMMU can be done either through the VFIO IOMMU type 1 legacy backend or the new iommufd backend. The assigned device can be a VFIO device or a VDPA device. The HostIOMMUDevice is needed to interact with the host IOMMU that protects the assigned device. It is especially useful when the device is also protected by a virtual IOMMU as this latter use the translation services of the physical IOMMU and is constrained by it. In that context the HostIOMMUDevice can be passed to the virtual IOMMU to collect physical IOMMU capabilities such as the supported address width. In the future, the virtual IOMMU will use the HostIOMMUDevice to program the guest page tables in the first translation stage of the physical IOMMU. Introduce .realize() to initialize HostIOMMUDevice further after instance init. Suggested-by: Cédric Le Goater <clg@redhat.com> Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com> Reviewed-by: Eric Auger <eric.auger@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
36 lines
1.0 KiB
Meson
36 lines
1.0 KiB
Meson
system_ss.add([files(
|
|
'cryptodev-builtin.c',
|
|
'cryptodev-hmp-cmds.c',
|
|
'cryptodev.c',
|
|
'hostmem-ram.c',
|
|
'hostmem.c',
|
|
'rng-builtin.c',
|
|
'rng-egd.c',
|
|
'rng.c',
|
|
'confidential-guest-support.c',
|
|
), numa])
|
|
|
|
if host_os != 'windows'
|
|
system_ss.add(files('rng-random.c'))
|
|
system_ss.add(files('hostmem-file.c'))
|
|
endif
|
|
if host_os == 'linux'
|
|
system_ss.add(files('hostmem-memfd.c'))
|
|
system_ss.add(files('host_iommu_device.c'))
|
|
endif
|
|
if keyutils.found()
|
|
system_ss.add(keyutils, files('cryptodev-lkcf.c'))
|
|
endif
|
|
if have_vhost_user
|
|
system_ss.add(when: 'CONFIG_VIRTIO', if_true: files('vhost-user.c'))
|
|
endif
|
|
system_ss.add(when: 'CONFIG_VIRTIO_CRYPTO', if_true: files('cryptodev-vhost.c'))
|
|
system_ss.add(when: 'CONFIG_IOMMUFD', if_true: files('iommufd.c'))
|
|
if have_vhost_user_crypto
|
|
system_ss.add(when: 'CONFIG_VIRTIO_CRYPTO', if_true: files('cryptodev-vhost-user.c'))
|
|
endif
|
|
system_ss.add(when: gio, if_true: files('dbus-vmstate.c'))
|
|
system_ss.add(when: 'CONFIG_SGX', if_true: files('hostmem-epc.c'))
|
|
|
|
subdir('tpm')
|