1 #pragma once 2 3 #include <sdbusplus/bus.hpp> 4 #include <util/ffdc_file.hpp> 5 6 #include <string> 7 8 namespace attn 9 { 10 11 /** 12 * Create a dbus method 13 * 14 * Find the dbus service associated with the dbus object path and create 15 * a dbus method for calling the specified dbus interface and function. 16 * 17 * @param i_path - dbus object path 18 * @param i_interface - dbus method interface 19 * @param i_function - dbus interface function 20 * @param o_method - method that is created 21 * @param i_extended - optional for extended methods 22 * @return non-zero if error 23 * 24 **/ 25 int dbusMethod(const std::string& i_path, const std::string& i_interface, 26 const std::string& i_function, 27 sdbusplus::message::message& o_method, 28 const std::string& i_extended = ""); 29 30 /** 31 * Create a PEL for the specified event type 32 * 33 * The additional data provided in the map will be placed in a user data 34 * section of the PEL and may additionally contain key words to trigger 35 * certain behaviors by the backend logging code. Each set of data described 36 * in the vector of ffdc data will be placed in additional user data 37 * sections. 38 * 39 * @param i_event - the event type 40 * @param i_additional - map of additional data 41 * @param i_ffdc - vector of ffdc data 42 * @return Platform log id or 0 if error 43 */ 44 uint32_t createPel(const std::string& i_event, 45 std::map<std::string, std::string>& i_additional, 46 const std::vector<util::FFDCTuple>& i_ffdc); 47 48 /** 49 * Create a PEL from raw PEL data 50 * 51 * Create a PEL based on the pel defined in the data buffer specified. 52 * 53 * @param i_buffer - buffer containing a raw PEL 54 */ 55 void createPelRaw(const std::vector<uint8_t>& i_buffer); 56 57 /** 58 * Get file descriptor of exisitng PEL 59 * 60 * The backend logging code will search for a PEL having the provided pel id 61 * and return a file descriptor of a file containing this pel in raw form. 62 * 63 * @param i_pelid - the PEL ID 64 * @return file descriptor or -1 if error 65 */ 66 int getPel(const uint32_t i_pelId); 67 68 } // namespace attn 69