aboutsummaryrefslogtreecommitdiff
path: root/include/sysemu/host_iommu_device.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/sysemu/host_iommu_device.h')
-rw-r--r--include/sysemu/host_iommu_device.h109
1 files changed, 0 insertions, 109 deletions
diff --git a/include/sysemu/host_iommu_device.h b/include/sysemu/host_iommu_device.h
deleted file mode 100644
index c1bf74a..0000000
--- a/include/sysemu/host_iommu_device.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Host IOMMU device abstract declaration
- *
- * Copyright (C) 2024 Intel Corporation.
- *
- * Authors: Zhenzhong Duan <zhenzhong.duan@intel.com>
- *
- * This work is licensed under the terms of the GNU GPL, version 2. See
- * the COPYING file in the top-level directory.
- */
-
-#ifndef HOST_IOMMU_DEVICE_H
-#define HOST_IOMMU_DEVICE_H
-
-#include "qom/object.h"
-#include "qapi/error.h"
-
-/**
- * struct HostIOMMUDeviceCaps - Define host IOMMU device capabilities.
- *
- * @type: host platform IOMMU type.
- *
- * @aw_bits: host IOMMU address width. 0xff if no limitation.
- */
-typedef struct HostIOMMUDeviceCaps {
- uint32_t type;
- uint8_t aw_bits;
-} HostIOMMUDeviceCaps;
-
-#define TYPE_HOST_IOMMU_DEVICE "host-iommu-device"
-OBJECT_DECLARE_TYPE(HostIOMMUDevice, HostIOMMUDeviceClass, HOST_IOMMU_DEVICE)
-
-struct HostIOMMUDevice {
- Object parent_obj;
-
- char *name;
- void *agent; /* pointer to agent device, ie. VFIO or VDPA device */
- PCIBus *aliased_bus;
- int aliased_devfn;
- HostIOMMUDeviceCaps caps;
-};
-
-/**
- * struct HostIOMMUDeviceClass - The base class for all host IOMMU devices.
- *
- * Different types of host devices (e.g., VFIO or VDPA device) or devices
- * with different backend (e.g., VFIO legacy container or IOMMUFD backend)
- * will have different implementations of the HostIOMMUDeviceClass.
- */
-struct HostIOMMUDeviceClass {
- ObjectClass parent_class;
-
- /**
- * @realize: initialize host IOMMU device instance further.
- *
- * Mandatory callback.
- *
- * @hiod: pointer to a host IOMMU device instance.
- *
- * @opaque: pointer to agent device of this host IOMMU device,
- * e.g., VFIO base device or VDPA device.
- *
- * @errp: pass an Error out when realize fails.
- *
- * Returns: true on success, false on failure.
- */
- bool (*realize)(HostIOMMUDevice *hiod, void *opaque, Error **errp);
- /**
- * @get_cap: check if a host IOMMU device capability is supported.
- *
- * Optional callback, if not implemented, hint not supporting query
- * of @cap.
- *
- * @hiod: pointer to a host IOMMU device instance.
- *
- * @cap: capability to check.
- *
- * @errp: pass an Error out when fails to query capability.
- *
- * Returns: <0 on failure, 0 if a @cap is unsupported, or else
- * 1 or some positive value for some special @cap,
- * i.e., HOST_IOMMU_DEVICE_CAP_AW_BITS.
- */
- int (*get_cap)(HostIOMMUDevice *hiod, int cap, Error **errp);
- /**
- * @get_iova_ranges: Return the list of usable iova_ranges along with
- * @hiod Host IOMMU device
- *
- * @hiod: handle to the host IOMMU device
- */
- GList* (*get_iova_ranges)(HostIOMMUDevice *hiod);
- /**
- *
- * @get_page_size_mask: Return the page size mask supported along this
- * @hiod Host IOMMU device
- *
- * @hiod: handle to the host IOMMU device
- */
- uint64_t (*get_page_size_mask)(HostIOMMUDevice *hiod);
-};
-
-/*
- * Host IOMMU device capability list.
- */
-#define HOST_IOMMU_DEVICE_CAP_IOMMU_TYPE 0
-#define HOST_IOMMU_DEVICE_CAP_AW_BITS 1
-
-#define HOST_IOMMU_DEVICE_CAP_AW_BITS_MAX 64
-#endif