diff options
Diffstat (limited to 'src/dimm.cpp')
-rw-r--r-- | src/dimm.cpp | 33 |
1 files changed, 28 insertions, 5 deletions
diff --git a/src/dimm.cpp b/src/dimm.cpp index 346c701..b25b0f8 100644 --- a/src/dimm.cpp +++ b/src/dimm.cpp @@ -109,11 +109,11 @@ uint32_t Dimm::memorySizeInKB(uint32_t value) void Dimm::dimmDeviceLocator(uint8_t positionNum, uint8_t structLen, uint8_t *dataIn) { - std::string result; - - result = positionToString(positionNum, structLen, dataIn); + std::string result = positionToString(positionNum, structLen, dataIn); memoryDeviceLocator(result); + + locationCode(result); } std::string Dimm::memoryDeviceLocator(std::string value) @@ -170,11 +170,22 @@ uint16_t Dimm::maxMemorySpeedInMhz(uint16_t value) void Dimm::dimmManufacturer(uint8_t positionNum, uint8_t structLen, uint8_t *dataIn) { - std::string result; + std::string result = positionToString(positionNum, structLen, dataIn); - result = positionToString(positionNum, structLen, dataIn); + bool val = true; + if (result == "NO DIMM") + { + val = false; + + // No dimm presence so making manufacturer value as "" (instead of + // NO DIMM - as there won't be any manufacturer for DIMM which is not + // present). + result = ""; + } manufacturer(result); + present(val); + functional(val); } std::string Dimm::manufacturer(std::string value) @@ -183,6 +194,12 @@ std::string Dimm::manufacturer(std::string value) Asset::manufacturer(value); } +bool Dimm::present(bool value) +{ + return sdbusplus::xyz::openbmc_project::Inventory::server::Item::present( + value); +} + void Dimm::dimmSerialNum(uint8_t positionNum, uint8_t structLen, uint8_t *dataIn) { @@ -214,6 +231,12 @@ std::string Dimm::partNumber(std::string value) Asset::partNumber(value); } +std::string Dimm::locationCode(std::string value) +{ + return sdbusplus::xyz::openbmc_project::Inventory::Decorator::server:: + LocationCode::locationCode(value); +} + uint8_t Dimm::memoryAttributes(uint8_t value) { return sdbusplus::xyz::openbmc_project::Inventory::Item::server::Dimm:: |