Shantappa Teekappanavar | 1ac6162 | 2021-06-22 19:07:29 -0500 | [diff] [blame] | 1 | #pragma once |
| 2 | |
| 3 | #include <sdbusplus/bus.hpp> |
| 4 | #include <xyz/openbmc_project/Logging/Create/server.hpp> |
| 5 | |
| 6 | #include <string> |
| 7 | |
| 8 | namespace watchdog |
| 9 | { |
| 10 | namespace dump |
| 11 | { |
| 12 | |
| 13 | enum ReturnCodes |
| 14 | { |
| 15 | RC_SUCCESS = 0, |
| 16 | RC_NOT_HANDLED = 1, |
| 17 | RC_DBUS_ERROR = 2 |
| 18 | }; |
| 19 | |
| 20 | using FFDCFormat = |
| 21 | sdbusplus::xyz::openbmc_project::Logging::server::Create::FFDCFormat; |
| 22 | |
| 23 | using FFDCTuple = |
| 24 | std::tuple<FFDCFormat, uint8_t, uint8_t, sdbusplus::message::unix_fd>; |
| 25 | |
| 26 | /** |
| 27 | * @brief Create a dbus method |
| 28 | * |
| 29 | * Find the dbus service associated with the dbus object path and create |
| 30 | * a dbus method for calling the specified dbus interface and function. |
| 31 | * |
| 32 | * @param path - dbus object path |
| 33 | * @param interface - dbus method interface |
| 34 | * @param function - dbus interface function |
| 35 | * @param method - method that is created |
| 36 | * @param extended - optional for extended methods |
| 37 | * @return non-zero if error |
| 38 | * |
| 39 | **/ |
| 40 | int dbusMethod(const std::string& path, const std::string& interface, |
| 41 | const std::string& function, sdbusplus::message::message& method, |
| 42 | const std::string& extended = ""); |
| 43 | |
| 44 | /** |
| 45 | * @brief Create a PEL for the specified event type |
| 46 | * |
| 47 | * The additional data provided in the map will be placed in a user data |
| 48 | * section of the PEL. |
| 49 | * |
| 50 | * @param eventType - the event type |
| 51 | * @param additional - map of additional data |
| 52 | * @param ffdc - vector of ffdc data |
| 53 | * @return Platform log id or 0 if error |
| 54 | */ |
| 55 | uint32_t createPel(const std::string& eventType, |
| 56 | std::map<std::string, std::string>& additional, |
| 57 | const std::vector<FFDCTuple>& ffdc); |
| 58 | |
| 59 | } // namespace dump |
| 60 | } // namespace watchdog |