summaryrefslogtreecommitdiffstats
path: root/src/include/usr
diff options
context:
space:
mode:
authorRichard J. Knight <rjknight@us.ibm.com>2013-09-19 12:50:27 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2013-10-08 21:33:53 -0500
commitfc5719ef7796c39c5e6c8abad6391dd311c9126c (patch)
tree67311300b63fc5086f7c5c69efb272ebe3c82360 /src/include/usr
parente588a94e039ad1a02fc366f371471d65337369fa (diff)
downloadtalos-hostboot-fc5719ef7796c39c5e6c8abad6391dd311c9126c.tar.gz
talos-hostboot-fc5719ef7796c39c5e6c8abad6391dd311c9126c.zip
Implement termination from fatal error log.
Change-Id: Ie83f0876887ee0465cd4d430fa4a335f6aa396ec RTC:35268 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/6403 Tested-by: Jenkins Server Reviewed-by: Brian H. Horton <brianh@linux.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/include/usr')
-rw-r--r--src/include/usr/errl/errlentry.H12
-rw-r--r--src/include/usr/errl/hberrltypes.H3
-rw-r--r--src/include/usr/initservice/initserviceif.H14
3 files changed, 26 insertions, 3 deletions
diff --git a/src/include/usr/errl/errlentry.H b/src/include/usr/errl/errlentry.H
index d90f358a6..7bc971ed0 100644
--- a/src/include/usr/errl/errlentry.H
+++ b/src/include/usr/errl/errlentry.H
@@ -312,6 +312,14 @@ public:
void setTermState(const errlTermState_t i_termState);
/**
+ * @brief Helper function to determine if log is a terminating error
+ *
+ *
+ * @return returns true if error will result in system termination.
+ */
+ bool isTerminateLog() const;
+
+ /**
* @brief Add data to the iv_Src user data words.
*
* @param[in] i_data - information to add to the user data word 1.
@@ -615,8 +623,8 @@ private:
std::vector<uint64_t> iv_btAddrs; // list of addresses for the backtrace
ErrlUserDetailsBackTrace * iv_pBackTrace; // Pointer to back trace
- // TODO need to interpret term state and terminate accordingly.
- // TODO termstate is presently not being flattend into PEL
+ // termstate will not be flattend into PEL, its only used by
+ // hostboot.
errlTermState_t iv_termState;
};
diff --git a/src/include/usr/errl/hberrltypes.H b/src/include/usr/errl/hberrltypes.H
index 3c0611366..b8e9c220a 100644
--- a/src/include/usr/errl/hberrltypes.H
+++ b/src/include/usr/errl/hberrltypes.H
@@ -287,11 +287,12 @@ enum epubSubSystem_t
/**
* @brief Terminating flag definitions
* Needs to fit into 1 word (32-bits) for flattening purposes.
- * TODO Termination state and termination action.
*/
enum errlTermState_t
{
TERM_STATE_NO_FLAGS = 0x00000000,
+ TERM_STATE_MNFG = 0x10000000,
+ TERM_STATE_SOFT = 0x20000000,
TERM_STATE_UNKNOWN = 0xFFFFFFFF,
};
diff --git a/src/include/usr/initservice/initserviceif.H b/src/include/usr/initservice/initserviceif.H
index e32e57640..9bfd7b0b0 100644
--- a/src/include/usr/initservice/initserviceif.H
+++ b/src/include/usr/initservice/initserviceif.H
@@ -99,6 +99,20 @@ void doShutdown ( uint64_t i_status,
uint64_t i_payload_entry = 0,
uint64_t i_payload_data = 0) NO_RETURN;
+
+/**
+ * @brief Creates a separate thread and calls doShutdown
+ *
+ * @param[in] i_status - Shutdown status to be passed along on shutdown
+ *
+ * @return Nothing
+ *
+ * @Note: added for errlmanager to call so errlmanager continues
+ * to run in case there are errors in the shutdown path
+ *
+ */
+void Shutdown( uint64_t i_status );
+
/**
* @brief This function will return whether or not we are SPless
*
OpenPOWER on IntegriCloud