1*188f1096SBen Tyner #pragma once 2*188f1096SBen Tyner 3*188f1096SBen Tyner #include <sdbusplus/bus.hpp> 4*188f1096SBen Tyner #include <util/ffdc_file.hpp> 5*188f1096SBen Tyner 6*188f1096SBen Tyner #include <string> 7*188f1096SBen Tyner 8*188f1096SBen Tyner namespace attn 9*188f1096SBen Tyner { 10*188f1096SBen Tyner 11*188f1096SBen Tyner /** 12*188f1096SBen Tyner * Create a PEL for the specified event type 13*188f1096SBen Tyner * 14*188f1096SBen Tyner * The additional data provided in the map will be placed in a user data 15*188f1096SBen Tyner * section of the PEL and may additionally contain key words to trigger 16*188f1096SBen Tyner * certain behaviors by the backend logging code. Each set of data described 17*188f1096SBen Tyner * in the vector of ffdc data will be placed in additional user data 18*188f1096SBen Tyner * sections. 19*188f1096SBen Tyner * 20*188f1096SBen Tyner * @param i_event - the event type 21*188f1096SBen Tyner * @param i_additional - map of additional data 22*188f1096SBen Tyner * @param i_ffdc - vector of ffdc data 23*188f1096SBen Tyner * @return Platform log id or 0 if error 24*188f1096SBen Tyner */ 25*188f1096SBen Tyner uint32_t createPel(const std::string& i_event, 26*188f1096SBen Tyner std::map<std::string, std::string>& i_additional, 27*188f1096SBen Tyner const std::vector<util::FFDCTuple>& i_ffdc); 28*188f1096SBen Tyner 29*188f1096SBen Tyner /** 30*188f1096SBen Tyner * Create a PEL from raw PEL data 31*188f1096SBen Tyner * 32*188f1096SBen Tyner * Create a PEL based on the pel defined in the data buffer specified. 33*188f1096SBen Tyner * 34*188f1096SBen Tyner * @param i_buffer - buffer containing a raw PEL 35*188f1096SBen Tyner */ 36*188f1096SBen Tyner void createPelRaw(const std::vector<uint8_t>& i_buffer); 37*188f1096SBen Tyner 38*188f1096SBen Tyner /** 39*188f1096SBen Tyner * Get file descriptor of exisitng PEL 40*188f1096SBen Tyner * 41*188f1096SBen Tyner * The backend logging code will search for a PEL having the provided pel id 42*188f1096SBen Tyner * and return a file descriptor of a file containing this pel in raw form. 43*188f1096SBen Tyner * 44*188f1096SBen Tyner * @param i_pelid - the PEL ID 45*188f1096SBen Tyner * @return file descriptor or -1 if error 46*188f1096SBen Tyner */ 47*188f1096SBen Tyner int getPel(const uint32_t i_pelId); 48*188f1096SBen Tyner 49*188f1096SBen Tyner } // namespace attn 50