1 #pragma once
2 
3 #include <cstdint>
4 
5 namespace openpower
6 {
7 namespace pels
8 {
9 
10 namespace detail
11 {
12 
13 /**
14  * @brief Adds the 1 byte log creator prefix to the log ID
15  *
16  * @param[in] id - the ID to add it to
17  *
18  * @return - the full log ID
19  */
20 uint32_t addLogIDPrefix(uint32_t id);
21 
22 /**
23  * @brief Generates a PEL ID based on the current time.
24  *
25  * Used for error scenarios where the normal method doesn't
26  * work in order to get a unique ID still.
27  *
28  * @return A unique log ID.
29  */
30 uint32_t getTimeBasedLogID();
31 
32 } // namespace detail
33 
34 /**
35  * @brief Generates a unique PEL log entry ID every time
36  *        it is called.
37  *
38  * This ID is used at offset 0x2C in the Private Header
39  * section of a PEL.  For single BMC systems, it must
40  * start with 0x50.
41  *
42  * @return uint32_t - The log ID
43  */
44 uint32_t generatePELID();
45 
46 } // namespace pels
47 } // namespace openpower
48