xref: /openbmc/phosphor-bmc-code-mgmt/item_updater_helper.hpp (revision 4fd0d0f0402e19b845055333a3ecaefc396565ce)
1 #pragma once
2 
3 #include <sdbusplus/bus.hpp>
4 
5 #include <string>
6 
7 namespace phosphor
8 {
9 namespace software
10 {
11 namespace updater
12 {
13 
14 class Helper
15 {
16   public:
17     Helper() = delete;
18     Helper(const Helper&) = delete;
19     Helper& operator=(const Helper&) = delete;
20     Helper(Helper&&) = default;
21     Helper& operator=(Helper&&) = delete;
22 
23     /** @brief Constructor
24      *
25      *  @param[in] bus - sdbusplus D-Bus bus connection
26      */
27     explicit Helper(sdbusplus::bus_t& bus) : bus(bus)
28     {
29         // Empty
30     }
31 
32     /** @brief Set an environment variable to the specified value
33      *
34      * @param[in] entryId - The variable name
35      * @param[in] value - The variable value
36      */
37     void setEntry(const std::string& entryId, uint8_t value);
38 
39     /** @brief Clear an image with the entry id
40      *
41      * @param[in] entryId - The image entry id
42      */
43     void clearEntry(const std::string& entryId);
44 
45     /** @brief Clean up all the unused images */
46     void cleanup();
47 
48     /** @brief Do factory reset */
49     void factoryReset();
50 
51     /** @brief Remove the image with the flash id
52      *
53      * @param[in] flashId - The flash id of the image
54      */
55     void removeVersion(const std::string& flashId);
56 
57     /** @brief Update flash id in uboot env
58      *
59      * @param[in] flashId - The flash id of the image
60      */
61     void updateUbootVersionId(const std::string& flashId);
62 
63     /** @brief Mirror Uboot to the alt uboot partition */
64     void mirrorAlt();
65 
66   private:
67     /** @brief Persistent sdbusplus D-Bus bus connection. */
68     sdbusplus::bus_t& bus;
69 };
70 
71 } // namespace updater
72 } // namespace software
73 } // namespace phosphor
74