geopm 3.2.1.dev237+gbe30cff60
GEOPM - Global Extensible Open Power Manager
Loading...
Searching...
No Matches
PowercapSysfsDriver.hpp
Go to the documentation of this file.
1/*
2 * Copyright (c) 2015 - 2025 Intel Corporation
3 * SPDX-License-Identifier: BSD-3-Clause
4 */
5
6#ifndef POWERCAPSYSFSDRIVER_HPP_INCLUDE
7#define POWERCAPSYSFSDRIVER_HPP_INCLUDE
8
9#include "SysfsDriver.hpp"
10#include "geopm/IOGroup.hpp"
11
12namespace geopm
13{
14 class RolloverGenerator;
16 {
17 public:
19 PowercapSysfsDriver(const std::string &powercap_directory);
20 virtual ~PowercapSysfsDriver() = default;
21 int domain_type(const std::string &name) const override;
22 std::string attribute_path(const std::string &name, int domain_idx) override;
23 std::function<double(const std::string &)> signal_parse(const std::string &signal_name) const override;
24 std::function<std::string(double)> control_gen(const std::string &control_name) const override;
25 std::string driver(void) const override;
26 std::map<std::string, properties_s> properties(void) const override;
27 static std::string plugin_name(void);
28 static std::unique_ptr<IOGroup> make_plugin(void);
29
30 private:
31 const std::map<std::string, properties_s> M_PROPERTIES;
32 const std::map<std::string, std::string> M_POWERCAP_RESOURCE_BY_NAME;
33 std::map<std::string, int> m_domain_map;
34 const std::string M_POWERCAP_DIRECTORY;
35 double m_rollover_factor;
36 };
37}
38
39#endif
Definition PowercapSysfsDriver.hpp:16
int domain_type(const std::string &name) const override
Get the PlatformTopo domain type for an named attribute.
Definition PowercapSysfsDriver.cpp:143
virtual ~PowercapSysfsDriver()=default
static std::string plugin_name(void)
Definition PowercapSysfsDriver.cpp:229
std::map< std::string, properties_s > properties(void) const override
Query the meta data about a signal or control.
Definition PowercapSysfsDriver.cpp:224
static std::unique_ptr< IOGroup > make_plugin(void)
Definition PowercapSysfsDriver.cpp:234
std::function< double(const std::string &)> signal_parse(const std::string &signal_name) const override
Get function to convert contents of sysfs file into signal.
Definition PowercapSysfsDriver.cpp:175
std::string driver(void) const override
Definition PowercapSysfsDriver.cpp:219
std::string attribute_path(const std::string &name, int domain_idx) override
Get the path to the sysfs entry for signal.
Definition PowercapSysfsDriver.cpp:152
PowercapSysfsDriver()
Definition PowercapSysfsDriver.cpp:102
std::function< std::string(double)> control_gen(const std::string &control_name) const override
Get a function to convert a control into a sysfs string.
Definition PowercapSysfsDriver.cpp:204
Class used to implement the SysfsIOGroup base class.
Definition SysfsDriver.hpp:23
Definition Agg.cpp:20