diff options
author | Thi Tran <thi@us.ibm.com> | 2011-05-12 12:51:31 -0500 |
---|---|---|
committer | Andrew J. Geissler <andrewg@us.ibm.com> | 2011-05-24 10:08:00 -0500 |
commit | ed023e4eb60989a43b1e1e672dd77d84d3a543b3 (patch) | |
tree | 9e109d40d46fdc7f67e62817e851bee678e64b5e /src/usr/errl/errlsctn.H | |
parent | 50e70ce9facb233be4158569c11dc8b64d4297b2 (diff) | |
download | talos-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.H | 127 |
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 + |