1 #pragma once
2 
3 #include <sdbusplus/bus.hpp>
4 #include <xyz/openbmc_project/Logging/Entry/server.hpp>
5 
6 namespace phosphor
7 {
8 namespace state
9 {
10 namespace manager
11 {
12 namespace utils
13 {
14 
15 /** @brief Get service name from object path and interface
16  *
17  * @param[in] bus          - The Dbus bus object
18  * @param[in] path         - The Dbus object path
19  * @param[in] interface    - The Dbus interface
20  *
21  * @return The name of the service
22  */
23 std::string getService(sdbusplus::bus_t& bus, std::string path,
24                        std::string interface);
25 
26 /** @brief Get the value of input property
27  *
28  * @param[in] bus          - The Dbus bus object
29  * @param[in] path         - The Dbus object path
30  * @param[in] interface    - The Dbus interface
31  * @param[in] property     - The property name to get
32  *
33  * @return The value of the property
34  */
35 std::string getProperty(sdbusplus::bus_t& bus, const std::string& path,
36                         const std::string& interface,
37                         const std::string& propertyName);
38 
39 /** @brief Set the value of property
40  *
41  * @param[in] bus          - The Dbus bus object
42  * @param[in] path         - The Dbus object path
43  * @param[in] interface    - The Dbus interface
44  * @param[in] property     - The property name to set
45  * @param[in] value        - The value of property
46  */
47 void setProperty(sdbusplus::bus_t& bus, const std::string& path,
48                  const std::string& interface, const std::string& property,
49                  const std::string& value);
50 
51 /** @brief Return the value of the input GPIO
52  *
53  * @param[in] gpioName          - The name of the GPIO to read
54  *
55  *  * @return The value of the gpio (0 or 1) or -1 on error
56  */
57 int getGpioValue(const std::string& gpioName);
58 
59 /** @brief Create an error log
60  *
61  * @param[in] bus           - The Dbus bus object
62  * @param[in] errorMsg      - The error message
63  * @param[in] errLevel      - The error level
64  * parampin] additionalData - Optional extra data to add to the log
65  */
66 void createError(
67     sdbusplus::bus_t& bus, const std::string& errorMsg,
68     sdbusplus::xyz::openbmc_project::Logging::server::Entry::Level errLevel,
69     std::map<std::string, std::string> additionalData = {});
70 
71 /** @brief Call phosphor-dump-manager to create BMC user dump
72  *
73  * @param[in] bus          - The Dbus bus object
74  */
75 void createBmcDump(sdbusplus::bus_t& bus);
76 
77 /** @brief Attempt to locate the obmc-chassis-lost-power@ file
78  *    to indicate that an AC loss occured.
79  *
80  * @param[in] chassisId  - the chassis instance
81  */
82 bool checkACLoss(size_t& chassisId);
83 
84 } // namespace utils
85 } // namespace manager
86 } // namespace state
87 } // namespace phosphor
88