blob: 5e747b7375d93b0e8aeda6099fbed075fe13a2cd [file] [log] [blame]
Carol Wangdc059392020-03-13 17:39:17 +08001#pragma once
2
3#include <sdbusplus/bus.hpp>
Andrew Geissler9d4d0c92022-01-26 13:18:12 -06004#include <xyz/openbmc_project/Logging/Entry/server.hpp>
Carol Wangdc059392020-03-13 17:39:17 +08005
6namespace phosphor
7{
8namespace state
9{
10namespace manager
11{
12namespace 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 */
23std::string getService(sdbusplus::bus::bus& bus, std::string path,
24 std::string interface);
25
Andrew Geissler49e67132022-01-26 14:27:52 -060026/** @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 */
35std::string getProperty(sdbusplus::bus::bus& bus, const std::string& path,
36 const std::string& interface,
37 const std::string& propertyName);
38
Carol Wangdc059392020-03-13 17:39:17 +080039/** @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 */
47void setProperty(sdbusplus::bus::bus& bus, const std::string& path,
48 const std::string& interface, const std::string& property,
49 const std::string& value);
50
Andrew Geisslerf8ae6a02022-01-21 17:00:20 -060051/** @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 */
57int getGpioValue(const std::string& gpioName);
58
Andrew Geissler9d4d0c92022-01-26 13:18:12 -060059/** @brief Create an error log
60 *
Andrew Geisslerd49f51e2022-03-07 14:57:07 -060061 * @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
Andrew Geissler9d4d0c92022-01-26 13:18:12 -060065 */
66void createError(
67 sdbusplus::bus::bus& bus, const std::string& errorMsg,
Andrew Geisslerd49f51e2022-03-07 14:57:07 -060068 sdbusplus::xyz::openbmc_project::Logging::server::Entry::Level errLevel,
69 std::map<std::string, std::string> additionalData = {});
Andrew Geissler9d4d0c92022-01-26 13:18:12 -060070
Andrew Geissler55e96ac2022-04-19 11:44:53 -040071/** @brief Call phosphor-dump-manager to create BMC user dump
72 *
73 * @param[in] bus - The Dbus bus object
74 */
75void createBmcDump(sdbusplus::bus::bus& bus);
76
Carol Wangdc059392020-03-13 17:39:17 +080077} // namespace utils
78} // namespace manager
79} // namespace state
Andrew Geisslerf8ae6a02022-01-21 17:00:20 -060080} // namespace phosphor