|
CIRCT 22.0.0git
|
Implement the SysInfo API for a standard MMIO protocol. More...
#include <Services.h>


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 Service * | getChildService (Service::Type service, AppIDPath id={}, std::string implName={}, ServiceImplDetails details={}, HWClientDetails clients={}) |
| Create a "child" service of this service. | |
| virtual BundlePort * | getPort (AppIDPath id, const BundleType *type) const |
| Get specialized port for this service to attach to the given appid path. | |
| AcceleratorConnection & | getConnection () const |
Private Attributes | |
| const MMIO * | mmio |
Additional Inherited Members | |
Public Types inherited from esi::services::Service | |
| using | Type = const std::type_info & |
Protected Attributes inherited from esi::services::Service | |
| AcceleratorConnection & | conn |
Implement the SysInfo API for a standard MMIO protocol.
Definition at line 207 of file Services.h.
| MMIOSysInfo::MMIOSysInfo | ( | const MMIO * | mmio | ) |
Definition at line 143 of file Services.cpp.
|
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().
|
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().
|
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().
|
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().
|
private |
Definition at line 224 of file Services.h.
Referenced by getCompressedManifest(), getCoreClockFrequency(), getCycleCount(), and getEsiVersion().