/src/bios-bmc-smm-error-logger/include/data_interface.hpp
Line | Count | Source |
1 | | #pragma once |
2 | | |
3 | | #include <cstdint> |
4 | | #include <span> |
5 | | #include <vector> |
6 | | |
7 | | namespace bios_bmc_smm_error_logger |
8 | | { |
9 | | |
10 | | /** |
11 | | * Each data transport mechanism must implement the DataInterface. |
12 | | */ |
13 | | class DataInterface |
14 | | { |
15 | | public: |
16 | 2.04k | virtual ~DataInterface() = default; |
17 | | |
18 | | /** |
19 | | * Read bytes from shared buffer (blocking call). |
20 | | * |
21 | | * @param[in] offset - offset to read from relative to MMIO space |
22 | | * @param[in] length - number of bytes to read |
23 | | * @return the bytes read |
24 | | */ |
25 | | virtual std::vector<uint8_t> read(const uint32_t offset, |
26 | | const uint32_t length) = 0; |
27 | | |
28 | | /** |
29 | | * Write bytes to shared buffer. |
30 | | * |
31 | | * @param[in] offset - offset to write to relative to MMIO space |
32 | | * @param[in] bytes - byte vector of data. |
33 | | * @return return the byte length written |
34 | | */ |
35 | | virtual uint32_t write(const uint32_t offset, |
36 | | const std::span<const uint8_t> bytes) = 0; |
37 | | |
38 | | /** |
39 | | * Getter for Memory Region Size |
40 | | * |
41 | | * @return return Memory Region size allocated |
42 | | */ |
43 | | virtual uint32_t getMemoryRegionSize() = 0; |
44 | | }; |
45 | | |
46 | | } // namespace bios_bmc_smm_error_logger |