host-bmc: Implement VRM interface

Adds support to host Voltage Regulator Module interface.  Based on the
PDRs received from remote PLDM terminus, PLDM hosts the dbus interface
based on the entity type.  The VRM interface is defined at [1].

Tested:
   Functional test passed

[1]: https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/yaml/xyz/openbmc_project/Inventory/Item/Vrm.interface.yaml

Change-Id: I5124de5f34d3a482d17f1859ecfe8704901c5fad
Signed-off-by: Archana Kakani <archana.kakani@ibm.com>
diff --git a/host-bmc/dbus/vrm.hpp b/host-bmc/dbus/vrm.hpp
new file mode 100644
index 0000000..c38bbf8
--- /dev/null
+++ b/host-bmc/dbus/vrm.hpp
@@ -0,0 +1,36 @@
+#pragma once
+
+#include <sdbusplus/bus.hpp>
+#include <sdbusplus/server.hpp>
+#include <sdbusplus/server/object.hpp>
+#include <xyz/openbmc_project/Inventory/Item/Vrm/server.hpp>
+
+#include <string>
+
+namespace pldm
+{
+namespace dbus
+{
+using ItemVRM = sdbusplus::server::object_t<
+    sdbusplus::xyz::openbmc_project::Inventory::Item::server::Vrm>;
+
+class VRM : public ItemVRM
+{
+  public:
+    VRM() = delete;
+    ~VRM() = default;
+    VRM(const VRM&) = delete;
+    VRM& operator=(const VRM&) = delete;
+    VRM(VRM&&) = delete;
+    VRM& operator=(VRM&&) = delete;
+
+    VRM(sdbusplus::bus_t& bus, const std::string& objPath) :
+        ItemVRM(bus, objPath.c_str()), path(objPath)
+    {}
+
+  private:
+    std::string path;
+};
+
+} // namespace dbus
+} // namespace pldm