summaryrefslogtreecommitdiffstats
path: root/src/include/usr/errl/errlprvt.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/errlprvt.H
parentf2794eed87ca9c35140c601dfcbb5baf299d834b (diff)
downloadblackbird-hostboot-723239d5a14fe82713a2aa57fef3130534b15a41.tar.gz
blackbird-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/errlprvt.H')
-rw-r--r--src/include/usr/errl/errlprvt.H145
1 files changed, 145 insertions, 0 deletions
diff --git a/src/include/usr/errl/errlprvt.H b/src/include/usr/errl/errlprvt.H
new file mode 100644
index 000000000..d8086b50b
--- /dev/null
+++ b/src/include/usr/errl/errlprvt.H
@@ -0,0 +1,145 @@
+// IBM_PROLOG_BEGIN_TAG
+// This is an automatically generated prolog.
+//
+// $Source: src/include/usr/errl/errlprvt.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 ERRLPRVT_H
+#define ERRLPRVT_H
+
+/**
+ * @file errlprvt.H
+ *
+ * @brief A class for the private header 'PH' section of an error log.
+ * Manages the data destined for the PEL PH section.
+ *
+*/
+
+#include <errl/errlsctnhdr.H>
+
+
+namespace ERRORLOG
+{
+
+class ErrlPrvt
+{
+
+ // 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
+ {
+ SLEN = 40, // section length w/o sizeof(ErrlSctnHdr)
+ SST = 0, // section type
+ VER = 1 // section version
+ // CSS_VER = 8 // TODO unused, relates to iv_cssver[]
+ };
+
+ /**
+ * @brief Constructor will initialize as much data in the private
+ * header as it can, including asking the ErrlManager for the error
+ * log ID. Also sets the time of creation.
+ *
+ * @param[in] i_CreatorCompId Creator of this error log.
+ */
+ ErrlPrvt( compId_t i_CreatorCompId );
+
+
+ /**
+ * @brief Destructor
+ */
+ ~ErrlPrvt();
+
+
+ /**
+ * @brief Disable copy constructor and assignment operator.
+ */
+ ErrlPrvt(const ErrlPrvt& i_right);
+ ErrlPrvt& operator=(const ErrlPrvt& i_right);
+
+
+ /**
+ * @brief Calculates the flattened size of this.
+ *
+ * @return Count of bytes needed to flatten this.
+ */
+ uint64_t flatSize() const;
+
+
+ /**
+ * @brief Flatten this to the output buffer given.
+ *
+ * @param[out] o_pBuffer Pointer to memory buffer where data will go.
+ * @param[in] i_cbBuffer Count of bytes in memory buffer.
+ * Call flatSize() first to know how big the
+ * buffer should be before calling flatten()
+ *
+ * @return Count of bytes flattened, or zero on error. The likely error
+ * is that the buffer is of insufficient size.
+ */
+ uint64_t flatten( void * o_pBuffer, const uint64_t i_cbBuffer );
+
+
+
+ // Instance data
+
+ ErrlSctnHdr iv_header; // section header for any/all sections
+
+ uint64_t iv_created; // TODO Expects BCD_time8_t, but using timebase
+ uint64_t iv_committed; // TODO Expects BCD_time8_t, but using timebase
+ uint8_t iv_cid; // Creator 'B' (enum errlCreator)
+ uint8_t iv_sctns; // count of sections
+ uint32_t iv_plid; // error log id
+
+ // uint8_t iv_cssver[CSS_VER]; // TODO unused now, do we need this?
+ // uint32_t iv_eid; // TODO Error ID now same as PLID
+
+
+};
+
+
+
+/*****************************************************************************/
+// Destructor
+
+inline ErrlPrvt::~ErrlPrvt()
+{
+}
+
+
+/*****************************************************************************/
+// Export data size
+
+inline uint64_t ErrlPrvt::flatSize() const
+{
+ return ( iv_header.flatSize() + ErrlPrvt::SLEN );
+}
+
+
+
+
+} // namespace
+
+
+#endif //ERRLPRVT_H
OpenPOWER on IntegriCloud