#include <linux/vfio.h>
#include <linux/iommufd.h>
#include "vfio.h"
MODULE_IMPORT_NS(…);
MODULE_IMPORT_NS(…);
bool vfio_iommufd_device_has_compat_ioas(struct vfio_device *vdev,
struct iommufd_ctx *ictx)
{ … }
int vfio_df_iommufd_bind(struct vfio_device_file *df)
{ … }
int vfio_iommufd_compat_attach_ioas(struct vfio_device *vdev,
struct iommufd_ctx *ictx)
{ … }
void vfio_df_iommufd_unbind(struct vfio_device_file *df)
{ … }
struct iommufd_ctx *vfio_iommufd_device_ictx(struct vfio_device *vdev)
{ … }
EXPORT_SYMBOL_GPL(…);
static int vfio_iommufd_device_id(struct vfio_device *vdev)
{ … }
int vfio_iommufd_get_dev_id(struct vfio_device *vdev, struct iommufd_ctx *ictx)
{ … }
EXPORT_SYMBOL_GPL(…);
int vfio_iommufd_physical_bind(struct vfio_device *vdev,
struct iommufd_ctx *ictx, u32 *out_device_id)
{ … }
EXPORT_SYMBOL_GPL(…);
void vfio_iommufd_physical_unbind(struct vfio_device *vdev)
{ … }
EXPORT_SYMBOL_GPL(…);
int vfio_iommufd_physical_attach_ioas(struct vfio_device *vdev, u32 *pt_id)
{ … }
EXPORT_SYMBOL_GPL(…);
void vfio_iommufd_physical_detach_ioas(struct vfio_device *vdev)
{ … }
EXPORT_SYMBOL_GPL(…);
static void vfio_emulated_unmap(void *data, unsigned long iova,
unsigned long length)
{ … }
static const struct iommufd_access_ops vfio_user_ops = …;
int vfio_iommufd_emulated_bind(struct vfio_device *vdev,
struct iommufd_ctx *ictx, u32 *out_device_id)
{ … }
EXPORT_SYMBOL_GPL(…);
void vfio_iommufd_emulated_unbind(struct vfio_device *vdev)
{ … }
EXPORT_SYMBOL_GPL(…);
int vfio_iommufd_emulated_attach_ioas(struct vfio_device *vdev, u32 *pt_id)
{ … }
EXPORT_SYMBOL_GPL(…);
void vfio_iommufd_emulated_detach_ioas(struct vfio_device *vdev)
{ … }
EXPORT_SYMBOL_GPL(…);