CIRCT 22.0.0git
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
esi::services::MMIOSysInfo Class Referencefinal

Implement the SysInfo API for a standard MMIO protocol. More...

#include <Services.h>

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

Public Member Functions

 MMIOSysInfo (const MMIO *)
 
uint32_t getEsiVersion () const override
 Get the ESI version number to check version compatibility.
 
std::optional< uint64_t > getCycleCount () const override
 Get the current cycle count of the accelerator system's core clock.
 
std::optional< uint64_t > getCoreClockFrequency () const override
 Get the "core" clock frequency of the accelerator system in Hz.
 
virtual std::vector< uint8_t > getCompressedManifest () const override
 Return the zlib compressed JSON system manifest.
 
- Public Member Functions inherited from esi::services::SysInfo
virtual ~SysInfo ()=default
 
virtual std::string getServiceSymbol () const override
 
virtual std::string getJsonManifest () const
 Return the JSON-formatted system manifest.
 
 Service (AcceleratorConnection &conn)
 
- Public Member Functions inherited from esi::services::Service
 Service (AcceleratorConnection &conn)
 
virtual ~Service ()=default
 
virtual ServicegetChildService (Service::Type service, AppIDPath id={}, std::string implName={}, ServiceImplDetails details={}, HWClientDetails clients={})
 Create a "child" service of this service.
 
virtual BundlePortgetPort (AppIDPath id, const BundleType *type) const
 Get specialized port for this service to attach to the given appid path.
 
AcceleratorConnectiongetConnection () const
 

Private Attributes

const MMIOmmio
 

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

Implement the SysInfo API for a standard MMIO protocol.

Definition at line 207 of file Services.h.

Constructor & Destructor Documentation

◆ MMIOSysInfo()

MMIOSysInfo::MMIOSysInfo ( const MMIO mmio)

Definition at line 143 of file Services.cpp.

Member Function Documentation

◆ getCompressedManifest()

std::vector< uint8_t > MMIOSysInfo::getCompressedManifest ( ) const
overridevirtual

Return the zlib compressed JSON system manifest.

Implements esi::services::SysInfo.

Definition at line 164 of file Services.cpp.

References getEsiVersion(), esi::ManifestPtrOffset, esi::MetadataOffset, mmio, and esi::services::MMIO::read().

◆ getCoreClockFrequency()

std::optional< uint64_t > MMIOSysInfo::getCoreClockFrequency ( ) const
overridevirtual

Get the "core" clock frequency of the accelerator system in Hz.

Returns nullopt if the accelerator does not provide this information.

Reimplemented from esi::services::SysInfo.

Definition at line 157 of file Services.cpp.

References esi::CoreFreqOffset, esi::MetadataOffset, mmio, and esi::services::MMIO::read().

◆ getCycleCount()

std::optional< uint64_t > MMIOSysInfo::getCycleCount ( ) const
overridevirtual

Get the current cycle count of the accelerator system's core clock.

Reimplemented from esi::services::SysInfo.

Definition at line 153 of file Services.cpp.

References esi::CycleCountOffset, esi::MetadataOffset, mmio, and esi::services::MMIO::read().

◆ getEsiVersion()

uint32_t MMIOSysInfo::getEsiVersion ( ) const
overridevirtual

Get the ESI version number to check version compatibility.

Implements esi::services::SysInfo.

Definition at line 146 of file Services.cpp.

References esi::MagicNumber, esi::MagicNumberOffset, esi::MetadataOffset, mmio, esi::services::MMIO::read(), esi::toHex(), and esi::VersionNumberOffset.

Referenced by getCompressedManifest().

Member Data Documentation

◆ mmio

const MMIO* esi::services::MMIOSysInfo::mmio
private

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