summaryrefslogtreecommitdiff
path: root/src/cpu.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu.cpp')
-rw-r--r--src/cpu.cpp49
1 files changed, 23 insertions, 26 deletions
diff --git a/src/cpu.cpp b/src/cpu.cpp
index a92d9e6..b6ebb3a 100644
--- a/src/cpu.cpp
+++ b/src/cpu.cpp
@@ -17,6 +17,8 @@
#include "cpu.hpp"
#include "manager.hpp"
#include <map>
+#include <cstdint>
+#include <bitset>
namespace phosphor
{
@@ -34,8 +36,7 @@ void Cpu::cpuSocket(uint8_t positionNum, uint8_t structLen, uint8_t *dataIn)
std::string Cpu::processorSocket(std::string value)
{
- return sdbusplus::xyz::openbmc_project::Inventory::Item::server::Cpu::
- processorSocket(value);
+ return processor::socket(value);
}
void Cpu::cpuType(uint8_t value)
@@ -54,8 +55,7 @@ void Cpu::cpuType(uint8_t value)
std::string Cpu::processorType(std::string value)
{
- return sdbusplus::xyz::openbmc_project::Inventory::Item::server::Cpu::
- processorType(value);
+ return "";//processor::processorType(value);
}
void Cpu::cpuFamily(uint8_t value)
@@ -73,8 +73,7 @@ void Cpu::cpuFamily(uint8_t value)
std::string Cpu::processorFamily(std::string value)
{
- return sdbusplus::xyz::openbmc_project::Inventory::Item::server::Cpu::
- processorFamily(value);
+ return processor::family(value);
}
void Cpu::cpuManufacturer(uint8_t positionNum, uint8_t structLen,
@@ -89,14 +88,12 @@ void Cpu::cpuManufacturer(uint8_t positionNum, uint8_t structLen,
std::string Cpu::processorManufacturer(std::string value)
{
- return sdbusplus::xyz::openbmc_project::Inventory::Item::server::Cpu::
- processorManufacturer(value);
+ return asset::manufacturer(value);
}
uint32_t Cpu::processorId(uint32_t value)
{
- return sdbusplus::xyz::openbmc_project::Inventory::Item::server::Cpu::
- processorId(value);
+ return processor::id(value);
}
void Cpu::cpuVersion(uint8_t positionNum, uint8_t structLen, uint8_t *dataIn)
@@ -110,47 +107,47 @@ void Cpu::cpuVersion(uint8_t positionNum, uint8_t structLen, uint8_t *dataIn)
std::string Cpu::processorVersion(std::string value)
{
- return sdbusplus::xyz::openbmc_project::Inventory::Item::server::Cpu::
- processorVersion(value);
+ return rev::version(value);
}
uint16_t Cpu::processorMaxSpeed(uint16_t value)
{
- return sdbusplus::xyz::openbmc_project::Inventory::Item::server::Cpu::
- processorMaxSpeed(value);
+ return processor::maxSpeedInMhz(value);
}
void Cpu::cpuCharacteristics(uint16_t value)
{
- std::string result = "";
- for (uint8_t index = 0; index < (8 * sizeof(value)); index++)
+ std::vector<processor::Capability> result;
+ std::optional<processor::Capability> cap;
+
+ std::bitset<16> charBits = value;
+ for (uint8_t index = 0; index < charBits.size(); index++)
{
- if (value & 0x01)
+ if (charBits.test(index))
{
- result += characterTable[index];
+ if (cap = characteristicsTable[index])
+ {
+ result.emplace_back(*cap);
+ }
}
- value >>= 1;
}
- processorCharacteristics(result);
+ processor::characteristics(result);
}
std::string Cpu::processorCharacteristics(std::string value)
{
- return sdbusplus::xyz::openbmc_project::Inventory::Item::server::Cpu::
- processorCharacteristics(value);
+ return "";//processor::characteristics(value);
}
uint16_t Cpu::processorCoreCount(uint16_t value)
{
- return sdbusplus::xyz::openbmc_project::Inventory::Item::server::Cpu::
- processorCoreCount(value);
+ return processor::coreCount(value);
}
uint16_t Cpu::processorThreadCount(uint16_t value)
{
- return sdbusplus::xyz::openbmc_project::Inventory::Item::server::Cpu::
- processorThreadCount(value);
+ return processor::threadCount(value);
}
static constexpr uint8_t maxOldVersionCount = 0xff;