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