summaryrefslogtreecommitdiff
path: root/src/dimm.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/dimm.cpp')
-rw-r--r--src/dimm.cpp33
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::