diff options
author | Brian Horton <brianh@linux.ibm.com> | 2013-04-25 16:53:55 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2013-05-08 11:34:22 -0500 |
commit | 3541d56fbffa428a51ae0eb7bc963e45ce48d836 (patch) | |
tree | 6371aeea73b89987bf9ff2aceb9e2a57fd64160f /src/include | |
parent | 750329e0758039e2692b3c26c28a4debb8feea1c (diff) | |
download | talos-hostboot-3541d56fbffa428a51ae0eb7bc963e45ce48d836.tar.gz talos-hostboot-3541d56fbffa428a51ae0eb7bc963e45ce48d836.zip |
add platform specific callout functions for FSP integration.
Make the HWAS function processCallout() be common instead of hostboot
specific, and create new platform specific functions for the processing
of procedure and hardware callouts. Intention is that hostboot and fsp
will use these to read the hwas hostboot-created callout_ud_t structure
out of an errlog.
Change-Id: Ie5679b0a833f802744bfd8f5285901b73f022d52
RTC: 49965
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/4275
Tested-by: Jenkins Server
Reviewed-by: Van H. Lee <vanlee@us.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/usr/errl/errlentry.H | 11 | ||||
-rw-r--r-- | src/include/usr/hwas/common/hwasCallout.H | 42 |
2 files changed, 46 insertions, 7 deletions
diff --git a/src/include/usr/errl/errlentry.H b/src/include/usr/errl/errlentry.H index cb7fac99a..4e9d842a4 100644 --- a/src/include/usr/errl/errlentry.H +++ b/src/include/usr/errl/errlentry.H @@ -55,6 +55,14 @@ #include <errl/errlud.H> #include <hbotcompid.H> #include <targeting/common/target.H> + + +namespace ERRORLOG +{ +class ErrlEntry; +} +typedef ERRORLOG::ErrlEntry* errlHndl_t; + #include <hwas/common/hwasCallout.H> namespace ERRORLOG @@ -660,7 +668,4 @@ inline void ErrlEntry::setSrcType(const srcType_t i_srcType) } // End namespace -typedef ERRORLOG::ErrlEntry* errlHndl_t; - - #endif //ERRLENTRY_H diff --git a/src/include/usr/hwas/common/hwasCallout.H b/src/include/usr/hwas/common/hwasCallout.H index 5c279c4be..24f8c2adc 100644 --- a/src/include/usr/hwas/common/hwasCallout.H +++ b/src/include/usr/hwas/common/hwasCallout.H @@ -128,18 +128,17 @@ enum callOutPriority * @brief processCallout process the userdetail for a callout, calling * the deconfigure and/or GARD funcationality as appropriate * - * @param[in] i_errlPlid Error log PLID to store in GARD Record. + * @param[in] i_errl Error log handle * @param[in] i_pData Pointer to the callout bundle * @param[in] i_Size size of the data in the callout bundle * - * @return true if shutdown required, false otherwise */ -bool processCallout(const uint32_t i_errlPlid, +void processCallout(errlHndl_t i_errl, uint8_t *i_pData, uint64_t i_Size); // typedef for function pointer that the errlog class will use. -typedef bool (*processCalloutFn)(const uint32_t, uint8_t *, uint64_t); +typedef bool (*processCalloutFn)(errlHndl_t, uint8_t *, uint64_t); #endif // not PARSER // @@ -165,6 +164,41 @@ typedef struct callout_ud }; } callout_ud_t; +/** + * @brief platform specific code to handle a procedure callout that has been + * found in an errlog + * + * @param[in] i_errl errlHndl for this errlog. + * @param[in] i_procedure Enum indicating which procedure to add to the + * error log + * @param[in] i_priority Enum indicating the priority of the callout + * + * @return errlHndl_t valid errlHndl_t handle if there was an error, + * NULL if no errors; + */ +errlHndl_t platHandleProcedureCallout(errlHndl_t i_errl, + epubProcedureID i_procedure, + callOutPriority i_priority); + +/** + * @brief platform specific code to handle a hardware callout that has been + * found in an errlog + * + * @param[in] i_pTarget target + * @param[in] i_priority Enum indicating the priority of the callout + * @param[in] i_deconfigState Enum indicating whether to deconfig or not + * @param[in] i_errl errlHnld for this errlog + * @param[in] i_gardErrType Enum indicating the type of failure + * + * @return errlHndl_t valid errlHndl_t handle if there was an error, + * NULL if no errors; + */ +errlHndl_t platHandleHWCallout( + TARGETING::Target *i_pTarget, + callOutPriority i_priority, + DeconfigEnum i_deconfigState, + errlHndl_t i_errl, + GARD_ErrorType i_gardErrorType); }; // end namespace |