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/pldmd/oem_ibm.hpp b/pldmd/oem_ibm.hpp
index 60e2a51..20c4bc1 100644
--- a/pldmd/oem_ibm.hpp
+++ b/pldmd/oem_ibm.hpp
@@ -4,6 +4,7 @@
 #include "../oem/ibm/libpldmresponder/file_io.hpp"
 #include "../oem/ibm/libpldmresponder/fru_oem_ibm.hpp"
 #include "../oem/ibm/libpldmresponder/oem_ibm_handler.hpp"
+#include "../oem/ibm/libpldmresponder/utils.hpp"
 #include "common/utils.hpp"
 #include "dbus_impl_requester.hpp"
 #include "host-bmc/dbus_to_event_handler.hpp"
@@ -73,8 +74,10 @@
 
         createCodeUpdate();
         createOemPlatformHandler();
+        createOemIbmUtilsHandler();
         codeUpdate->setOemPlatformHandler(oemPlatformHandler.get());
         hostPDRHandler->setOemPlatformHandler(oemPlatformHandler.get());
+        hostPDRHandler->setOemUtilsHandler(oemUtilsHandler.get());
         platformHandler->setOemPlatformHandler(oemPlatformHandler.get());
         baseHandler->setOemPlatformHandler(oemPlatformHandler.get());
 
@@ -120,6 +123,12 @@
         oemFruHandler = std::make_unique<oem_ibm_fru::Handler>(repo);
     }
 
+    /** @brief Method for creating oemIbmUtilsHandler */
+    void createOemIbmUtilsHandler()
+    {
+        oemUtilsHandler = std::make_unique<oem_ibm_utils::Handler>(dBusIntf);
+    }
+
     /** @brief Method for creating oemIbmFruHandler */
     void createOemIbmFruHandler()
     {
@@ -189,6 +198,9 @@
     pldm::responder::oem_ibm_fru::Handler* oemIbmFruHandler = nullptr;
 
     std::unique_ptr<pldm::led::HostLampTest> hostLampTest;
+
+    /** @brief oem IBM Utils handler*/
+    std::unique_ptr<oem_utils::Handler> oemUtilsHandler;
 };
 
 } // namespace oem_ibm