summaryrefslogtreecommitdiffstats
path: root/src/include/usr/errl/errluh.H
diff options
context:
space:
mode:
authorMonte Copeland <copelanm@us.ibm.com>2011-10-24 09:30:49 -0500
committerMonte K. Copeland <copelanm@us.ibm.com>2011-10-31 11:07:10 -0500
commit723239d5a14fe82713a2aa57fef3130534b15a41 (patch)
treeb6d19b1d1d66ec9ea4acd19c0dfdb47bcf86babd /src/include/usr/errl/errluh.H
parentf2794eed87ca9c35140c601dfcbb5baf299d834b (diff)
downloadtalos-hostboot-723239d5a14fe82713a2aa57fef3130534b15a41.tar.gz
talos-hostboot-723239d5a14fe82713a2aa57fef3130534b15a41.zip
Error log changes for Sprint 6
Change-Id: I44ad678cfae8cd84e5370391dc7e20d74f59c9ca Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/449 Tested-by: Jenkins Server Reviewed-by: Mark W. Wenning <wenning@us.ibm.com> Reviewed-by: Monte K. Copeland <copelanm@us.ibm.com>
Diffstat (limited to 'src/include/usr/errl/errluh.H')
-rw-r--r--src/include/usr/errl/errluh.H165
1 files changed, 165 insertions, 0 deletions
diff --git a/src/include/usr/errl/errluh.H b/src/include/usr/errl/errluh.H
new file mode 100644
index 000000000..5768d85d1
--- /dev/null
+++ b/src/include/usr/errl/errluh.H
@@ -0,0 +1,165 @@
+// IBM_PROLOG_BEGIN_TAG
+// This is an automatically generated prolog.
+//
+// $Source: src/include/usr/errl/errluh.H $
+//
+// IBM CONFIDENTIAL
+//
+// COPYRIGHT International Business Machines Corp. 2011
+//
+// p1
+//
+// Object Code Only (OCO) source materials
+// Licensed Internal Code Source Materials
+// IBM HostBoot Licensed Internal Code
+//
+// The source code for this program is not published or other-
+// wise divested of its trade secrets, irrespective of what has
+// been deposited with the U.S. Copyright Office.
+//
+// Origin: 30
+//
+// IBM_PROLOG_END
+#ifndef ERRLUH_H
+#define ERRLUH_H
+
+/**
+ * @file errluh.H
+ *
+ * @brief A class for the user header 'UH' section of an error log.
+ * This classes manages those ErrlEntry data items that are destined
+ * to be saved in the user header PEL section.
+*/
+
+#include <errl/errlentry.H>
+#include <errl/errlsctnhdr.H>
+
+
+namespace ERRORLOG
+{
+
+
+class ErrlUH
+{
+
+ // ErrlEntry may access private elements of this class. Data items that
+ // you would expect to be part of ErrlEntry are actually instance data
+ // in this class.
+ friend class ErrlEntry;
+
+
+
+private:
+
+ enum constants
+ {
+ // for generating UH section of PEL
+ SLEN = 16, // 16 does not include the 8 bytes of ErrlSctnHdr
+ VER = 1, // section version
+ SST = 0 // section type
+ };
+
+ /** @brief User header constructor. */
+ ErrlUH( errlSeverity_t i_sev );
+
+ /** @brief User header destructor. */
+ ~ErrlUH();
+
+
+ /**
+ * @brief Disable copy constructor and assignment operator.
+ */
+ ErrlUH(const ErrlUH& i_right);
+ ErrlUH& operator=(const ErrlUH& i_right);
+
+
+ /**
+ * @brief Data export size. Amount of flat storage (in bytes) required to
+ * store the object.
+ *
+ * @return size in bytes
+ */
+ uint64_t flatSize() const;
+
+
+ /**
+ * @brief Data Export facility. Flatten the object into PEL for the
+ * 'UH' user header section.
+ *
+ * @param[in,out] io_pBuffer Pointer to buffer where flat data will go.
+ * @param[in] i_cbBuffer Count of bytes in target buffer
+ *
+ */
+ uint64_t flatten( void * io_pBuffer, const uint64_t i_cbBuffer );
+
+
+ /** @brief Set the component ID into the user header.
+ * Only should be called from ErrlEntry instance.
+ * The component ID in the user header identifies
+ * the component that committed the error log.
+ *
+ * @param[in] i_compId component ID
+ */
+ void setComponentId( compId_t i_compId );
+
+
+
+
+ // Instance variables
+ // SctnHdr for 'UH' section
+ ErrlSctnHdr iv_header;
+
+
+ errlSeverity_t iv_severity;
+ errlEventType_t iv_etype;
+
+
+ // TODO may need getters/setters for these fields. Presently,
+ // they are defaulted at object creation time, and not set
+ // or gotten by anyone.
+ epubSubSystem_t iv_ssid;
+ errlDomain_t iv_domain;
+ errlVector_t iv_vector;
+ uint16_t iv_actions;
+ errlScope_t iv_scope;
+
+};
+
+
+
+
+
+/*****************************************************************************/
+// Destructor
+
+inline ErrlUH::~ErrlUH()
+{
+}
+
+
+/*****************************************************************************/
+// Export data size
+
+inline uint64_t ErrlUH::flatSize() const
+{
+ return ( iv_header.flatSize() + SLEN );
+}
+
+
+
+
+/*****************************************************************************/
+// For user headers, the comp ID represents the committing component.
+
+inline void ErrlUH::setComponentId( compId_t i_compId )
+{
+ iv_header.iv_compId = i_compId;
+}
+
+
+
+
+} // namespace
+
+
+#endif //ERRLUH_H
OpenPOWER on IntegriCloud