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