xref: /openbmc/phosphor-ipmi-flash/tools/lpc.hpp (revision 55c5374b)
1 #pragma once
2 
3 #include "blob_interface.hpp"
4 #include "interface.hpp"
5 
6 #include <cstdint>
7 
8 namespace host_tool
9 {
10 
11 struct LpcRegion
12 {
13     /* Host LPC address at which the chunk is to be mapped. */
14     std::uint32_t address;
15     /* Size of the chunk to be mapped. */
16     std::uint32_t length;
17 };
18 
19 class LpcDataHandler : public DataInterface
20 {
21   public:
22     explicit LpcDataHandler(BlobInterface* blob) : blob(blob){};
23 
24     bool sendContents(const std::string& input, std::uint16_t session) override;
25     blobs::FirmwareBlobHandler::UpdateFlags supportedType() const override
26     {
27         return blobs::FirmwareBlobHandler::UpdateFlags::lpc;
28     }
29 
30   private:
31     BlobInterface* blob;
32 };
33 
34 } // namespace host_tool
35