Lines Matching full:pel
8 #include <attn/pel/pel_minimal.hpp>
95 * Create a PEL from an existing PEL
97 * Create a new PEL based on the specified raw PEL and submit the new PEL
98 * to the backend logging code as a raw PEL. Note that additional data map
99 * here contains data to be committed to the PEL and it can also be used to
100 * create the PEL as it contains needed information.
102 * @param i_rawPel - buffer containing a raw PEL
103 * @param i_additional - additional data to be added to the new PEL
108 // create PEL object from buffer in createPelCustom()
109 auto tiPel = std::make_unique<pel::PelMinimal>(i_rawPel); in createPelCustom()
113 // data and then populate the primary SRC and SRC words for the custom PEL in createPelCustom()
134 // then link the custom pel to analyzer pel. in createPelCustom()
143 // Link the PLID if an attention was found and a PEL was generated. in createPelCustom()
148 if (static_cast<uint8_t>(pel::SubsystemID::hypervisor) == subsystem) in createPelCustom()
151 tiPel->setSrcWords(std::array<uint32_t, pel::numSrcWords>{ in createPelCustom()
163 // char array for raw pel src in createPelCustom()
164 std::array<char, pel::asciiStringSize> srcChars{'0'}; in createPelCustom()
185 std::min(srcString.size(), pel::asciiStringSize), 0); in createPelCustom()
187 tiPel->setAsciiString(srcChars); // pel object src is char array in createPelCustom()
207 // data (additional data "0x10 HB Word") is reflected in the PEL as in createPelCustom()
210 tiPel->setSrcWords(std::array<uint32_t, pel::numSrcWords>{ in createPelCustom()
222 // char array for raw pel src in createPelCustom()
223 std::array<char, pel::asciiStringSize> srcChars{'0'}; in createPelCustom()
244 std::min(srcString.size(), pel::asciiStringSize), 0); in createPelCustom()
246 tiPel->setAsciiString(srcChars); // pel object src is char array in createPelCustom()
265 tiPel->setSeverity(static_cast<uint8_t>(pel::Severity::termination)); in createPelCustom()
266 tiPel->setType(static_cast<uint8_t>(pel::EventType::na)); in createPelCustom()
268 auto actionFlags = pel::ActionFlags::service | pel::ActionFlags::report | in createPelCustom()
269 pel::ActionFlags::call; in createPelCustom()
274 trace::inf("making HB TI PEL hidden"); in createPelCustom()
275 actionFlags = actionFlags | pel::ActionFlags::hidden; in createPelCustom()
280 // The raw PEL that we used as the basis for this custom PEL contains some in createPelCustom()
281 // user data sections that do not need to be in this PEL. However we do in createPelCustom()
292 // Update the raw PEL with the new custom PEL data in createPelCustom()
295 // create PEL from raw data in createPelCustom()
302 * Basic (non TI) events will generate a standard message-registry based PEL
304 * TI events will create two PEL's. One PEL will be informational and will
305 * contain trace information relevent to attention handler. The second PEL
311 * @param i_additional - Additional PEL data
312 * @param i_ffdc - FFDC PEL data
326 // count user data sections so we can fixup custom PEL in event()
358 // Create PEL with additional data and FFDC data. The newly created in event()
359 // PEL's platform log-id will be returned. in event()
363 // If this is a TI event we will create an additional PEL that is in event()
367 // get file descriptor and size of information PEL in event()
370 // if PEL found, read into buffer in event()
376 // read information PEL into buffer in event()
386 // create PEL from buffer in event()
414 if (static_cast<uint8_t>(pel::SubsystemID::hypervisor) != subsystem) in event()
465 if (static_cast<uint8_t>(pel::SubsystemID::hypervisor) == subsystem) in eventTerminate()