mirror of
https://github.com/Motorhead1991/qemu.git
synced 2026-02-17 18:02:14 -07:00
vfio/iommufd: Implement [at|de]tach_hwpt handlers
Implement [at|de]tach_hwpt handlers in VFIO subsystem. vIOMMU utilizes them to attach to or detach from hwpt on host side. Signed-off-by: Yi Liu <yi.l.liu@intel.com> Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Eric Auger <eric.auger@redhat.com> Reviewed-by: Nicolin Chen <nicolinc@nvidia.com> Link: https://lore.kernel.org/qemu-devel/20250604062115.4004200-4-zhenzhong.duan@intel.com Signed-off-by: Cédric Le Goater <clg@redhat.com>
This commit is contained in:
parent
98962d6298
commit
e50a3ead97
1 changed files with 22 additions and 0 deletions
|
|
@ -815,6 +815,24 @@ static void vfio_iommu_iommufd_class_init(ObjectClass *klass, const void *data)
|
|||
vioc->query_dirty_bitmap = iommufd_query_dirty_bitmap;
|
||||
};
|
||||
|
||||
static bool
|
||||
host_iommu_device_iommufd_vfio_attach_hwpt(HostIOMMUDeviceIOMMUFD *idev,
|
||||
uint32_t hwpt_id, Error **errp)
|
||||
{
|
||||
VFIODevice *vbasedev = HOST_IOMMU_DEVICE(idev)->agent;
|
||||
|
||||
return !iommufd_cdev_attach_ioas_hwpt(vbasedev, hwpt_id, errp);
|
||||
}
|
||||
|
||||
static bool
|
||||
host_iommu_device_iommufd_vfio_detach_hwpt(HostIOMMUDeviceIOMMUFD *idev,
|
||||
Error **errp)
|
||||
{
|
||||
VFIODevice *vbasedev = HOST_IOMMU_DEVICE(idev)->agent;
|
||||
|
||||
return iommufd_cdev_detach_ioas_hwpt(vbasedev, errp);
|
||||
}
|
||||
|
||||
static bool hiod_iommufd_vfio_realize(HostIOMMUDevice *hiod, void *opaque,
|
||||
Error **errp)
|
||||
{
|
||||
|
|
@ -869,10 +887,14 @@ hiod_iommufd_vfio_get_page_size_mask(HostIOMMUDevice *hiod)
|
|||
static void hiod_iommufd_vfio_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
HostIOMMUDeviceClass *hiodc = HOST_IOMMU_DEVICE_CLASS(oc);
|
||||
HostIOMMUDeviceIOMMUFDClass *idevc = HOST_IOMMU_DEVICE_IOMMUFD_CLASS(oc);
|
||||
|
||||
hiodc->realize = hiod_iommufd_vfio_realize;
|
||||
hiodc->get_iova_ranges = hiod_iommufd_vfio_get_iova_ranges;
|
||||
hiodc->get_page_size_mask = hiod_iommufd_vfio_get_page_size_mask;
|
||||
|
||||
idevc->attach_hwpt = host_iommu_device_iommufd_vfio_attach_hwpt;
|
||||
idevc->detach_hwpt = host_iommu_device_iommufd_vfio_detach_hwpt;
|
||||
};
|
||||
|
||||
static const TypeInfo types[] = {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue