qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

iommu.h (758B)


      1 /**
      2  * Copyright © 2022 Oracle and/or its affiliates.
      3  *
      4  * This work is licensed under the terms of the GNU GPL, version 2 or later.
      5  * See the COPYING file in the top-level directory.
      6  *
      7  */
      8 
      9 #ifndef REMOTE_IOMMU_H
     10 #define REMOTE_IOMMU_H
     11 
     12 #include "hw/pci/pci_bus.h"
     13 #include "hw/pci/pci.h"
     14 
     15 #ifndef INT2VOIDP
     16 #define INT2VOIDP(i) (void *)(uintptr_t)(i)
     17 #endif
     18 
     19 typedef struct RemoteIommuElem {
     20     MemoryRegion *mr;
     21 
     22     AddressSpace as;
     23 } RemoteIommuElem;
     24 
     25 #define TYPE_REMOTE_IOMMU "x-remote-iommu"
     26 OBJECT_DECLARE_SIMPLE_TYPE(RemoteIommu, REMOTE_IOMMU)
     27 
     28 struct RemoteIommu {
     29     Object parent;
     30 
     31     GHashTable *elem_by_devfn;
     32 
     33     QemuMutex lock;
     34 };
     35 
     36 void remote_iommu_setup(PCIBus *pci_bus);
     37 
     38 void remote_iommu_unplug_dev(PCIDevice *pci_dev);
     39 
     40 #endif