xref: /qemu/hw/vfio/vfio-iommufd.h (revision 090c9641882da217e40936c98742749e4cc94130)
1*d4a8f286SCédric Le Goater /*
2*d4a8f286SCédric Le Goater  * VFIO iommufd
3*d4a8f286SCédric Le Goater  *
4*d4a8f286SCédric Le Goater  * Copyright Red Hat, Inc. 2025
5*d4a8f286SCédric Le Goater  *
6*d4a8f286SCédric Le Goater  * SPDX-License-Identifier: GPL-2.0-or-later
7*d4a8f286SCédric Le Goater  */
8*d4a8f286SCédric Le Goater 
9*d4a8f286SCédric Le Goater #ifndef HW_VFIO_VFIO_IOMMUFD_H
10*d4a8f286SCédric Le Goater #define HW_VFIO_VFIO_IOMMUFD_H
11*d4a8f286SCédric Le Goater 
12*d4a8f286SCédric Le Goater #include "hw/vfio/vfio-container-base.h"
13*d4a8f286SCédric Le Goater 
14*d4a8f286SCédric Le Goater typedef struct VFIODevice VFIODevice;
15*d4a8f286SCédric Le Goater 
16*d4a8f286SCédric Le Goater typedef struct VFIOIOASHwpt {
17*d4a8f286SCédric Le Goater     uint32_t hwpt_id;
18*d4a8f286SCédric Le Goater     uint32_t hwpt_flags;
19*d4a8f286SCédric Le Goater     QLIST_HEAD(, VFIODevice) device_list;
20*d4a8f286SCédric Le Goater     QLIST_ENTRY(VFIOIOASHwpt) next;
21*d4a8f286SCédric Le Goater } VFIOIOASHwpt;
22*d4a8f286SCédric Le Goater 
23*d4a8f286SCédric Le Goater typedef struct IOMMUFDBackend IOMMUFDBackend;
24*d4a8f286SCédric Le Goater 
25*d4a8f286SCédric Le Goater typedef struct VFIOIOMMUFDContainer {
26*d4a8f286SCédric Le Goater     VFIOContainerBase bcontainer;
27*d4a8f286SCédric Le Goater     IOMMUFDBackend *be;
28*d4a8f286SCédric Le Goater     uint32_t ioas_id;
29*d4a8f286SCédric Le Goater     QLIST_HEAD(, VFIOIOASHwpt) hwpt_list;
30*d4a8f286SCédric Le Goater } VFIOIOMMUFDContainer;
31*d4a8f286SCédric Le Goater 
32*d4a8f286SCédric Le Goater OBJECT_DECLARE_SIMPLE_TYPE(VFIOIOMMUFDContainer, VFIO_IOMMU_IOMMUFD);
33*d4a8f286SCédric Le Goater 
34*d4a8f286SCédric Le Goater #endif /* HW_VFIO_VFIO_IOMMUFD_H */
35