CIRCT 21.0.0git
Loading...
Searching...
No Matches
Classes | Public Member Functions | Static Public Attributes | Private Attributes | List of all members
esi::services::MMIO Class Referenceabstract

#include <Services.h>

Inheritance diagram for esi::services::MMIO:
Inheritance graph
[legend]
Collaboration diagram for esi::services::MMIO:
Collaboration graph
[legend]

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 ServicegetChildService (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 BundlePortgetPort (AppIDPath id, const BundleType *type) const override
 Get a MMIO region port for a particular region descriptor.
 
- Public Member Functions inherited from esi::services::Service
 Service (AcceleratorConnection &conn)
 
virtual ~Service ()=default
 
AcceleratorConnectiongetConnection () const
 

Static Public Attributes

static constexpr std::string_view StdName = "esi.service.std.mmio"
 

Private Attributes

std::map< AppIDPath, RegionDescriptorregions
 MMIO base address table.
 

Additional Inherited Members

- Public Types inherited from esi::services::Service
using Type = const std::type_info &
 
- Protected Attributes inherited from esi::services::Service
AcceleratorConnectionconn
 

Detailed Description

Definition at line 117 of file Services.h.

Constructor & Destructor Documentation

◆ MMIO()

MMIO::MMIO ( AcceleratorConnection conn,
const HWClientDetails clients 
)

Definition at line 56 of file Services.cpp.

References regions, and esi::Constant::value.

◆ ~MMIO()

virtual esi::services::MMIO::~MMIO ( )
virtualdefault

Member Function Documentation

◆ getChildService()

Service * MMIO::getChildService ( Service::Type  service,
AppIDPath  id = {},
std::string  implName = {},
ServiceImplDetails  details = {},
HWClientDetails  clients = {} 
)
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().

◆ getPort()

BundlePort * MMIO::getPort ( AppIDPath  id,
const BundleType type 
) const
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.

◆ getRegions()

const std::map< AppIDPath, RegionDescriptor > & esi::services::MMIO::getRegions ( ) const
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().

◆ getServiceSymbol()

std::string MMIO::getServiceSymbol ( ) const
overridevirtual

Implements esi::services::Service.

Definition at line 79 of file Services.cpp.

References StdName.

◆ read()

virtual uint64_t esi::services::MMIO::read ( uint32_t  addr) const
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().

◆ write()

virtual void esi::services::MMIO::write ( uint32_t  addr,
uint64_t  data 
)
pure virtual

Write a 64-bit value to the global MMIO space.

Implemented in TraceMMIO.

Referenced by PYBIND11_MODULE().

Member Data Documentation

◆ regions

std::map<AppIDPath, RegionDescriptor> esi::services::MMIO::regions
private

◆ StdName

constexpr std::string_view esi::services::MMIO::StdName = "esi.service.std.mmio"
staticconstexpr

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