mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 23:33:54 -06:00
vfio: Introduce a new header file for VFIOIOMMUFD declarations
Gather all VFIOIOMMUFD related declarations introduced by commits5ee3dc7af7
("vfio/iommufd: Implement the iommufd backend") and5b1e96e654
("vfio/iommufd: Introduce auto domain creation") into "vfio-iommufd.h". This to reduce exposure of VFIO internals in "hw/vfio/vfio-common.h". Cc: Joao Martins <joao.m.martins@oracle.com> Cc: Yi Liu <yi.l.liu@intel.com> Reviewed-by: John Levon <john.levon@nutanix.com> Link: https://lore.kernel.org/qemu-devel/20250318095415.670319-10-clg@redhat.com Reviewed-by: Joao Martins <joao.m.martins@oracle.com> Reviewed-by: Zhenzhong Duan <zhenzhong.duan@intel.com> Link: https://lore.kernel.org/qemu-devel/20250326075122.1299361-11-clg@redhat.com Signed-off-by: Cédric Le Goater <clg@redhat.com>
This commit is contained in:
parent
5a339dd8c1
commit
d4a8f286e9
3 changed files with 38 additions and 18 deletions
|
@ -25,6 +25,7 @@
|
||||||
#include "qemu/cutils.h"
|
#include "qemu/cutils.h"
|
||||||
#include "qemu/chardev_open.h"
|
#include "qemu/chardev_open.h"
|
||||||
#include "pci.h"
|
#include "pci.h"
|
||||||
|
#include "vfio-iommufd.h"
|
||||||
|
|
||||||
static int iommufd_cdev_map(const VFIOContainerBase *bcontainer, hwaddr iova,
|
static int iommufd_cdev_map(const VFIOContainerBase *bcontainer, hwaddr iova,
|
||||||
ram_addr_t size, void *vaddr, bool readonly)
|
ram_addr_t size, void *vaddr, bool readonly)
|
||||||
|
|
34
hw/vfio/vfio-iommufd.h
Normal file
34
hw/vfio/vfio-iommufd.h
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
/*
|
||||||
|
* VFIO iommufd
|
||||||
|
*
|
||||||
|
* Copyright Red Hat, Inc. 2025
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef HW_VFIO_VFIO_IOMMUFD_H
|
||||||
|
#define HW_VFIO_VFIO_IOMMUFD_H
|
||||||
|
|
||||||
|
#include "hw/vfio/vfio-container-base.h"
|
||||||
|
|
||||||
|
typedef struct VFIODevice VFIODevice;
|
||||||
|
|
||||||
|
typedef struct VFIOIOASHwpt {
|
||||||
|
uint32_t hwpt_id;
|
||||||
|
uint32_t hwpt_flags;
|
||||||
|
QLIST_HEAD(, VFIODevice) device_list;
|
||||||
|
QLIST_ENTRY(VFIOIOASHwpt) next;
|
||||||
|
} VFIOIOASHwpt;
|
||||||
|
|
||||||
|
typedef struct IOMMUFDBackend IOMMUFDBackend;
|
||||||
|
|
||||||
|
typedef struct VFIOIOMMUFDContainer {
|
||||||
|
VFIOContainerBase bcontainer;
|
||||||
|
IOMMUFDBackend *be;
|
||||||
|
uint32_t ioas_id;
|
||||||
|
QLIST_HEAD(, VFIOIOASHwpt) hwpt_list;
|
||||||
|
} VFIOIOMMUFDContainer;
|
||||||
|
|
||||||
|
OBJECT_DECLARE_SIMPLE_TYPE(VFIOIOMMUFDContainer, VFIO_IOMMU_IOMMUFD);
|
||||||
|
|
||||||
|
#endif /* HW_VFIO_VFIO_IOMMUFD_H */
|
|
@ -69,27 +69,12 @@ typedef struct VFIOContainer {
|
||||||
|
|
||||||
OBJECT_DECLARE_SIMPLE_TYPE(VFIOContainer, VFIO_IOMMU_LEGACY);
|
OBJECT_DECLARE_SIMPLE_TYPE(VFIOContainer, VFIO_IOMMU_LEGACY);
|
||||||
|
|
||||||
typedef struct IOMMUFDBackend IOMMUFDBackend;
|
|
||||||
|
|
||||||
typedef struct VFIOIOASHwpt {
|
|
||||||
uint32_t hwpt_id;
|
|
||||||
uint32_t hwpt_flags;
|
|
||||||
QLIST_HEAD(, VFIODevice) device_list;
|
|
||||||
QLIST_ENTRY(VFIOIOASHwpt) next;
|
|
||||||
} VFIOIOASHwpt;
|
|
||||||
|
|
||||||
typedef struct VFIOIOMMUFDContainer {
|
|
||||||
VFIOContainerBase bcontainer;
|
|
||||||
IOMMUFDBackend *be;
|
|
||||||
uint32_t ioas_id;
|
|
||||||
QLIST_HEAD(, VFIOIOASHwpt) hwpt_list;
|
|
||||||
} VFIOIOMMUFDContainer;
|
|
||||||
|
|
||||||
OBJECT_DECLARE_SIMPLE_TYPE(VFIOIOMMUFDContainer, VFIO_IOMMU_IOMMUFD);
|
|
||||||
|
|
||||||
typedef struct VFIODeviceOps VFIODeviceOps;
|
typedef struct VFIODeviceOps VFIODeviceOps;
|
||||||
typedef struct VFIOMigration VFIOMigration;
|
typedef struct VFIOMigration VFIOMigration;
|
||||||
|
|
||||||
|
typedef struct IOMMUFDBackend IOMMUFDBackend;
|
||||||
|
typedef struct VFIOIOASHwpt VFIOIOASHwpt;
|
||||||
|
|
||||||
typedef struct VFIODevice {
|
typedef struct VFIODevice {
|
||||||
QLIST_ENTRY(VFIODevice) next;
|
QLIST_ENTRY(VFIODevice) next;
|
||||||
QLIST_ENTRY(VFIODevice) container_next;
|
QLIST_ENTRY(VFIODevice) container_next;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue