PEL: Move PEL section IDs into a header file
These will eventually need to be known to a piece of code that
unflattens a PEL into the appropriate section class objects based on the
section ID field in the PEL data.
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I90b9d4be49b2e3807a620745fa663f94f7f4e62c
diff --git a/extensions/openpower-pels/pel_types.hpp b/extensions/openpower-pels/pel_types.hpp
new file mode 100644
index 0000000..5b4149f
--- /dev/null
+++ b/extensions/openpower-pels/pel_types.hpp
@@ -0,0 +1,34 @@
+#pragma once
+
+namespace openpower
+{
+namespace pels
+{
+
+/**
+ * @brief PEL section IDs
+ */
+enum class SectionID
+{
+ privateHeader = 0x5048, // 'PH'
+ userHeader = 0x5548, // 'UH'
+ primarySRC = 0x5053, // 'PS'
+ secondarySRC = 0x5353, // 'SS'
+ extendedUserHeader = 0x4548, // 'EH'
+ failingMTMS = 0x4D54, // 'MT'
+ dumpLocation = 0x4448, // 'DH'
+ firmwareError = 0x5357, // 'SW'
+ impactedPart = 0x4C50, // 'LP'
+ logicalResource = 0x4C52, // 'LR'
+ hmcID = 0x484D, // 'HM'
+ epow = 0x4550, // 'EP'
+ ioEvent = 0x4945, // 'IE'
+ mfgInfo = 0x4D49, // 'MI'
+ callhome = 0x4348, // 'CH'
+ userData = 0x5544, // 'UD'
+ envInfo = 0x4549, // 'EI'
+ extUserData = 0x4544 // 'ED'
+};
+
+} // namespace pels
+} // namespace openpower
diff --git a/extensions/openpower-pels/private_header.cpp b/extensions/openpower-pels/private_header.cpp
index d4c3dee..fc62df1 100644
--- a/extensions/openpower-pels/private_header.cpp
+++ b/extensions/openpower-pels/private_header.cpp
@@ -1,5 +1,7 @@
#include "private_header.hpp"
+#include "pel_types.hpp"
+
#include <phosphor-logging/log.hpp>
namespace openpower
@@ -28,7 +30,7 @@
{
bool failed = false;
- if (header().id != privateHeaderSectionID)
+ if (header().id != static_cast<uint16_t>(SectionID::privateHeader))
{
log<level::ERR>("Invalid private header section ID",
entry("ID=0x%X", header().id));
diff --git a/extensions/openpower-pels/private_header.hpp b/extensions/openpower-pels/private_header.hpp
index 4a8b330..66126a0 100644
--- a/extensions/openpower-pels/private_header.hpp
+++ b/extensions/openpower-pels/private_header.hpp
@@ -14,8 +14,7 @@
uint8_t version[8];
};
-static constexpr uint16_t privateHeaderSectionID = 0x5048; // 'PH'
-static constexpr uint16_t privateHeaderVersion = 0x01;
+static constexpr uint8_t privateHeaderVersion = 0x01;
static constexpr uint8_t minSectionCount = 2;
/**
diff --git a/extensions/openpower-pels/user_header.cpp b/extensions/openpower-pels/user_header.cpp
index 917d578..e5e8abb 100644
--- a/extensions/openpower-pels/user_header.cpp
+++ b/extensions/openpower-pels/user_header.cpp
@@ -1,5 +1,7 @@
#include "user_header.hpp"
+#include "pel_types.hpp"
+
#include <phosphor-logging/log.hpp>
namespace openpower
@@ -41,7 +43,7 @@
void UserHeader::validate()
{
bool failed = false;
- if (header().id != userHeaderSectionID)
+ if (header().id != static_cast<uint16_t>(SectionID::userHeader))
{
log<level::ERR>("Invalid user header section ID",
entry("ID=0x%X", header().id));
diff --git a/extensions/openpower-pels/user_header.hpp b/extensions/openpower-pels/user_header.hpp
index ae7a922..5e64ff4 100644
--- a/extensions/openpower-pels/user_header.hpp
+++ b/extensions/openpower-pels/user_header.hpp
@@ -8,8 +8,7 @@
namespace pels
{
-static constexpr uint16_t userHeaderSectionID = 0x5548; // 'UH'
-static constexpr uint16_t userHeaderVersion = 0x01;
+static constexpr uint8_t userHeaderVersion = 0x01;
/**
* @class UserHeader