summaryrefslogtreecommitdiffstats
path: root/src/include/usr/errl/errlud.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/errlud.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/errlud.H')
-rw-r--r--src/include/usr/errl/errlud.H185
1 files changed, 185 insertions, 0 deletions
diff --git a/src/include/usr/errl/errlud.H b/src/include/usr/errl/errlud.H
new file mode 100644
index 000000000..30817e112
--- /dev/null
+++ b/src/include/usr/errl/errlud.H
@@ -0,0 +1,185 @@
+// IBM_PROLOG_BEGIN_TAG
+// This is an automatically generated prolog.
+//
+// $Source: src/include/usr/errl/errlud.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 ERRLUD_H
+#define ERRLUD_H
+/**
+ * @file errlud.H
+ *
+ * @brief Derive the ErrlUD (user defined) error log section from the
+ * more general ErrlSctn class.
+*/
+
+
+#include <errl/errlsctn.H>
+#include <errl/errlsctnhdr.H>
+
+
+
+namespace ERRORLOG
+{
+
+
+
+class ErrlUD : public ErrlSctn
+{
+
+
+ // 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:
+
+
+ /**
+ * @brief Constructor
+ *
+ * Create a user data section with the given input data.
+ *
+ * @param i_data Pointer to data
+ * @param i_size Length of data
+ * @param i_cid Component ID of the section
+ * @param i_ver Section version
+ * @param i_sst Section type
+ *
+ */
+ ErrlUD(
+ const void *i_data,
+ uint64_t i_size,
+ compId_t i_cid,
+ uint8_t i_ver,
+ uint8_t i_sst );
+
+
+
+ /**
+ * @brief Destructor
+ *
+ * Releases allocated resources
+ *
+ */
+ virtual ~ErrlUD();
+
+
+ /**
+ * @brief Disable copy constructor and assignment operator.
+ */
+ ErrlUD(const ErrlUD& i_right);
+ ErrlUD& operator=(const ErrlUD& i_right);
+
+
+ /**
+ * @brief Data export size. Amount of flat storage (in bytes) required to
+ * store the object.
+ *
+ * @return size in bytes
+ */
+ uint64_t flatSize();
+
+
+ /**
+ * @brief Data Export facility.
+ * Exports the object into the architecturally
+ * defined format for a user data 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 Appends data to the section.
+ * Grows the section by the given amount
+ *
+ * @param[in] i_data Source data
+ * @param[in] i_size Additional size
+ *
+ * @return Size of new data or else zero on error.
+ *
+ */
+ uint64_t addData( const void *i_data, uint64_t i_size );
+
+
+
+
+ /**
+ * @brief Data size of the section
+ *
+ * The distinction is made between data size
+ * and object flat size. This method returns
+ * the size of the data only
+ *
+ * @return Length
+ *
+ */
+ uint64_t dataSize( void ) const;
+
+
+
+ /**
+ * @brief Data access
+ *
+ * Direct Access to the data of the object
+ * ( dangerous - use with caution )
+ *
+ * @return Data pointer
+ *
+ */
+ void * data( void ) const;
+
+
+
+
+ uint8_t * iv_pData; // Data Pointer
+ uint64_t iv_Size; // Data Length
+
+};
+
+
+
+/*****************************************************************************/
+// Get data size
+/*****************************************************************************/
+inline uint64_t ErrlUD::dataSize( void ) const
+{
+ return iv_Size;
+}
+
+
+/*****************************************************************************/
+// Data access pointer
+/*****************************************************************************/
+inline void * ErrlUD::data( void ) const
+{
+ return iv_pData;
+}
+
+} // namespace
+#endif /* ERRLUD_H */
OpenPOWER on IntegriCloud