linux/include/uapi/linux/virtio_iommu.h

/* SPDX-License-Identifier: BSD-3-Clause */
/*
 * Virtio-iommu definition v0.12
 *
 * Copyright (C) 2019 Arm Ltd.
 */
#ifndef _UAPI_LINUX_VIRTIO_IOMMU_H
#define _UAPI_LINUX_VIRTIO_IOMMU_H

#include <linux/types.h>

/* Feature bits */
#define VIRTIO_IOMMU_F_INPUT_RANGE
#define VIRTIO_IOMMU_F_DOMAIN_RANGE
#define VIRTIO_IOMMU_F_MAP_UNMAP
#define VIRTIO_IOMMU_F_BYPASS
#define VIRTIO_IOMMU_F_PROBE
#define VIRTIO_IOMMU_F_MMIO
#define VIRTIO_IOMMU_F_BYPASS_CONFIG

struct virtio_iommu_range_64 {};

struct virtio_iommu_range_32 {};

struct virtio_iommu_config {};

/* Request types */
#define VIRTIO_IOMMU_T_ATTACH
#define VIRTIO_IOMMU_T_DETACH
#define VIRTIO_IOMMU_T_MAP
#define VIRTIO_IOMMU_T_UNMAP
#define VIRTIO_IOMMU_T_PROBE

/* Status types */
#define VIRTIO_IOMMU_S_OK
#define VIRTIO_IOMMU_S_IOERR
#define VIRTIO_IOMMU_S_UNSUPP
#define VIRTIO_IOMMU_S_DEVERR
#define VIRTIO_IOMMU_S_INVAL
#define VIRTIO_IOMMU_S_RANGE
#define VIRTIO_IOMMU_S_NOENT
#define VIRTIO_IOMMU_S_FAULT
#define VIRTIO_IOMMU_S_NOMEM

struct virtio_iommu_req_head {};

struct virtio_iommu_req_tail {};

#define VIRTIO_IOMMU_ATTACH_F_BYPASS

struct virtio_iommu_req_attach {};

struct virtio_iommu_req_detach {};

#define VIRTIO_IOMMU_MAP_F_READ
#define VIRTIO_IOMMU_MAP_F_WRITE
#define VIRTIO_IOMMU_MAP_F_MMIO

#define VIRTIO_IOMMU_MAP_F_MASK

struct virtio_iommu_req_map {};

struct virtio_iommu_req_unmap {};

#define VIRTIO_IOMMU_PROBE_T_NONE
#define VIRTIO_IOMMU_PROBE_T_RESV_MEM

#define VIRTIO_IOMMU_PROBE_T_MASK

struct virtio_iommu_probe_property {};

#define VIRTIO_IOMMU_RESV_MEM_T_RESERVED
#define VIRTIO_IOMMU_RESV_MEM_T_MSI

struct virtio_iommu_probe_resv_mem {};

struct virtio_iommu_req_probe {};

/* Fault types */
#define VIRTIO_IOMMU_FAULT_R_UNKNOWN
#define VIRTIO_IOMMU_FAULT_R_DOMAIN
#define VIRTIO_IOMMU_FAULT_R_MAPPING

#define VIRTIO_IOMMU_FAULT_F_READ
#define VIRTIO_IOMMU_FAULT_F_WRITE
#define VIRTIO_IOMMU_FAULT_F_EXEC
#define VIRTIO_IOMMU_FAULT_F_ADDRESS

struct virtio_iommu_fault {};

#endif