|
CIRCT 22.0.0git
|
Service for retrieving telemetry data from the accelerator. More...
#include <Services.h>


Classes | |
| class | Metric |
| A telemetry port which gets attached to a service port. More... | |
Public Member Functions | |
| TelemetryService (AppIDPath id, AcceleratorConnection &, ServiceImplDetails details, HWClientDetails clients) | |
| virtual std::string | getServiceSymbol () const override |
| virtual BundlePort * | getPort (AppIDPath id, const BundleType *type) const override |
| Get specialized port for this service to attach to the given appid path. | |
| virtual Service * | getChildService (Service::Type service, AppIDPath id={}, std::string implName={}, ServiceImplDetails details={}, HWClientDetails clients={}) override |
| Create a "child" service of this service. | |
| MMIO::MMIORegion * | getMMIORegion () const |
| std::map< AppIDPath, Metric * > | getTelemetryPorts () |
| void | getTelemetryPorts (std::map< AppIDPath, Metric * > &ports) |
Public Member Functions inherited from esi::services::Service | |
| Service (AcceleratorConnection &conn) | |
| virtual | ~Service ()=default |
| AcceleratorConnection & | getConnection () const |
Static Public Attributes | |
| static constexpr std::string_view | StdName = "esi.service.std.telemetry" |
Private Attributes | |
| AppIDPath | id |
| MMIO::MMIORegion * | mmio |
| std::map< AppIDPath, uint64_t > | portAddressAssignments |
| std::map< AppIDPath, Metric * > | telemetryPorts |
| std::list< TelemetryService * > | children |
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 |
Service for retrieving telemetry data from the accelerator.
Definition at line 369 of file Services.h.
| TelemetryService::TelemetryService | ( | AppIDPath | id, |
| AcceleratorConnection & | conn, | ||
| ServiceImplDetails | details, | ||
| HWClientDetails | clients | ||
| ) |
Definition at line 288 of file Services.cpp.
References esi::services::Service::conn, esi::AcceleratorConnection::getLogger(), portAddressAssignments, esi::AppIDPath::toStr(), esi::Constant::value, and esi::Logger::warning().
|
overridevirtual |
Create a "child" service of this service.
Does not have to be the same service type, but typically is. Used when a service already exists in the active services table, but a new one wants to replace it. Useful for cases where the child service needs to use the parent service. Defaults to calling the getService method on AcceleratorConnection to get the global service, implying that the child service does not need to use the service it is replacing.
Reimplemented from esi::services::Service.
Definition at line 361 of file Services.cpp.
References children, and esi::services::Service::conn.
| MMIO::MMIORegion * TelemetryService::getMMIORegion | ( | ) | const |
Definition at line 331 of file Services.cpp.
References esi::services::Service::conn, esi::AcceleratorConnection::getAccelerator(), id, mmio, esi::HWModule::resolvePort(), and esi::AppIDPath::toStr().
|
overridevirtual |
Get specialized port for this service to attach to the given appid path.
Null returns mean nothing to attach.
Reimplemented from esi::services::Service.
Definition at line 350 of file Services.cpp.
References portAddressAssignments, and telemetryPorts.
|
overridevirtual |
Definition at line 410 of file Services.h.
References getTelemetryPorts().
Referenced by getTelemetryPorts(), and printTelemetry().
Definition at line 399 of file Services.cpp.
References children, and telemetryPorts.
|
private |
Definition at line 422 of file Services.h.
Referenced by getChildService(), and getTelemetryPorts().
|
private |
Definition at line 418 of file Services.h.
Referenced by getMMIORegion().
|
mutableprivate |
Definition at line 419 of file Services.h.
Referenced by esi::services::TelemetryService::Metric::connect(), getMMIORegion(), and esi::services::TelemetryService::Metric::readInt().
|
private |
Definition at line 420 of file Services.h.
Referenced by getPort(), and TelemetryService().
|
staticconstexpr |
Definition at line 371 of file Services.h.
Referenced by getServiceSymbol(), and esi::services::ServiceRegistry::lookupServiceType().
Definition at line 421 of file Services.h.
Referenced by getPort(), and getTelemetryPorts().