diff options
author | Mike Jones <mjjones@us.ibm.com> | 2012-03-12 10:12:01 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2012-03-16 09:13:39 -0500 |
commit | 8a1168142bd3f273dbd4edf841c53a3ae394cd5e (patch) | |
tree | 94029d881fa5b89d186073859c7de2fd6dcdfcb8 /src/include/usr/initservice/initsvcudistep.H | |
parent | ff8472f5e338d17194b5a1300b9553dd1ac3a241 (diff) | |
download | talos-hostboot-8a1168142bd3f273dbd4edf841c53a3ae394cd5e.tar.gz talos-hostboot-8a1168142bd3f273dbd4edf841c53a3ae394cd5e.zip |
ERRL: Ensure all Hostboot code uses ErrlUserDetails framework.
RTC: 36920
Change-Id: I82667c8e63e8a99b9cc7eb1dfbbbdbe1c3b2bb2a
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/730
Tested-by: Jenkins Server
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/include/usr/initservice/initsvcudistep.H')
-rw-r--r-- | src/include/usr/initservice/initsvcudistep.H | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/src/include/usr/initservice/initsvcudistep.H b/src/include/usr/initservice/initsvcudistep.H new file mode 100644 index 000000000..9dc8f2106 --- /dev/null +++ b/src/include/usr/initservice/initsvcudistep.H @@ -0,0 +1,139 @@ +// IBM_PROLOG_BEGIN_TAG +// This is an automatically generated prolog. +// +// $Source: src/include/usr/initservice/initsvcudistep.H $ +// +// IBM CONFIDENTIAL +// +// COPYRIGHT International Business Machines Corp. 2012 +// +// 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 INITSVC_UDSTEP_H +#define INITSVC_UDSTEP_H + +/** + * @file initsvcudistep.H + * + * Defines the following classes: + * + * InitSvcUserDetailsIstep: Adds IStep FFDC to an error log as user detail data + * InitSvcUserDetailsParserIstep: Parses IStep FFDC user detail in an error log +*/ + +#include <errl/errluserdetails.H> + +namespace INITSERVICE +{ + +/** + * @struct InitSvcUserDetailsIstepData + * + * Defines the user detail data + */ +struct InitSvcUserDetailsIstepData +{ + uint16_t iv_step; + uint16_t iv_substep; + char iv_pIstepname[0]; +}; + +#ifndef PARSER + +/** + * @class InitSvcUserDetailsIstep + * + * Adds IStep FFDC to an error log as user detail data + */ +class InitSvcUserDetailsIstep : public ERRORLOG::ErrlUserDetails +{ +public: + /** + * @brief Constructor + * + * Captures the supplied IStep FFDC data internally + * + * @param i_pIstepname Istep name + * @param i_step Step number + * @param i_substep Sub-step number + */ + InitSvcUserDetailsIstep(const char * i_pIstepname, + const uint16_t i_step, + const uint16_t i_substep); + + /** + * @brief Destructor + */ + virtual ~InitSvcUserDetailsIstep(); + +private: + // Disabled + InitSvcUserDetailsIstep(const InitSvcUserDetailsIstep &); + InitSvcUserDetailsIstep & operator=(const InitSvcUserDetailsIstep &); +}; + +#else // (if PARSER defined) + +/** + * @class InitSvcUserDetailsParserIstep + * + * Parses Istep user detail in an error log +*/ +class InitSvcUserDetailsParserIstep : public ERRORLOG::ErrlUserDetailsParser +{ +public: + /** + * @brief Constructor + */ + InitSvcUserDetailsParserIstep() {} + + /** + * @brief Destructor + */ + virtual ~InitSvcUserDetailsParserIstep() {} + + /** + * @brief Parses Istep user detail data from an error log + * + * @param i_version Version of the data + * @param i_parse ErrlUsrParser object for outputting information + * @param i_pBuffer Pointer to buffer containing detail data + * @param i_buflen Length of the buffer + */ + virtual void parse(errlver_t i_version, + ErrlUsrParser & i_parser, + void * i_pBuffer, + const uint32_t i_buflen) const + { + InitSvcUserDetailsIstepData * l_pData = + static_cast<InitSvcUserDetailsIstepData *>(i_pBuffer); + + i_parser.PrintString("IStep name", l_pData->iv_pIstepname); + i_parser.PrintNumber("Step", "%d", ntohs(l_pData->iv_step)); + i_parser.PrintNumber("Sub-step", "%d", ntohs(l_pData->iv_substep)); + } + +private: + // Disabled + InitSvcUserDetailsParserIstep(const InitSvcUserDetailsParserIstep &); + InitSvcUserDetailsParserIstep & operator=( + const InitSvcUserDetailsParserIstep &); +}; + +#endif + +} + +#endif + |