summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
authorBrian Horton <brianh@linux.ibm.com>2013-04-25 16:53:55 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2013-05-08 11:34:22 -0500
commit3541d56fbffa428a51ae0eb7bc963e45ce48d836 (patch)
tree6371aeea73b89987bf9ff2aceb9e2a57fd64160f /src/include
parent750329e0758039e2692b3c26c28a4debb8feea1c (diff)
downloadtalos-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.H11
-rw-r--r--src/include/usr/hwas/common/hwasCallout.H42
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
OpenPOWER on IntegriCloud