CIRCT  20.0.0git
Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
esi::services::MMIO::MMIORegion Class Reference

A "slice" of some parent MMIO space. More...

#include <Services.h>

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

Public Member Functions

virtual RegionDescriptor getDescriptor () const
 Get the offset (and size) of the region in the parent (usually global) MMIO address space. More...
 
virtual uint64_t read (uint32_t addr) const
 Read a 64-bit value from this region, not the global address space. More...
 
virtual void write (uint32_t addr, uint64_t data)
 Write a 64-bit value to this region, not the global address space. More...
 
virtual std::optional< std::string > toString () const override
 
- Public Member Functions inherited from esi::services::ServicePort
virtual ~ServicePort ()=default
 
 BundlePort (AppID id, std::map< std::string, ChannelPort & > channels)
 Construct a port. More...
 
- Public Member Functions inherited from esi::BundlePort
 BundlePort (AppID id, std::map< std::string, ChannelPort & > channels)
 Construct a port. More...
 
virtual ~BundlePort ()=default
 
AppID getID () const
 Get the ID of the port. More...
 
WriteChannelPortgetRawWrite (const std::string &name) const
 Get access to the raw byte streams of a channel. More...
 
ReadChannelPortgetRawRead (const std::string &name) const
 
const std::map< std::string, ChannelPort & > & getChannels () const
 
template<typename T >
T * getAs () const
 Cast this Bundle port to a subclass which is actually useful. More...
 
bool poll ()
 Calls poll on all channels in the bundle and returns true if any of them returned true. More...
 

Private Member Functions

 MMIORegion (AppID id, MMIO *parent, RegionDescriptor desc)
 

Private Attributes

MMIOparent
 
RegionDescriptor desc
 

Friends

class MMIO
 

Additional Inherited Members

- Static Public Member Functions inherited from esi::BundlePort
static bool isWrite (BundleType::Direction bundleDir)
 Compute the direction of a channel given the bundle direction and the bundle port's direction. More...
 

Detailed Description

A "slice" of some parent MMIO space.

Definition at line 155 of file Services.h.

Constructor & Destructor Documentation

◆ MMIORegion()

MMIO::MMIORegion::MMIORegion ( AppID  id,
MMIO parent,
RegionDescriptor  desc 
)
private

Definition at line 124 of file Services.cpp.

Member Function Documentation

◆ getDescriptor()

virtual RegionDescriptor esi::services::MMIO::MMIORegion::getDescriptor ( ) const
inlinevirtual

Get the offset (and size) of the region in the parent (usually global) MMIO address space.

Definition at line 162 of file Services.h.

References desc.

Referenced by PYBIND11_MODULE().

◆ read()

uint64_t MMIO::MMIORegion::read ( uint32_t  addr) const
virtual

Read a 64-bit value from this region, not the global address space.

Definition at line 126 of file Services.cpp.

References esi::toHex().

Referenced by PYBIND11_MODULE().

◆ toString()

virtual std::optional<std::string> esi::services::MMIO::MMIORegion::toString ( ) const
inlineoverridevirtual

◆ write()

void MMIO::MMIORegion::write ( uint32_t  addr,
uint64_t  data 
)
virtual

Write a 64-bit value to this region, not the global address space.

Definition at line 131 of file Services.cpp.

References esi::toHex().

Referenced by PYBIND11_MODULE().

Friends And Related Function Documentation

◆ MMIO

friend class MMIO
friend

Definition at line 156 of file Services.h.

Member Data Documentation

◆ desc

RegionDescriptor esi::services::MMIO::MMIORegion::desc
private

Definition at line 175 of file Services.h.

Referenced by getDescriptor(), and toString().

◆ parent

MMIO* esi::services::MMIO::MMIORegion::parent
private

Definition at line 174 of file Services.h.


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