quic/qbox
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
qemu::IOMMUMemoryRegion Class Reference
Inheritance diagram for qemu::IOMMUMemoryRegion:
Inheritance graph
[legend]
Collaboration diagram for qemu::IOMMUMemoryRegion:
Collaboration graph
[legend]

Classes

struct  IOMMUTLBEntry
 

Public Types

enum  IOMMUAccessFlags { IOMMU_NONE = 0 , IOMMU_RO = 1 , IOMMU_WO = 2 , IOMMU_RW = 3 }
 
using IOMMUTranslateCallbackFn = std::function< void(IOMMUTLBEntry *, uint64_t, IOMMUAccessFlags, int)>
 
- Public Types inherited from qemu::MemoryRegion
using MemTxResult = MemoryRegionOps::MemTxResult
 
using MemTxAttrs = MemoryRegionOps::MemTxAttrs
 

Public Member Functions

 IOMMUMemoryRegion (const Object &o)
 
void init (const Object &owner, const char *name, uint64_t size, MemoryRegionOpsPtr ops, IOMMUTranslateCallbackFn cb)
 
void iommu_unmap (IOMMUTLBEntry *)
 
- Public Member Functions inherited from qemu::MemoryRegion
 MemoryRegion (const MemoryRegion &)=default
 
 MemoryRegion (const Object &o)
 
 MemoryRegion (QemuMemoryRegion *mr, std::shared_ptr< LibQemuInternals > internals)
 
void removeSubRegions ()
 
uint64_t get_size ()
 
int get_priority () const
 
void set_priority (int priority)
 
void init (const Object &owner, const char *name, uint64_t size)
 
void init_io (Object owner, const char *name, uint64_t size, MemoryRegionOpsPtr ops)
 
void init_ram_ptr (Object owner, const char *name, uint64_t size, void *ptr, int fd=-1)
 
void init_alias (Object owner, const char *name, const MemoryRegion &root, uint64_t offset, uint64_t size)
 
void add_subregion (MemoryRegion &mr, uint64_t offset)
 
void add_subregion_overlap (MemoryRegion &mr, uint64_t offset)
 
void del_subregion (const MemoryRegion &mr)
 
MemTxResult dispatch_read (uint64_t addr, uint64_t *data, uint64_t size, MemTxAttrs attrs)
 
MemTxResult dispatch_write (uint64_t addr, uint64_t data, uint64_t size, MemTxAttrs attrs)
 
void set_ops (const MemoryRegionOpsPtr ops)
 
bool operator< (const MemoryRegion &mr) const
 
- Public Member Functions inherited from qemu::Object
 Object (QemuObject *obj, std::shared_ptr< LibQemuInternals > &internals)
 
 Object (const Object &o)
 
 Object (Object &&o)
 
Objectoperator= (Object o)
 
bool valid () const
 
void set_prop_bool (const char *name, bool val)
 
void set_prop_int (const char *name, int64_t val)
 
void set_prop_uint (const char *name, uint64_t val)
 
void set_prop_str (const char *name, const char *val)
 
void set_prop_link (const char *name, const Object &link)
 
void set_prop_parse (const char *name, const char *value)
 
Object get_prop_link (const char *name)
 
QemuObjectget_qemu_obj () const
 
LibQemuget_inst ()
 
uintptr_t get_inst_id () const
 
bool same_inst_as (const Object &o) const
 
template<class T >
bool check_cast () const
 
void clear_callbacks ()
 

Public Attributes

qemu::MemoryRegion m_root_te
 
std::shared_ptr< qemu::AddressSpacem_as_te
 
qemu::MemoryRegion m_root
 
std::shared_ptr< qemu::AddressSpacem_as
 
std::map< uint64_t, std::shared_ptr< DmiRegionBase > > m_dmi_aliases_te
 
std::map< uint64_t, std::shared_ptr< DmiRegionBase > > m_dmi_aliases_io
 
uint64_t min_page_sz
 
std::unordered_map< uint64_t, qemu::IOMMUMemoryRegion::IOMMUTLBEntrym_mapped_te
 
- Public Attributes inherited from qemu::MemoryRegion
MemoryRegioncontainer = nullptr
 

Static Public Attributes

static constexpr const char *const TYPE = "libqemu-iommu-memory-region"
 
- Static Public Attributes inherited from qemu::MemoryRegion
static constexpr const char *const TYPE = "memory-region"
 

Additional Inherited Members

- Protected Member Functions inherited from qemu::Object
bool check_cast_by_type (const char *type_name) const
 
- Protected Attributes inherited from qemu::Object
QemuObjectm_obj = nullptr
 
std::shared_ptr< LibQemuInternalsm_int
 

The documentation for this class was generated from the following files: