#include <linux/interval_tree.h>
#include <linux/iommufd.h>
#include <linux/iommu.h>
#include <uapi/linux/iommufd.h>
#include "io_pagetable.h"
void iommufd_ioas_destroy(struct iommufd_object *obj)
{ … }
struct iommufd_ioas *iommufd_ioas_alloc(struct iommufd_ctx *ictx)
{ … }
int iommufd_ioas_alloc_ioctl(struct iommufd_ucmd *ucmd)
{ … }
int iommufd_ioas_iova_ranges(struct iommufd_ucmd *ucmd)
{ … }
static int iommufd_ioas_load_iovas(struct rb_root_cached *itree,
struct iommu_iova_range __user *ranges,
u32 num)
{ … }
int iommufd_ioas_allow_iovas(struct iommufd_ucmd *ucmd)
{ … }
static int conv_iommu_prot(u32 map_flags)
{ … }
int iommufd_ioas_map(struct iommufd_ucmd *ucmd)
{ … }
int iommufd_ioas_copy(struct iommufd_ucmd *ucmd)
{ … }
int iommufd_ioas_unmap(struct iommufd_ucmd *ucmd)
{ … }
int iommufd_option_rlimit_mode(struct iommu_option *cmd,
struct iommufd_ctx *ictx)
{ … }
static int iommufd_ioas_option_huge_pages(struct iommu_option *cmd,
struct iommufd_ioas *ioas)
{ … }
int iommufd_ioas_option(struct iommufd_ucmd *ucmd)
{ … }