CIRCT 21.0.0git
|
#include <Services.h>
Classes | |
class | MMIORegion |
A "slice" of some parent MMIO space. More... | |
struct | RegionDescriptor |
Describe a region (slice) of MMIO space. More... | |
Public Member Functions | |
MMIO (AcceleratorConnection &, const HWClientDetails &clients) | |
virtual | ~MMIO ()=default |
virtual uint64_t | read (uint32_t addr) const =0 |
Read a 64-bit value from the global MMIO space. | |
virtual void | write (uint32_t addr, uint64_t data)=0 |
Write a 64-bit value to the global MMIO space. | |
const std::map< AppIDPath, RegionDescriptor > & | getRegions () const |
Get the regions of MMIO space that this service manages. | |
virtual Service * | getChildService (Service::Type service, AppIDPath id={}, std::string implName={}, ServiceImplDetails details={}, HWClientDetails clients={}) override |
If the service is a MMIO service, return a region of the MMIO space which peers into ours. | |
virtual std::string | getServiceSymbol () const override |
virtual BundlePort * | getPort (AppIDPath id, const BundleType *type) const override |
Get a MMIO region port for a particular region descriptor. | |
![]() | |
Service (AcceleratorConnection &conn) | |
virtual | ~Service ()=default |
AcceleratorConnection & | getConnection () const |
Static Public Attributes | |
static constexpr std::string_view | StdName = "esi.service.std.mmio" |
Private Attributes | |
std::map< AppIDPath, RegionDescriptor > | regions |
MMIO base address table. | |
Additional Inherited Members | |
![]() | |
using | Type = const std::type_info & |
![]() | |
AcceleratorConnection & | conn |
Definition at line 117 of file Services.h.
MMIO::MMIO | ( | AcceleratorConnection & | conn, |
const HWClientDetails & | clients | ||
) |
Definition at line 56 of file Services.cpp.
References regions, and esi::Constant::value.
|
virtualdefault |
|
overridevirtual |
If the service is a MMIO service, return a region of the MMIO space which peers into ours.
Reimplemented from esi::services::Service.
Definition at line 105 of file Services.cpp.
References esi::services::Service::getChildService().
|
overridevirtual |
Get a MMIO region port for a particular region descriptor.
Reimplemented from esi::services::Service.
Definition at line 82 of file Services.cpp.
References regions.
|
inline |
Get the regions of MMIO space that this service manages.
Otherwise known as the base address table.
Definition at line 136 of file Services.h.
References regions.
Referenced by PYBIND11_MODULE().
|
overridevirtual |
|
pure virtual |
Read a 64-bit value from the global MMIO space.
Implemented in TraceMMIO.
Referenced by esi::services::MMIOSysInfo::getCompressedManifest(), esi::services::MMIOSysInfo::getEsiVersion(), and PYBIND11_MODULE().
|
pure virtual |
Write a 64-bit value to the global MMIO space.
Implemented in TraceMMIO.
Referenced by PYBIND11_MODULE().
|
private |
MMIO base address table.
Definition at line 155 of file Services.h.
Referenced by sv.IfDefOp::__init__(), hw.HWModuleOp::body(), hw.TypeScopeOp::body(), hw.HWModuleOp::entry_block(), getPort(), getRegions(), and MMIO().
|
staticconstexpr |
Definition at line 119 of file Services.h.
Referenced by getServiceSymbol(), and esi::services::ServiceRegistry::lookupServiceType().