summaryrefslogtreecommitdiffstats
path: root/src/usr/initservice
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/initservice')
-rw-r--r--src/usr/initservice/baseinitsvc/initservice.C27
-rw-r--r--src/usr/initservice/baseinitsvc/initservice.H8
2 files changed, 25 insertions, 10 deletions
diff --git a/src/usr/initservice/baseinitsvc/initservice.C b/src/usr/initservice/baseinitsvc/initservice.C
index 0d34a5abb..ece13d59a 100644
--- a/src/usr/initservice/baseinitsvc/initservice.C
+++ b/src/usr/initservice/baseinitsvc/initservice.C
@@ -5,7 +5,7 @@
/* */
/* IBM CONFIDENTIAL */
/* */
-/* COPYRIGHT International Business Machines Corp. 2011,2013 */
+/* COPYRIGHT International Business Machines Corp. 2011,2014 */
/* */
/* p1 */
/* */
@@ -632,7 +632,8 @@ void doShutdown(uint64_t i_status,
bool i_inBackground,
uint64_t i_payload_base,
uint64_t i_payload_entry,
- uint64_t i_payload_data)
+ uint64_t i_payload_data,
+ uint64_t i_masterHBInstance)
{
class ShutdownExecute
{
@@ -640,11 +641,13 @@ void doShutdown(uint64_t i_status,
ShutdownExecute(uint64_t i_status,
uint64_t i_payload_base,
uint64_t i_payload_entry,
- uint64_t i_payload_data)
+ uint64_t i_payload_data,
+ uint64_t i_masterHBInstance)
: status(i_status),
payload_base(i_payload_base),
payload_entry(i_payload_entry),
- payload_data(i_payload_data)
+ payload_data(i_payload_data),
+ masterHBInstance(i_masterHBInstance)
{ }
void execute()
@@ -652,7 +655,8 @@ void doShutdown(uint64_t i_status,
Singleton<InitService>::instance().doShutdown(status,
payload_base,
payload_entry,
- payload_data);
+ payload_data,
+ masterHBInstance);
}
void startThread()
{
@@ -664,6 +668,7 @@ void doShutdown(uint64_t i_status,
uint64_t payload_base;
uint64_t payload_entry;
uint64_t payload_data;
+ uint64_t masterHBInstance;
static void* run(void* _self)
{
@@ -679,7 +684,8 @@ void doShutdown(uint64_t i_status,
};
ShutdownExecute* s = new ShutdownExecute(i_status, i_payload_base,
- i_payload_entry, i_payload_data);
+ i_payload_entry, i_payload_data,
+ i_masterHBInstance);
if (i_inBackground)
{
@@ -695,7 +701,8 @@ void doShutdown(uint64_t i_status,
void InitService::doShutdown(uint64_t i_status,
uint64_t i_payload_base,
uint64_t i_payload_entry,
- uint64_t i_payload_data)
+ uint64_t i_payload_data,
+ uint64_t i_masterHBInstance)
{
int l_rc = 0;
errlHndl_t l_err = NULL;
@@ -757,7 +764,11 @@ void InitService::doShutdown(uint64_t i_status,
l_rb_iter++;
}
- shutdown(i_status, i_payload_base, i_payload_entry, i_payload_data);
+ shutdown(i_status,
+ i_payload_base,
+ i_payload_entry,
+ i_payload_data,
+ i_masterHBInstance);
}
bool InitService::registerShutdownEvent(msg_q_t i_msgQ,
diff --git a/src/usr/initservice/baseinitsvc/initservice.H b/src/usr/initservice/baseinitsvc/initservice.H
index 26e620b95..cf4536a86 100644
--- a/src/usr/initservice/baseinitsvc/initservice.H
+++ b/src/usr/initservice/baseinitsvc/initservice.H
@@ -5,7 +5,7 @@
/* */
/* IBM CONFIDENTIAL */
/* */
-/* COPYRIGHT International Business Machines Corp. 2011,2013 */
+/* COPYRIGHT International Business Machines Corp. 2011,2014 */
/* */
/* p1 */
/* */
@@ -209,6 +209,9 @@ public:
* payload entry-point.
* @param[in] i_payload_entry - HRMOR adjusted address of any payload data
* placed in r3
+ * @param[in] i_masterHBInstance - master hostboot instance number (node)
+ * Needed when starting payload on a
+ * multi-node system.
*
* @return Nothing
* @note This calls registered services to notify them of shutdown and it
@@ -217,7 +220,8 @@ public:
void doShutdown ( uint64_t i_status,
uint64_t i_payload_base = 0,
uint64_t i_payload_entry = 0,
- uint64_t i_payload_data = 0);
+ uint64_t i_payload_data = 0,
+ uint64_t i_masterHBInstance = 0xffffffffffffffffull);
protected:
OpenPOWER on IntegriCloud