summaryrefslogtreecommitdiffstats
path: root/src/usr/errl/errlsctn.H
diff options
context:
space:
mode:
authorThi Tran <thi@us.ibm.com>2011-05-12 12:51:31 -0500
committerAndrew J. Geissler <andrewg@us.ibm.com>2011-05-24 10:08:00 -0500
commited023e4eb60989a43b1e1e672dd77d84d3a543b3 (patch)
tree9e109d40d46fdc7f67e62817e851bee678e64b5e /src/usr/errl/errlsctn.H
parent50e70ce9facb233be4158569c11dc8b64d4297b2 (diff)
downloadtalos-hostboot-ed023e4eb60989a43b1e1e672dd77d84d3a543b3.tar.gz
talos-hostboot-ed023e4eb60989a43b1e1e672dd77d84d3a543b3.zip
Initial Error Log code delivery
Merge src/usr/makefile conflict Update after first review Update after 2nd review. Add error creation example Update example with review comments Re-arrange parameters' order of error log constructor Update with additional comments from Patrick Change-Id: I18001f6232492a3acfd8819b34ef670a785ac483 Reviewed-on: http://gfwr801.rchland.ibm.com:8080/gerrit/72 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com> Reviewed-by: Andrew J. Geissler <andrewg@us.ibm.com>
Diffstat (limited to 'src/usr/errl/errlsctn.H')
-rw-r--r--src/usr/errl/errlsctn.H127
1 files changed, 127 insertions, 0 deletions
diff --git a/src/usr/errl/errlsctn.H b/src/usr/errl/errlsctn.H
new file mode 100644
index 000000000..800665d48
--- /dev/null
+++ b/src/usr/errl/errlsctn.H
@@ -0,0 +1,127 @@
+#ifndef ERRLSCTN_H
+#define ERRLSCTN_H
+/**
+ * @file errlsctn.H
+ *
+ * @brief Base class that abstracts a section in an error log.
+ * A section may be used to store unique data for the
+ * error such as FFDC, Software error information, etc...
+ *
+ */
+
+/*****************************************************************************/
+// I n c l u d e s
+/*****************************************************************************/
+#include <stdint.h>
+#include <stdlib.h>
+#include <errl/errltypes.H>
+#include "errlsctnhdr.H"
+
+namespace ERRORLOG
+{
+
+/**
+ * @brief Base class that abstracts a section in an error log object.
+ */
+class ErrlSctn
+{
+
+public:
+
+ /**
+ * @brief Constructor
+ * Initializes the base object with section information
+ *
+ * @param[in] i_compId Component Id of the caller
+ * @param[in] i_sctnVer A user supplied identifier which
+ * classifies the data in the section
+ * @param[in] i_subSect A user supplied sub section identifier
+ * which classifies the data. This in
+ * conjunction with the version can be used
+ * to decode the data.
+ * @return void
+ *
+ */
+ ErrlSctn(const compId_t i_compId,
+ const uint8_t i_sctnVer,
+ const uint8_t i_subSect);
+
+ /**
+ * @brief Default destructor
+ *
+ * @return void
+ */
+ virtual ~ErrlSctn();
+
+ //@todo - Need to add serialization interfaces for ErrlSctn object.
+ // Serialization method (boost serialization?) for HostBoot
+ // is currently not yet determined.
+ // Note: stream is currently not supported
+
+ /**
+ * @brief Get section's version
+ *
+ * @return Section version (uint8_t)
+ *
+ */
+ uint8_t sctnVer() const;
+
+ /**
+ * @brief Get section's subsection type
+ *
+ * @return Subsection type (uint8_t)
+ *
+ */
+ uint8_t subSect() const;
+
+ /**
+ * @brief Get section's component Id
+ *
+ * @return Component Id of the section creator
+ *
+ */
+ compId_t compId() const;
+
+private:
+
+ /**
+ * @brief Disabled copy constructor and assignment operator
+ */
+ ErrlSctn(const ErrlSctn& i_right);
+ ErrlSctn& operator=(const ErrlSctn& i_right);
+
+ // Section header
+ ErrlSctnHdr iv_header;
+
+};
+
+//-----------------------------------------------------------------------
+// In-line functions
+//-----------------------------------------------------------------------
+
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+inline uint8_t ErrlSctn::sctnVer() const
+{
+ return iv_header.iv_sctnVer;
+}
+
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+inline uint8_t ErrlSctn::subSect() const
+{
+ return iv_header.iv_subSect;
+}
+
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+inline compId_t ErrlSctn::compId() const
+{
+ return iv_header.iv_compId;
+}
+
+
+} // End namespace
+
+#endif //ERRLSCTN_H
+
OpenPOWER on IntegriCloud