nvidia-oem: Implement GetRedfishServiceUUID

This command is used by BIOS before creating SMBIOS record
type 42. BIOS gets USBDescription information from BMC.

Note:
The implementation in this PR is for
RedfishServiceUUID.
The support for other device descriptors will be added in
upcoming PRs.

Design Document for RHI:
[1] https://gerrit.openbmc.org/c/openbmc/docs/+/79327

Redfish Host Interface specification:
[2] https://www.dmtf.org/sites/default/files/standards/documents/DSP0270_1.3.0.pdf

Tested:
Tested on gb200nvl-obmc platform:
root@gb200nvl-obmc:~# ipmitool raw 0x3c 0x34
 1b 78 70 31 20 74 e1 4e 98 13 6b 22 a7 34 7a d0

[3] root@gb200nvl-obmc:~# find / -type f -name "bmcweb_persistent_data.json" 2>/dev/null
/home/root/bmcweb_persistent_data.json
[4] /run/initramfs/rw/cow/home/root/bmcweb_persistent_data.json

Change-Id: Ibfd1b1aa654ad4f523362ca973fd2c6c6b0f18c3
Signed-off-by: Prithvi Pai <ppai@nvidia.com>
diff --git a/include/ipmid/utils.hpp b/include/ipmid/utils.hpp
index efc193a..4e8ca91 100644
--- a/include/ipmid/utils.hpp
+++ b/include/ipmid/utils.hpp
@@ -9,6 +9,8 @@
 
 #include <chrono>
 #include <optional>
+#include <string>
+#include <vector>
 
 namespace ipmi
 {
@@ -455,4 +457,12 @@
 ipmi::Cc i2cWriteRead(std::string i2cBus, const uint8_t targetAddr,
                       std::vector<uint8_t> writeData,
                       std::vector<uint8_t>& readBuf);
+
+/** @brief Split a string into a vector of strings
+ *  @param[in] srcStr - The string to split
+ *  @param[in] delim - The delimiter to split the string on
+ *  @return A vector of strings
+ */
+std::vector<std::string> split(const std::string& srcStr, char delim);
+
 } // namespace ipmi