| #ifndef THIRD_PARTY_MILOTIC_EXTERNAL_CC_TLBMC_UTILS_FRAM_UTILS_H_ |
| #define THIRD_PARTY_MILOTIC_EXTERNAL_CC_TLBMC_UTILS_FRAM_UTILS_H_ |
| |
| #include <memory> |
| |
| #include "absl/status/statusor.h" |
| #include "tlbmc/hal/fru_scanner.h" |
| #include "fru.pb.h" |
| |
| namespace milotic_tlbmc { |
| |
| // Constructs a RawFru proto from the information extracted from the FRAM data |
| // contained within the provided I2cFruInfo object. |
| // This function uses an internal helper (ParseFramData) to parse the raw byte |
| // data from the I2cFruInfo object. It then populates the fields in the RawFru |
| // proto, including I2C bus and address information, and specific FRU fields |
| // like serial number, product name, and board manufacturer. |
| // |
| // Args: |
| // i2c_fru: A unique pointer to an I2cFruInfo struct containing the raw |
| // FRAM data and the I2C bus/address where it was read from. |
| // |
| // Returns: |
| // A RawFru proto populated with the information from the FRAM, or an error |
| // status if the data cannot be parsed or essential information is missing. |
| absl::StatusOr<RawFru> CreateRawFruFromFramData( |
| const std::unique_ptr<I2cFruInfo>& i2c_fru); |
| |
| } // namespace milotic_tlbmc |
| |
| #endif // THIRD_PARTY_MILOTIC_EXTERNAL_CC_TLBMC_UTILS_FRAM_UTILS_H_ |