diff options
Diffstat (limited to 'src/cpu.cpp')
-rw-r--r-- | src/cpu.cpp | 49 |
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; |