1 #pragma once 2 3 #include <cstddef> // for size_t 4 5 namespace attn 6 { 7 namespace pel 8 { 9 10 enum class SectionID 11 { 12 privateHeader = 0x5048, // 'PH' 13 userHeader = 0x5548, // 'UH' 14 primarySRC = 0x5053, // 'PS' 15 extendedHeader = 0x4548, // 'EH' 16 }; 17 18 enum class ComponentID 19 { 20 attentionHandler = 0xd100 21 }; 22 23 enum class CreatorID 24 { 25 hostboot = 'B', 26 hypervisor = 'H', 27 openbmc = 'O' 28 }; 29 30 enum class SubsystemID 31 { 32 hypervisor = 0x82, 33 hostboot = 0x8a, 34 openbmc = 0x8d 35 }; 36 37 enum class Severity 38 { 39 information = 0x00, 40 termination = 0x51 41 }; 42 43 enum class EventType 44 { 45 na = 0x00, 46 trace = 0x02 47 }; 48 49 enum class ActionFlags 50 { 51 service = 0x8000, 52 hidden = 0x4000, 53 report = 0x2000, 54 call = 0x0800 55 }; 56 57 inline ActionFlags operator|(ActionFlags a, ActionFlags b) 58 { 59 return static_cast<ActionFlags>(static_cast<int>(a) | static_cast<int>(b)); 60 } 61 62 enum class EventScope 63 { 64 platform = 0x03 65 }; 66 67 constexpr size_t numSrcWords = 8; // number of SRC hex words 68 const size_t asciiStringSize = 32; // size of SRC ascii string 69 const size_t mtmsSize = 20; // size of an mtms field 70 71 } // namespace pel 72 } // namespace attn 73