1 #pragma once 2 3 #include <libpldm/base.h> 4 #include <libpldm/oem/meta/file_io.h> 5 6 #include <cstdint> 7 #include <span> 8 9 namespace pldm::responder::oem_meta 10 { 11 using message = std::span<uint8_t>; 12 13 enum class FileIOType : uint8_t 14 { 15 POST_CODE = 0x00, 16 BIOS_VERSION = 0x01, 17 POWER_CONTROL = 0x02, 18 HTTP_BOOT = 0x03, 19 APML_ALERT = 0x04 20 }; 21 22 /** 23 * @class FileHandler 24 * 25 * Base class to handle read/write of all OEM file types 26 */ 27 class FileHandler 28 { 29 protected: 30 FileHandler() = default; 31 32 public: 33 FileHandler(const FileHandler&) = delete; 34 FileHandler(FileHandler&&) = delete; 35 FileHandler& operator=(const FileHandler&) = delete; 36 FileHandler& operator=(FileHandler&&) = delete; 37 virtual ~FileHandler() = default; 38 39 /** @brief Method to write data to BMC 40 * @param[in] data - eventData 41 * @return PLDM status code 42 */ write(const message & data)43 virtual int write([[maybe_unused]] const message& data) 44 { 45 return PLDM_ERROR_UNSUPPORTED_PLDM_CMD; 46 } 47 48 /** @brief Method to read data from BIC 49 * @param[in] data - eventData 50 * @return PLDM status code 51 */ read(struct pldm_oem_meta_file_io_read_resp * data)52 virtual int read( 53 [[maybe_unused]] struct pldm_oem_meta_file_io_read_resp* data) 54 { 55 return PLDM_ERROR_UNSUPPORTED_PLDM_CMD; 56 } 57 }; 58 59 } // namespace pldm::responder::oem_meta 60