6 #ifndef FREQUENCYGOVERNOR_HPP_INCLUDE
7 #define FREQUENCYGOVERNOR_HPP_INCLUDE
12 #include "geopm_public.h"
79 static std::unique_ptr<FrequencyGovernor> make_unique(
void);
82 static std::shared_ptr<FrequencyGovernor> make_shared(
void);
Definition: FrequencyGovernor.hpp:20
virtual ~FrequencyGovernor()=default
virtual void validate_policy(double &freq_min, double &freq_max) const =0
Checks that the minimum and maximum frequency are within range for the platform. If not,...
virtual double get_frequency_step() const =0
Returns the frequency step for the platform.
virtual int frequency_domain_type(void) const =0
Get the domain type of frequency control on the platform. Users of the FrequencyGovernor can use this...
virtual bool set_frequency_bounds(double freq_min, double freq_max)=0
Sets min and max package bounds. The defaults before calling this method are the min and max frequenc...
FrequencyGovernor()=default
virtual void init_platform_io(void)=0
Registers signals and controls with PlatformIO using the default control domain.
virtual void set_domain_type(int domain_type)=0
Set the domain type of frequency control that will be used in adjust_platform(). Must be called befor...
virtual double get_frequency_max() const =0
Returns the current max frequency used by the governor.
virtual void adjust_platform(const std::vector< double > &frequency_request)=0
Write frequency control, may be clamped between min and max frequency if request cannot be satisfied.
virtual bool do_write_batch(void) const =0
Returns true if last call to adjust_platform requires writing.
virtual double get_frequency_min() const =0
Returns the current min frequency used by the governor.
virtual int get_clamp_count() const =0
Returns the number of clamping occurrence count for the platform.
Definition: Accumulator.cpp:12