blob: 2aeeb23d57072ca59313e37c653ee0721beeb4cd [file] [log] [blame]
Lei YU56aaf452018-06-21 16:09:44 +08001#pragma once
2
Lei YU56aaf452018-06-21 16:09:44 +08003#include <sdbusplus/bus.hpp>
Adriana Kobylak58aa7502020-06-08 11:12:11 -05004
Gunnar Millsb0ce9962018-09-07 13:39:10 -05005#include <string>
Lei YU56aaf452018-06-21 16:09:44 +08006
7namespace phosphor
8{
9namespace software
10{
11namespace updater
12{
13
14class 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&&) = default;
22
23 /** @brief Constructor
24 *
25 * @param[in] bus - sdbusplus D-Bus bus connection
26 */
27 Helper(sdbusplus::bus::bus& bus) : bus(bus)
28 {
29 // Empty
30 }
31
Adriana Kobylakbbcb7be2018-07-17 15:47:34 -050032 /** @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
Lei YU56aaf452018-06-21 16:09:44 +080039 /** @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 version id
52 *
53 * @param[in] versionId - The version id of the image
54 */
55 void removeVersion(const std::string& versionId);
56
57 /** @brief Update version id in uboot env
58 *
59 * @param[in] versionId - The version id of the image
60 */
61 void updateUbootVersionId(const std::string& versionId);
62
Lei YU56aaf452018-06-21 16:09:44 +080063 /** @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::bus& bus;
69};
70
71} // namespace updater
72} // namespace software
73} // namespace phosphor