geopm
3.1.1.dev272+gdfb40a8d
GEOPM - Global Extensible Open Power Manager
|
#include <SSTIO.hpp>
Public Member Functions | |
SSTIO ()=default | |
virtual | ~SSTIO ()=default |
virtual int | add_mbox_read (uint32_t cpu_index, uint16_t command, uint16_t subcommand, uint32_t subcommand_arg)=0 |
Interact with the mailbox on commands that are expected to return data. More... | |
virtual int | add_mbox_write (uint32_t cpu_index, uint16_t command, uint16_t subcommand, uint32_t interface_parameter, uint16_t read_subcommand, uint32_t read_interface_parameter, uint32_t read_mask)=0 |
Interact with the mailbox on commands that are not expected to return data. More... | |
virtual int | add_mmio_read (uint32_t cpu_index, uint16_t register_offset)=0 |
Interact with the mmio interface on commands that are expected to return data. More... | |
virtual int | add_mmio_write (uint32_t cpu_index, uint16_t register_offset, uint32_t register_value, uint32_t read_mask)=0 |
Interact with the mmio interface on commands that are not expected to return data. More... | |
virtual void | read_batch (void)=0 |
Issue a batch read. More... | |
virtual uint64_t | sample (int batch_idx) const =0 |
Sample a value from the most recent batch read. More... | |
virtual void | write_batch (void)=0 |
Issue a batch write. More... | |
virtual uint32_t | read_mbox_once (uint32_t cpu_index, uint16_t command, uint16_t subcommand, uint32_t subcommand_arg)=0 |
Immediately query the SST mailbox for a read operation. More... | |
virtual void | write_mbox_once (uint32_t cpu_index, uint16_t command, uint16_t subcommand, uint32_t interface_parameter, uint16_t read_subcommand, uint32_t read_interface_parameter, uint32_t read_mask, uint64_t write_value, uint64_t write_mask)=0 |
Immediately query the SST mailbox for a write operation. More... | |
virtual uint32_t | read_mmio_once (uint32_t cpu_index, uint16_t register_offset)=0 |
Immediately read a value from the SST MMIO interface. More... | |
virtual void | write_mmio_once (uint32_t cpu_index, uint16_t register_offset, uint32_t register_value, uint32_t read_mask, uint64_t write_value, uint64_t write_mask)=0 |
Immediately write a value to the SST MMIO interface. More... | |
virtual void | adjust (int batch_idx, uint64_t write_value, uint64_t write_mask)=0 |
Adjust a value for the next batch write. More... | |
virtual uint32_t | get_punit_from_cpu (uint32_t cpu_index)=0 |
Get the punit index associated with a CPU index. More... | |
Static Public Member Functions | |
static std::shared_ptr< SSTIO > | make_shared (uint32_t max_cpus) |
Create an SSTIO object. More... | |
|
default |
|
virtualdefault |
|
pure virtual |
Interact with the mailbox on commands that are expected to return data.
[in] | cpu_index | Index of the CPU to which the mailbox read is being issued |
[in] | command | Which SST mailbox command to issue |
[in] | subcommand | Which SST mailbox subcommand to issue |
[in] | subcommand_arg | Which argument to use for the SST mailbox subcommand |
Implemented in geopm::SSTIOImp.
|
pure virtual |
Interact with the mailbox on commands that are not expected to return data.
[in] | cpu_index | Index of the CPU to which the mailbox read is being issued |
[in] | command | Which SST mailbox command to issue |
[in] | subcommand | Which SST mailbox subcommand to issue |
[in] | interface_parameter | Which SST mailbox parameter to use |
[in] | read_subcommand | Which SST mailbox subcommand to issue when reading the current value prior to a write |
[in] | read_interface_parameter | Which SST mailbox parameter to use when reading the current value prior to a write |
[in] | read_mask | The mask to apply to values read from the mailbox prior to a write |
Implemented in geopm::SSTIOImp.
|
pure virtual |
Interact with the mmio interface on commands that are expected to return data.
[in] | cpu_index | Index of the CPU to which the MMIO read is being issued |
[in] | register_offset | Which SST MMIO register offset to use |
Implemented in geopm::SSTIOImp.
|
pure virtual |
Interact with the mmio interface on commands that are not expected to return data.
[in] | cpu_index | Index of the CPU to which the MMIO write is being issued |
[in] | register_offset | Which SST MMIO register offset to use |
[in] | register_value | Which SST MMIO register value to set for the write. |
[in] | read_mask | The mask to apply to values read from the register prior to a write |
Implemented in geopm::SSTIOImp.
|
pure virtual |
Adjust a value for the next batch write.
[in] | batch_idx | An index returned from an add_*_write function |
[in] | write_value | The value to write in the next batch_write() |
[in] | write_mask | The mask to apply when writing this value |
Implemented in geopm::SSTIOImp.
|
pure virtual |
Get the punit index associated with a CPU index.
[in] | cpu_index | Index of the CPU |
Implemented in geopm::SSTIOImp.
|
static |
Create an SSTIO object.
[in] | max_cpus | The number of CPUs to attempt to map to punit cores. |
|
pure virtual |
Issue a batch read.
Implemented in geopm::SSTIOImp.
|
pure virtual |
Immediately query the SST mailbox for a read operation.
[in] | cpu_index | Index of the CPU to which the mailbox read is being issued |
[in] | command | Which SST mailbox command to issue |
[in] | subcommand | Which SST mailbox subcommand to issue |
[in] | subcommand_arg | Which argument to use for the SST mailbox subcommand |
Implemented in geopm::SSTIOImp.
|
pure virtual |
Immediately read a value from the SST MMIO interface.
[in] | cpu_index | Index of the CPU to which the MMIO read is being issued |
[in] | register_offset | Which SST MMIO register offset to use |
Implemented in geopm::SSTIOImp.
|
pure virtual |
Sample a value from the most recent batch read.
[in] | batch_idx | An index returned from an add_*_read function prior to calling read_batch(). |
Implemented in geopm::SSTIOImp.
|
pure virtual |
Issue a batch write.
Implemented in geopm::SSTIOImp.
|
pure virtual |
Immediately query the SST mailbox for a write operation.
[in] | cpu_index | Index of the CPU to which the mailbox read is being issued |
[in] | command | Which SST mailbox command to issue |
[in] | subcommand | Which SST mailbox subcommand to issue |
[in] | interface_parameter | Which SST mailbox parameter to use |
[in] | read_subcommand | Which SST mailbox subcommand to issue when reading the current value prior to a write |
[in] | read_interface_parameter | Which SST mailbox parameter to use when reading the current value prior to a write |
[in] | read_mask | The mask to apply to values read from the mailbox prior to a write |
[in] | write_value | The value to write |
[in] | write_mask | The mask to apply to the written value |
Implemented in geopm::SSTIOImp.
|
pure virtual |
Immediately write a value to the SST MMIO interface.
[in] | cpu_index | Index of the CPU to which the MMIO write is being issued |
[in] | register_offset | Which SST MMIO register offset to use |
[in] | register_value | Which SST MMIO register value to set for the write. |
[in] | read_mask | The mask to apply to values read from the register prior to a write |
[in] | write_value | The value to write |
[in] | write_mask | The mask to apply to the written value |
Implemented in geopm::SSTIOImp.