Added bit masks for MSR registers

This commit is contained in:
SChernykh 2019-12-17 23:55:22 +01:00
parent 5142a406b0
commit 59e8fdb9ed
5 changed files with 90 additions and 71 deletions

View file

@ -45,6 +45,7 @@ xmrig::MsrItem::MsrItem(const rapidjson::Value &value)
m_reg = strtoul(kv[0], nullptr, 0);
m_value = strtoul(kv[1], nullptr, 0);
m_mask = (kv.size() > 2) ? strtoul(kv[2], nullptr, 0) : uint64_t(-1);
}

View file

@ -45,13 +45,14 @@ class MsrItem
{
public:
inline MsrItem() = default;
inline MsrItem(uint32_t reg, uint64_t value) : m_reg(reg), m_value(value) {}
inline MsrItem(uint32_t reg, uint64_t value, uint64_t mask = uint64_t(-1)) : m_reg(reg), m_value(value), m_mask(mask) {}
MsrItem(const rapidjson::Value &value);
inline bool isValid() const { return m_reg > 0; }
inline uint32_t reg() const { return m_reg; }
inline uint64_t value() const { return m_value; }
inline uint64_t mask() const { return m_mask; }
rapidjson::Value toJSON(rapidjson::Document &doc) const;
String toString() const;
@ -59,6 +60,7 @@ public:
private:
uint32_t m_reg = 0;
uint64_t m_value = 0;
uint64_t m_mask = uint64_t(-1);
};