Add support for the coreCount property in DBus
This commit introduces support for counting the number of CPU cores
during BMC power-on and populates this information to a DBus property
named coreCount. Upon BMC power-on, the remote terminus detects the
number of CPU cores and send this data and PLDM will updates the
coreCount property accordingly.
Tested:
tested on simulator for hosting DBus property
Change-Id: I37adbe399414fcff3f089fb819349ca4bb537edd
Signed-off-by: Kamalkumar Patel <kamalkumar.patel@ibm.com>
diff --git a/host-bmc/host_pdr_handler.cpp b/host-bmc/host_pdr_handler.cpp
index df0ac5c..7758858 100644
--- a/host-bmc/host_pdr_handler.cpp
+++ b/host-bmc/host_pdr_handler.cpp
@@ -95,7 +95,7 @@
mctp_eid(mctp_eid), event(event), repo(repo),
stateSensorHandler(eventsJsonsDir), entityTree(entityTree),
bmcEntityTree(bmcEntityTree), instanceIdDb(instanceIdDb), handler(handler),
- entityMaps(parseEntityMap(ENTITY_MAP_JSON))
+ entityMaps(parseEntityMap(ENTITY_MAP_JSON)), oemUtilsHandler(nullptr)
{
mergedHostParents = false;
hostOffMatch = std::make_unique<sdbusplus::bus::match_t>(
@@ -632,7 +632,10 @@
{
updateEntityAssociation(entityAssociations, entityTree, objPathMap,
entityMaps, oemPlatformHandler);
-
+ if (oemUtilsHandler)
+ {
+ oemUtilsHandler->setCoreCount(entityAssociations, entityMaps);
+ }
/*received last record*/
this->parseStateSensorPDRs(stateSensorPDRs);
this->createDbusObjects(fruRecordSetPDRs);
diff --git a/host-bmc/host_pdr_handler.hpp b/host-bmc/host_pdr_handler.hpp
index 4fafe8d..eb299f3 100644
--- a/host-bmc/host_pdr_handler.hpp
+++ b/host-bmc/host_pdr_handler.hpp
@@ -87,6 +87,7 @@
* @param[in] bmcEntityTree - pointer to BMC's entity association tree
* @param[in] instanceIdDb - reference to an InstanceIdDb object
* @param[in] handler - PLDM request handler
+ * @param[in] oemUtilsHandler - pointer oem utils handler
*/
explicit HostPDRHandler(
int mctp_fd, uint8_t mctp_eid, sdeventplus::Event& event,
@@ -179,6 +180,15 @@
oemPlatformHandler = handler;
}
+ /* @brief Method to set the oem utils handler in host pdr handler class
+ *
+ * @param[in] handler - oem utils handler
+ */
+ inline void setOemUtilsHandler(pldm::responder::oem_utils::Handler* handler)
+ {
+ oemUtilsHandler = handler;
+ }
+
/** @brief map that captures various terminus information **/
TLPDRMap tlPDRInfo;
@@ -339,6 +349,9 @@
/** @brief entityID and entity name is only loaded once
*/
pldm::utils::EntityMaps entityMaps;
+
+ /** @OEM Utils handler */
+ pldm::responder::oem_utils::Handler* oemUtilsHandler;
};
} // namespace pldm