blob: fb01b3e6909ef070cb0c2dbab6702454ee94880b [file] [log] [blame]
Sampa Misra854e61f2019-08-22 04:36:47 -05001#pragma once
2
3#include "file_io_by_type.hpp"
4
5namespace pldm
6{
7namespace responder
8{
9
10using namespace pldm::responder::dma;
11
12/** @class PelHandler
13 *
14 * @brief Inherits and implements FileHandler. This class is used
15 * to read/write pels.
16 */
17class PelHandler : public FileHandler
18{
19 public:
20 /** @brief PelHandler constructor
21 */
22 PelHandler(uint32_t fileHandle) : FileHandler(fileHandle)
George Liu6492f522020-06-16 10:34:05 +080023 {}
Sampa Misra854e61f2019-08-22 04:36:47 -050024
25 virtual int writeFromMemory(uint32_t offset, uint32_t length,
Sampa Misra69508502020-09-08 00:08:21 -050026 uint64_t address,
27 oem_platform::Handler* /*oemPlatformHandler*/);
28
Deepak Kodihalli75e02f82019-11-20 02:51:05 -060029 virtual int readIntoMemory(uint32_t offset, uint32_t& length,
Sampa Misra69508502020-09-08 00:08:21 -050030 uint64_t address,
31 oem_platform::Handler* /*oemPlatformHandler*/);
32
33 virtual int read(uint32_t offset, uint32_t& length, Response& response,
34 oem_platform::Handler* /*oemPlatformHandler*/);
Sampa Misra854e61f2019-08-22 04:36:47 -050035
Sampa Misra18967162020-01-14 02:31:41 -060036 virtual int write(const char* /*buffer*/, uint32_t /*offset*/,
Sampa Misra69508502020-09-08 00:08:21 -050037 uint32_t& /*length*/,
38 oem_platform::Handler* /*oemPlatformHandler*/)
Sampa Misra18967162020-01-14 02:31:41 -060039 {
40 return PLDM_ERROR_UNSUPPORTED_PLDM_CMD;
41 }
42
Deepak Kodihalli2da1bfe2019-12-14 08:28:09 -060043 virtual int fileAck(uint8_t fileStatus);
44
Sampa Misra854e61f2019-08-22 04:36:47 -050045 /** @brief method to store a pel file in tempfs and send
46 * d-bus notification to pel daemon that it is ready for consumption
47 *
48 * @param[in] pelFileName - the pel file path
49 */
50 virtual int storePel(std::string&& pelFileName);
51
Sampa Misra18967162020-01-14 02:31:41 -060052 virtual int newFileAvailable(uint64_t /*length*/)
53 {
54 return PLDM_ERROR_UNSUPPORTED_PLDM_CMD;
55 }
56
Sampa Misra854e61f2019-08-22 04:36:47 -050057 /** @brief PelHandler destructor
58 */
59 ~PelHandler()
George Liu6492f522020-06-16 10:34:05 +080060 {}
Sampa Misra854e61f2019-08-22 04:36:47 -050061};
62
63} // namespace responder
64} // namespace pldm