| #ifndef THIRD_PARTY_MILOTIC_EXTERNAL_CC_TLBMC_HAL_PECI_PECI_ACCESS_IMPL_H_ |
| #define THIRD_PARTY_MILOTIC_EXTERNAL_CC_TLBMC_HAL_PECI_PECI_ACCESS_IMPL_H_ |
| |
| #include <array> |
| #include <cstdint> |
| |
| #include "absl/status/status.h" |
| #include "absl/status/statusor.h" |
| #include "absl/strings/string_view.h" |
| #include "tlbmc/hal/peci/peci_access_interface.h" |
| #include "peci.h" |
| |
| namespace milotic_tlbmc { |
| |
| class PeciAccessImpl : public PeciAccessInterface { |
| public: |
| PeciAccessImpl() = default; |
| ~PeciAccessImpl() override = default; |
| |
| absl::Status Ping(uint8_t target) const override; |
| |
| absl::StatusOr<std::array<uint8_t, 8>> RdPkgConfig( |
| uint8_t target, uint8_t index, uint16_t value, |
| uint8_t read_len) const override; |
| |
| void SetDevName(absl::string_view dev_name) const override; |
| |
| absl::StatusOr<int> Lock(EPECITimeout timeout) const override; |
| |
| void Unlock(int peci_fd) const override; |
| |
| protected: |
| static absl::Status PeciStatusToAbslStatus(EPECIStatus status, |
| uint8_t completion_code, |
| absl::string_view message); |
| }; |
| |
| } // namespace milotic_tlbmc |
| |
| #endif // THIRD_PARTY_MILOTIC_EXTERNAL_CC_TLBMC_HAL_PECI_PECI_ACCESS_IMPL_H_ |