summaryrefslogtreecommitdiffstats
path: root/dcmihandler.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'dcmihandler.hpp')
-rw-r--r--dcmihandler.hpp51
1 files changed, 51 insertions, 0 deletions
diff --git a/dcmihandler.hpp b/dcmihandler.hpp
new file mode 100644
index 0000000..dfe1d4e
--- /dev/null
+++ b/dcmihandler.hpp
@@ -0,0 +1,51 @@
+#ifndef __HOST_IPMI_DCMI_HANDLER_H__
+#define __HOST_IPMI_DCMI_HANDLER_H__
+
+#include <map>
+#include <string>
+#include <vector>
+
+// IPMI commands for net functions.
+enum ipmi_netfn_sen_cmds
+{
+ // Get capability bits
+ IPMI_CMD_DCMI_GET_POWER = 0x03,
+};
+
+namespace dcmi
+{
+
+static constexpr auto propIntf = "org.freedesktop.DBus.Properties";
+static constexpr auto assetTagIntf =
+ "xyz.openbmc_project.Inventory.Decorator.AssetTag";
+static constexpr auto assetTagProp = "AssetTag";
+
+namespace assettag
+{
+
+ using ObjectPath = std::string;
+ using Service = std::string;
+ using Interfaces = std::vector<std::string>;
+ using ObjectTree = std::map<ObjectPath, std::map<Service, Interfaces>>;
+
+} //namespace assettag
+
+/** @brief Read the object tree to fetch the object path that implemented the
+ * Asset tag interface.
+ *
+ * @param[in,out] objectTree - object tree
+ *
+ * @return On success return the object tree with the object path that
+ * implemented the AssetTag interface.
+ */
+void readAssetTagObjectTree(dcmi::assettag::ObjectTree& objectTree);
+
+/** @brief Read the asset tag of the server
+ *
+ * @return On success return the asset tag.
+ */
+std::string readAssetTag();
+
+} // namespace dcmi
+
+#endif
OpenPOWER on IntegriCloud