#pragma once

#include <cstddef> // for size_t

namespace attn
{
namespace pel
{

enum class SectionID
{
    privateHeader = 0x5048, // 'PH'
    userHeader    = 0x5548, // 'UH'
    primarySRC    = 0x5053, // 'PS'
};

enum class ComponentID
{
    attentionHandler = 0xd100
};

enum class CreatorID
{
    hostboot   = 'B',
    hypervisor = 'H',
    openbmc    = 'O'
};

enum class SubsystemID
{
    hypervisor = 0x82,
    hostboot   = 0x8a,
    openbmc    = 0x8d
};

enum class Severity
{
    information = 0x00,
    termination = 0x51
};

enum class EventType
{
    na    = 0x00,
    trace = 0x02
};

enum class ActionFlags
{
    service = 0x8000,
    report  = 0x2000,
    call    = 0x0800
};

inline ActionFlags operator|(ActionFlags a, ActionFlags b)
{
    return static_cast<ActionFlags>(static_cast<int>(a) | static_cast<int>(b));
}

enum class EventScope
{
    platform = 0x03
};

constexpr size_t numSrcWords = 8;  // number of SRC hex words
const size_t asciiStringSize = 32; // size of SRC ascii string

} // namespace pel
} // namespace attn
