oem-ibm: Resource dump support

This commit includes the changes to support resource dump. Input
parameters to initiate resource dump are vsp string and the
password.

Resource Dump Flow:
1. PLDM waits for the resource dump create signal from
   dump manager
2. BMC sends the NewfileAvailable command to hypervisor with
   resource dump paramters
   Format: <Length of the VSP String><VSP String>
   <Length of the Password><Password>
3. Hypervisor reads and validates the data and send the File Ack
   command back to BMC
4. Once completed, BMC receives the NewfileAvailable command from
   hypervisor with resource dump details
5. User initiates the dump offload
6. BMC receives the  write file by type from memory command from
   hypervisor
7. Once this operation is completed BMC receives the File Ack
   command from hyperviosr

Tested By:
1. Initiating the resource dump using pldmtool, busctl and redfish
2. Verified that resource dump entry is updated with source id,
   length, completion time and status.
3. Dump offload is successful with initiating from redfish
4. Verified that new resource dump is generated at hypervisor level
5. Error scenarios tested are like empty vsp string, not supported
   vsp string etc.

Signed-off-by: Jayashankar Padath <jayashankar.padath@in.ibm.com>
Change-Id: Iedcdf3cf16c263a2d1749bb5251f7f6244c327ea
diff --git a/oem/ibm/libpldmresponder/file_io_type_dump.hpp b/oem/ibm/libpldmresponder/file_io_type_dump.hpp
index cb4a1ad..2c425d1 100644
--- a/oem/ibm/libpldmresponder/file_io_type_dump.hpp
+++ b/oem/ibm/libpldmresponder/file_io_type_dump.hpp
@@ -17,32 +17,30 @@
   public:
     /** @brief DumpHandler constructor
      */
-    DumpHandler(uint32_t fileHandle) : FileHandler(fileHandle)
+    DumpHandler(uint32_t fileHandle, uint16_t fileType) :
+        FileHandler(fileHandle), dumpType(fileType)
     {}
 
     virtual int writeFromMemory(uint32_t offset, uint32_t length,
                                 uint64_t address,
                                 oem_platform::Handler* /*oemPlatformHandler*/);
 
-    virtual int readIntoMemory(uint32_t /*offset*/, uint32_t& /*length*/,
-                               uint64_t /*address*/,
-                               oem_platform::Handler* /*oemPlatformHandler*/)
-    {
-        return PLDM_ERROR_UNSUPPORTED_PLDM_CMD;
-    }
-    virtual int read(uint32_t /*offset*/, uint32_t& /*length*/,
-                     Response& /*response*/,
-                     oem_platform::Handler* /*oemPlatformHandler*/)
-    {
-        return PLDM_ERROR_UNSUPPORTED_PLDM_CMD;
-    }
+    virtual int readIntoMemory(uint32_t offset, uint32_t& length,
+                               uint64_t address,
+                               oem_platform::Handler* /*oemPlatformHandler*/);
+
+    virtual int read(uint32_t offset, uint32_t& length, Response& response,
+                     oem_platform::Handler* /*oemPlatformHandler*/);
 
     virtual int write(const char* buffer, uint32_t offset, uint32_t& length,
                       oem_platform::Handler* /*oemPlatformHandler*/);
 
     virtual int newFileAvailable(uint64_t length);
 
-    virtual int fileAck(uint8_t /*fileStatus*/);
+    virtual int fileAck(uint8_t fileStatus);
+
+    std::string findDumpObjPath(uint32_t fileHandle);
+    std::string getOffloadUri(uint32_t fileHandle);
 
     /** @brief DumpHandler destructor
      */
@@ -50,7 +48,8 @@
     {}
 
   private:
-    static int fd; //!< fd to manage the dump offload to bmc
+    static int fd;     //!< fd to manage the dump offload to bmc
+    uint16_t dumpType; //!< type of the dump
 };
 
 } // namespace responder