diff options
author | Monte Copeland <copelanm@us.ibm.com> | 2011-10-24 09:30:49 -0500 |
---|---|---|
committer | Monte K. Copeland <copelanm@us.ibm.com> | 2011-10-31 11:07:10 -0500 |
commit | 723239d5a14fe82713a2aa57fef3130534b15a41 (patch) | |
tree | b6d19b1d1d66ec9ea4acd19c0dfdb47bcf86babd /src/include/usr/errl/errlud.H | |
parent | f2794eed87ca9c35140c601dfcbb5baf299d834b (diff) | |
download | talos-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.H | 185 |
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 */ |