6 #ifndef SSTCONTROL_HPP_INCLUDE
7 #define SSTCONTROL_HPP_INCLUDE
51 int cpu_idx, uint32_t command, uint32_t subcommand,
52 uint32_t interface_parameter, uint32_t write_value, uint32_t begin_bit,
53 uint32_t end_bit,
double scale, uint32_t rmw_subcommand,
54 uint32_t rmw_interface_parameter, uint32_t rmw_read_mask);
57 void adjust(
double value)
override;
58 void write(
double value)
override;
59 void save(
void)
override;
61 void set_write_dependency(uint64_t trigger_value, std::weak_ptr<geopm::Control> dependency, uint64_t dependency_write_value);
64 std::shared_ptr<SSTIO> m_sstio;
67 const uint32_t m_command;
68 const uint32_t m_subcommand;
69 const uint32_t m_interface_parameter;
70 const uint32_t m_write_value;
74 const uint64_t m_mask;
75 const uint32_t m_rmw_subcommand;
76 const uint32_t m_rmw_interface_parameter;
77 const uint32_t m_rmw_read_mask;
78 const double m_multiplier;
79 uint32_t m_saved_value;
81 uint64_t m_trigger_write_value;
82 std::weak_ptr<geopm::Control> m_dependency;
83 uint64_t m_dependency_write_value;
Definition: Control.hpp:16
Definition: SSTControl.hpp:20
void save(void) override
Store the current setting of the control for use by a future call to restore().
Definition: SSTControl.cpp:80
virtual ~SSTControl()=default
void adjust(double value) override
Store values to be written by the owner's write_batch step.
Definition: SSTControl.cpp:54
void write(double value) override
Write the value of the control without affecting any pushed batch controls.
Definition: SSTControl.cpp:61
void restore(void) override
Restore the setting stored by save().
Definition: SSTControl.cpp:98
void setup_batch(void) override
Prepare the control for being written through side effects by the owner's write_batch step....
Definition: SSTControl.cpp:41
ControlType
Definition: SSTControl.hpp:23
@ M_MBOX
Definition: SSTControl.hpp:24
@ M_MMIO
Definition: SSTControl.hpp:25
void set_write_dependency(uint64_t trigger_value, std::weak_ptr< geopm::Control > dependency, uint64_t dependency_write_value)
Definition: SSTControl.cpp:117
SSTControl(std::shared_ptr< SSTIO > sstio, ControlType control_type, int cpu_idx, uint32_t command, uint32_t subcommand, uint32_t interface_parameter, uint32_t write_value, uint32_t begin_bit, uint32_t end_bit, double scale, uint32_t rmw_subcommand, uint32_t rmw_interface_parameter, uint32_t rmw_read_mask)
Create an SSTIO Control.
Definition: SSTControl.cpp:12