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 report = 0x2000, 53 call = 0x0800 54 }; 55 56 inline ActionFlags operator|(ActionFlags a, ActionFlags b) 57 { 58 return static_cast<ActionFlags>(static_cast<int>(a) | static_cast<int>(b)); 59 } 60 61 enum class EventScope 62 { 63 platform = 0x03 64 }; 65 66 constexpr size_t numSrcWords = 8; // number of SRC hex words 67 const size_t asciiStringSize = 32; // size of SRC ascii string 68 const size_t mtmsSize = 20; // size of an mtms field 69 70 } // namespace pel 71 } // namespace attn 72