1*cab87e9cSJagpal Singh Gill #pragma once 2*cab87e9cSJagpal Singh Gill 3*cab87e9cSJagpal Singh Gill #include "config.h" 4*cab87e9cSJagpal Singh Gill 5*cab87e9cSJagpal Singh Gill #include "version.hpp" 6*cab87e9cSJagpal Singh Gill 7*cab87e9cSJagpal Singh Gill #include <string> 8*cab87e9cSJagpal Singh Gill 9*cab87e9cSJagpal Singh Gill namespace phosphor 10*cab87e9cSJagpal Singh Gill { 11*cab87e9cSJagpal Singh Gill namespace software 12*cab87e9cSJagpal Singh Gill { 13*cab87e9cSJagpal Singh Gill namespace updater 14*cab87e9cSJagpal Singh Gill { 15*cab87e9cSJagpal Singh Gill 16*cab87e9cSJagpal Singh Gill using VersionPurpose = 17*cab87e9cSJagpal Singh Gill sdbusplus::server::xyz::openbmc_project::software::Version::VersionPurpose; 18*cab87e9cSJagpal Singh Gill 19*cab87e9cSJagpal Singh Gill /** @brief Serialization function - stores priority information to file 20*cab87e9cSJagpal Singh Gill * @param[in] flashId - The flash id of the version for which to store 21*cab87e9cSJagpal Singh Gill * information. 22*cab87e9cSJagpal Singh Gill * @param[in] priority - RedundancyPriority value for that version. 23*cab87e9cSJagpal Singh Gill **/ 24*cab87e9cSJagpal Singh Gill void storePriority(const std::string& flashId, uint8_t priority); 25*cab87e9cSJagpal Singh Gill 26*cab87e9cSJagpal Singh Gill /** @brief Serialization function - stores purpose information to file 27*cab87e9cSJagpal Singh Gill * @param[in] flashId - The flash id of the version for which to store 28*cab87e9cSJagpal Singh Gill * information. 29*cab87e9cSJagpal Singh Gill * @param[in] purpose - VersionPurpose value for that version. 30*cab87e9cSJagpal Singh Gill **/ 31*cab87e9cSJagpal Singh Gill void storePurpose(const std::string& flashId, VersionPurpose purpose); 32*cab87e9cSJagpal Singh Gill 33*cab87e9cSJagpal Singh Gill /** @brief Serialization function - restores priority information from file 34*cab87e9cSJagpal Singh Gill * @param[in] flashId - The flash id of the version for which to retrieve 35*cab87e9cSJagpal Singh Gill * information. 36*cab87e9cSJagpal Singh Gill * @param[in] priority - RedundancyPriority reference for that version. 37*cab87e9cSJagpal Singh Gill * @return true if restore was successful, false if not 38*cab87e9cSJagpal Singh Gill **/ 39*cab87e9cSJagpal Singh Gill bool restorePriority(const std::string& flashId, uint8_t& priority); 40*cab87e9cSJagpal Singh Gill 41*cab87e9cSJagpal Singh Gill /** @brief Serialization function - restores purpose information from file 42*cab87e9cSJagpal Singh Gill * @param[in] flashId - The flash id of the version for which to retrieve 43*cab87e9cSJagpal Singh Gill * information. 44*cab87e9cSJagpal Singh Gill * @param[in] purpose - VersionPurpose reference for that version. 45*cab87e9cSJagpal Singh Gill * @return true if restore was successful, false if not 46*cab87e9cSJagpal Singh Gill **/ 47*cab87e9cSJagpal Singh Gill bool restorePurpose(const std::string& flashId, VersionPurpose& purpose); 48*cab87e9cSJagpal Singh Gill 49*cab87e9cSJagpal Singh Gill /** @brief Removes the serial directory for a given version. 50*cab87e9cSJagpal Singh Gill * @param[in] flash Id - The flash id of the version for which to remove a 51*cab87e9cSJagpal Singh Gill * file, if it exists. 52*cab87e9cSJagpal Singh Gill **/ 53*cab87e9cSJagpal Singh Gill void removePersistDataDirectory(const std::string& flashId); 54*cab87e9cSJagpal Singh Gill 55*cab87e9cSJagpal Singh Gill } // namespace updater 56*cab87e9cSJagpal Singh Gill } // namespace software 57*cab87e9cSJagpal Singh Gill } // namespace phosphor 58