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