CIRCT
20.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 (Context &ctxt, AppIDPath idPath, std::string implName, const ServiceImplDetails &details, const HWClientDetails &clients) | |
MMIO ()=default | |
virtual | ~MMIO ()=default |
virtual uint64_t | read (uint32_t addr) const =0 |
Read a 64-bit value from the global MMIO space. More... | |
virtual void | write (uint32_t addr, uint64_t data)=0 |
Write a 64-bit value to the global MMIO space. More... | |
const std::map< AppIDPath, RegionDescriptor > & | getRegions () const |
Get the regions of MMIO space that this service manages. More... | |
virtual Service * | getChildService (AcceleratorConnection *conn, 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. More... | |
virtual std::string | getServiceSymbol () const override |
virtual ServicePort * | getPort (AppIDPath id, const BundleType *type, const std::map< std::string, ChannelPort & > &, AcceleratorConnection &) const override |
Get a MMIO region port for a particular region descriptor. More... | |
Public Member Functions inherited from esi::services::Service | |
virtual | ~Service ()=default |
Static Public Attributes | |
static constexpr std::string_view | StdName = "esi.service.std.mmio" |
Private Attributes | |
std::map< AppIDPath, RegionDescriptor > | regions |
MMIO base address table. More... | |
Additional Inherited Members | |
Public Types inherited from esi::services::Service | |
using | Type = const std::type_info & |
Definition at line 109 of file Services.h.
MMIO::MMIO | ( | Context & | ctxt, |
AppIDPath | idPath, | ||
std::string | implName, | ||
const ServiceImplDetails & | details, | ||
const HWClientDetails & | clients | ||
) |
Definition at line 56 of file Services.cpp.
References regions, and esi::Constant::value.
|
default |
|
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 109 of file Services.cpp.
References esi::services::Service::getChildService(), and esi::AcceleratorConnection::getCtxt().
|
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 130 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 151 of file Services.h.
Referenced by sv.IfDefOp::__init__(), hw.HWModuleOp::body(), hw.TypeScopeOp::body(), hw.HWModuleOp::entry_block(), getPort(), getRegions(), hw.ModuleLike::is_external(), and MMIO().
|
staticconstexpr |
Definition at line 111 of file Services.h.
Referenced by getServiceSymbol(), and esi::services::ServiceRegistry::lookupServiceType().