pldm: Implement PCIeSlot interface

Adding support to host dbus PCIeSlot interface.
Based on the PDRs received from remote PLDM terminus,
PLDM hosts the dbus interface based on the entity type.
The Slot 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/PCIeSlot.interface.yaml

Change-Id: I98db6c31ddcb35e5c124d060c4ee0ab0f8819e72
Signed-off-by: Archana Kakani <archana.kakani@ibm.com>
diff --git a/host-bmc/dbus/pcie_slot.cpp b/host-bmc/dbus/pcie_slot.cpp
new file mode 100644
index 0000000..85fa244
--- /dev/null
+++ b/host-bmc/dbus/pcie_slot.cpp
@@ -0,0 +1,57 @@
+#include "pcie_slot.hpp"
+
+namespace pldm
+{
+namespace dbus
+{
+
+auto PCIeSlot::generation() const -> Generations
+{
+    return sdbusplus::xyz::openbmc_project::Inventory::Item::server::PCIeSlot::
+        generation();
+}
+
+auto PCIeSlot::generation(Generations value) -> Generations
+{
+    return sdbusplus::xyz::openbmc_project::Inventory::Item::server::PCIeSlot::
+        generation(value);
+}
+
+size_t PCIeSlot::lanes() const
+{
+    return sdbusplus::xyz::openbmc_project::Inventory::Item::server::PCIeSlot::
+        lanes();
+}
+
+size_t PCIeSlot::lanes(size_t value)
+{
+    return sdbusplus::xyz::openbmc_project::Inventory::Item::server::PCIeSlot::
+        lanes(value);
+}
+
+auto PCIeSlot::slotType() const -> SlotTypes
+{
+    return sdbusplus::xyz::openbmc_project::Inventory::Item::server::PCIeSlot::
+        slotType();
+}
+
+auto PCIeSlot::slotType(SlotTypes value) -> SlotTypes
+{
+    return sdbusplus::xyz::openbmc_project::Inventory::Item::server::PCIeSlot::
+        slotType(value);
+}
+
+bool PCIeSlot::hotPluggable() const
+{
+    return sdbusplus::xyz::openbmc_project::Inventory::Item::server::PCIeSlot::
+        hotPluggable();
+}
+
+bool PCIeSlot::hotPluggable(bool value)
+{
+    return sdbusplus::xyz::openbmc_project::Inventory::Item::server::PCIeSlot::
+        hotPluggable(value);
+}
+
+} // namespace dbus
+} // namespace pldm