17d9157edSMarri Devender Rao #pragma once
226f80ab2SPatrick Venture 
3*69c945eaSPatrick Williams #include <cstdint>
426f80ab2SPatrick Venture #include <map>
57d9157edSMarri Devender Rao #include <string>
67d9157edSMarri Devender Rao #include <vector>
77d9157edSMarri Devender Rao 
87d9157edSMarri Devender Rao namespace ipmi
97d9157edSMarri Devender Rao {
107d9157edSMarri Devender Rao namespace fru
117d9157edSMarri Devender Rao {
127d9157edSMarri Devender Rao using FruAreaData = std::vector<uint8_t>;
137d9157edSMarri Devender Rao using Section = std::string;
147d9157edSMarri Devender Rao using Value = std::string;
157d9157edSMarri Devender Rao using Property = std::string;
167d9157edSMarri Devender Rao using PropertyMap = std::map<Property, Value>;
177d9157edSMarri Devender Rao using FruInventoryData = std::map<Section, PropertyMap>;
187d9157edSMarri Devender Rao 
197d9157edSMarri Devender Rao /**
207d9157edSMarri Devender Rao  * @brief Builds Fru area data from inventory data
217d9157edSMarri Devender Rao  *
227d9157edSMarri Devender Rao  * @param[in] invData FRU properties values read from inventory
237d9157edSMarri Devender Rao  *
247d9157edSMarri Devender Rao  * @return FruAreaData FRU area data as per IPMI specification
257d9157edSMarri Devender Rao  */
267d9157edSMarri Devender Rao FruAreaData buildFruAreaData(const FruInventoryData& inventory);
277d9157edSMarri Devender Rao 
280b02be92SPatrick Venture } // namespace fru
290b02be92SPatrick Venture } // namespace ipmi
30