summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/include/usr/scom/errlud_pib.H66
-rw-r--r--src/include/usr/scom/scomreasoncodes.H5
-rw-r--r--src/usr/scom/errlud_pib.C63
-rw-r--r--src/usr/scom/plugins/SCOM_COMP_ID_Parse.C28
-rw-r--r--src/usr/scom/plugins/errludP_scom.H95
-rw-r--r--src/usr/scom/plugins/scomUdParserFactory.H50
-rw-r--r--src/usr/scom/scom.mk1
7 files changed, 308 insertions, 0 deletions
diff --git a/src/include/usr/scom/errlud_pib.H b/src/include/usr/scom/errlud_pib.H
new file mode 100644
index 000000000..1f18fe76f
--- /dev/null
+++ b/src/include/usr/scom/errlud_pib.H
@@ -0,0 +1,66 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/include/usr/scom/errlud_pib.H $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2016 */
+/* [+] International Business Machines Corp. */
+/* */
+/* */
+/* Licensed under the Apache License, Version 2.0 (the "License"); */
+/* you may not use this file except in compliance with the License. */
+/* You may obtain a copy of the License at */
+/* */
+/* http://www.apache.org/licenses/LICENSE-2.0 */
+/* */
+/* Unless required by applicable law or agreed to in writing, software */
+/* distributed under the License is distributed on an "AS IS" BASIS, */
+/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */
+/* implied. See the License for the specific language governing */
+/* permissions and limitations under the License. */
+/* */
+/* IBM_PROLOG_END_TAG */
+#ifndef ERRL_UD_PIB_H
+#define ERRL_UD_PIB_H
+
+/**
+ * @file errlud_fsi.H
+ *
+ * Defines the classes that logs and parses various HDAT structures
+ */
+
+#include <errl/errluserdetails.H>
+
+namespace SCOM
+{
+
+/**
+ * @class UdPibInfo
+ *
+ * Adds PIB information to an error log as user detail data
+ */
+class UdPibInfo : public ERRORLOG::ErrlUserDetails
+{
+ public:
+ /**
+ * @brief Constructor
+ *
+ * @param i_pibErr Error returned from operation
+ */
+ UdPibInfo( uint8_t i_pibErr );
+
+ /**
+ * @brief Destructor
+ */
+ virtual ~UdPibInfo();
+
+ UdPibInfo(UdPibInfo &) = delete;
+ UdPibInfo & operator=(UdPibInfo &) = delete;
+};
+
+
+}
+
+#endif \ No newline at end of file
diff --git a/src/include/usr/scom/scomreasoncodes.H b/src/include/usr/scom/scomreasoncodes.H
index 6bd96d52d..289f34f57 100644
--- a/src/include/usr/scom/scomreasoncodes.H
+++ b/src/include/usr/scom/scomreasoncodes.H
@@ -55,6 +55,11 @@ namespace SCOM
SCOM_TARGET_ADDR_MISMATCH = SCOM_COMP_ID | 0x0C,
SCOM_ISCHIPUNITSCOM_INVALID = SCOM_COMP_ID | 0x0D,
};
+
+ enum UserDetailsTypes
+ {
+ SCOM_UDT_PIB = 0x1
+ };
};
#endif
diff --git a/src/usr/scom/errlud_pib.C b/src/usr/scom/errlud_pib.C
new file mode 100644
index 000000000..000b59a21
--- /dev/null
+++ b/src/usr/scom/errlud_pib.C
@@ -0,0 +1,63 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/scom/errlud_pib.C $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2016 */
+/* [+] International Business Machines Corp. */
+/* */
+/* */
+/* Licensed under the Apache License, Version 2.0 (the "License"); */
+/* you may not use this file except in compliance with the License. */
+/* You may obtain a copy of the License at */
+/* */
+/* http://www.apache.org/licenses/LICENSE-2.0 */
+/* */
+/* Unless required by applicable law or agreed to in writing, software */
+/* distributed under the License is distributed on an "AS IS" BASIS, */
+/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */
+/* implied. See the License for the specific language governing */
+/* permissions and limitations under the License. */
+/* */
+/* IBM_PROLOG_END_TAG */
+/**
+ * @file errlud_pib.C
+ *
+ * @brief Implementation of classes to log SCOM FFDC
+ */
+#include <scom/errlud_pib.H>
+#include <string.h>
+#include <scom/scomreasoncodes.H>
+#include <errl/errlentry.H>
+
+namespace SCOM
+{
+
+//------------------------------------------------------------------------------
+// PibInfo
+//------------------------------------------------------------------------------
+UdPibInfo::UdPibInfo( uint8_t i_pibErr )
+{
+ // Set up Ud instance variables
+ iv_CompId = SCOM_COMP_ID;
+ iv_Version = 1;
+ iv_SubSection = SCOM_UDT_PIB;
+
+
+ //***** Memory Layout *****
+ // 1 byte : PIB
+ auto l_pBuf = reallocUsrBuf(sizeof(uint8_t));
+ memcpy(l_pBuf, &i_pibErr, sizeof(i_pibErr));
+
+}
+
+//------------------------------------------------------------------------------
+UdPibInfo::~UdPibInfo()
+{
+
+}
+
+
+} \ No newline at end of file
diff --git a/src/usr/scom/plugins/SCOM_COMP_ID_Parse.C b/src/usr/scom/plugins/SCOM_COMP_ID_Parse.C
new file mode 100644
index 000000000..fbf938633
--- /dev/null
+++ b/src/usr/scom/plugins/SCOM_COMP_ID_Parse.C
@@ -0,0 +1,28 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/scom/plugins/SCOM_COMP_ID_Parse.C $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2016 */
+/* [+] International Business Machines Corp. */
+/* */
+/* */
+/* Licensed under the Apache License, Version 2.0 (the "License"); */
+/* you may not use this file except in compliance with the License. */
+/* You may obtain a copy of the License at */
+/* */
+/* http://www.apache.org/licenses/LICENSE-2.0 */
+/* */
+/* Unless required by applicable law or agreed to in writing, software */
+/* distributed under the License is distributed on an "AS IS" BASIS, */
+/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */
+/* implied. See the License for the specific language governing */
+/* permissions and limitations under the License. */
+/* */
+/* IBM_PROLOG_END_TAG */
+#include "errludparser.H"
+#include "scomUdParserFactory.H"
+
+ERRL_MAKE_UD_PARSER(SCOM::UserDetailsParserFactory, hbfw::SCOM_COMP_ID)
diff --git a/src/usr/scom/plugins/errludP_scom.H b/src/usr/scom/plugins/errludP_scom.H
new file mode 100644
index 000000000..6a819a4ec
--- /dev/null
+++ b/src/usr/scom/plugins/errludP_scom.H
@@ -0,0 +1,95 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/scom/plugins/errludP_scom.H $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2016 */
+/* [+] International Business Machines Corp. */
+/* */
+/* */
+/* Licensed under the Apache License, Version 2.0 (the "License"); */
+/* you may not use this file except in compliance with the License. */
+/* You may obtain a copy of the License at */
+/* */
+/* http://www.apache.org/licenses/LICENSE-2.0 */
+/* */
+/* Unless required by applicable law or agreed to in writing, software */
+/* distributed under the License is distributed on an "AS IS" BASIS, */
+/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */
+/* implied. See the License for the specific language governing */
+/* permissions and limitations under the License. */
+/* */
+/* IBM_PROLOG_END_TAG */
+#ifndef ERRL_UDP_SCOM_H
+#define ERRL_UDP_SCOM_H
+
+/**
+* @file errludP_scom.H
+*
+* Defines the ErrlUserDetailsParser classes that parse SCOM FFDC
+*/
+
+#include "errluserdetails.H"
+#include <string.h>
+
+/**
+* Some macros to manipulate data types cleanly
+*/
+#define TO_UINT8(ptr) (*(reinterpret_cast<uint8_t*>(ptr)))
+
+
+namespace SCOM
+{
+
+ /**
+ * @class UdParserPib
+ *
+ * Parses UdPibInfo
+ */
+ class UdParserPib : public ERRORLOG::ErrlUserDetailsParser
+ {
+ public:
+ /**
+ * @brief Constructor
+ */
+ UdParserPib() {}
+
+ /**
+ * @brief Destructor
+ */
+ virtual ~UdParserPib() {}
+
+ /**
+ * @brief Parses string user detail data from an error log
+ *
+ * @param i_version Version of the data
+ * @param i_parse ErrlUsrParser object for outputting information
+ * @param i_pBuffer Pointer to buffer containing detail data
+ * @param i_buflen Length of the buffer
+ */
+ virtual void parse(errlver_t i_version,
+ ErrlUsrParser & i_parser,
+ void * i_pBuffer,
+ const uint32_t i_buflen) const
+ {
+ char* l_databuf = static_cast<char*>(i_pBuffer);
+ i_parser.PrintHeading("SCOM PIB ERR");
+
+ //***** Memory Layout *****
+ // 1 bytes : Pib Error
+
+ i_parser.PrintNumber("Pib Err","%.2lX",
+ TO_UINT8(l_databuf));
+
+ }
+
+ // Disabled
+ UdParserPib(const UdParserPib&) = delete;
+ UdParserPib & operator=(const UdParserPib&) = delete;
+ };
+
+}
+
+#endif \ No newline at end of file
diff --git a/src/usr/scom/plugins/scomUdParserFactory.H b/src/usr/scom/plugins/scomUdParserFactory.H
new file mode 100644
index 000000000..d8ff3ceef
--- /dev/null
+++ b/src/usr/scom/plugins/scomUdParserFactory.H
@@ -0,0 +1,50 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/scom/plugins/scomUdParserFactory.H $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2016 */
+/* [+] International Business Machines Corp. */
+/* */
+/* */
+/* Licensed under the Apache License, Version 2.0 (the "License"); */
+/* you may not use this file except in compliance with the License. */
+/* You may obtain a copy of the License at */
+/* */
+/* http://www.apache.org/licenses/LICENSE-2.0 */
+/* */
+/* Unless required by applicable law or agreed to in writing, software */
+/* distributed under the License is distributed on an "AS IS" BASIS, */
+/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */
+/* implied. See the License for the specific language governing */
+/* permissions and limitations under the License. */
+/* */
+/* IBM_PROLOG_END_TAG */
+#if !defined(_SCOMUDPARSERFACTORY_H)
+#define _SCOMUDPARSERFACTORY_H
+
+#include "errludparserfactory.H"
+#include "errludP_scom.H"
+
+namespace SCOM
+{
+ class UserDetailsParserFactory
+ : public ERRORLOG::ErrlUserDetailsParserFactory
+ {
+ public:
+ UserDetailsParserFactory()
+ {
+ registerParser<SCOM::UdParserPib>
+ (SCOM_UDT_PIB);
+ }
+
+ //Disabled
+ UserDetailsParserFactory(const UserDetailsParserFactory &) = delete;
+ UserDetailsParserFactory & operator=
+ (const UserDetailsParserFactory &) = delete;
+ };
+};
+
+#endif
diff --git a/src/usr/scom/scom.mk b/src/usr/scom/scom.mk
index ec0f57a19..9012f325e 100644
--- a/src/usr/scom/scom.mk
+++ b/src/usr/scom/scom.mk
@@ -30,6 +30,7 @@ EXTRAINCDIR += ${ROOTPATH}/src/import/hwpf/fapi2/include/
# Local Objects
OBJS += scom.o
OBJS += scomtrans.o
+OBJS += errlud_pib.o
# Objects From Import Directory
OBJS += p9_scominfo.o
OpenPOWER on IntegriCloud