summaryrefslogtreecommitdiffstats
path: root/src/usr/targeting
diff options
context:
space:
mode:
authorMark Wenning <wenning@us.ibm.com>2012-03-20 11:37:13 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2012-04-04 13:23:18 -0500
commitdd7a32e1a27ecac1c8decaa958cbca7ef139c6bc (patch)
tree65706898117498bf0c280e772c3e850386b0c378 /src/usr/targeting
parent36123c3c9911bc6feefc27e17b4285f1079b569f (diff)
downloadtalos-hostboot-dd7a32e1a27ecac1c8decaa958cbca7ef139c6bc.tar.gz
talos-hostboot-dd7a32e1a27ecac1c8decaa958cbca7ef139c6bc.zip
Refactor InitService
Finish join() conversion, remove TaskArgs Cleanup Initservice Cleanup ExtInitService Cleanup IStepDisp Add SPLess Halt & Shutdown command. Implements code for Tasks 35508, 3855, 36929 and 38870 . RTC: 38196 Change-Id: I554655412b529ef6cd143fea361a39bd584d18b5 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/794 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/targeting')
-rw-r--r--src/usr/targeting/attrrp.C20
-rw-r--r--src/usr/targeting/attrrp.H6
-rw-r--r--src/usr/targeting/targetservice.C17
3 files changed, 15 insertions, 28 deletions
diff --git a/src/usr/targeting/attrrp.C b/src/usr/targeting/attrrp.C
index 5bdf42c41..324911778 100644
--- a/src/usr/targeting/attrrp.C
+++ b/src/usr/targeting/attrrp.C
@@ -54,10 +54,10 @@ namespace TARGETING
uint64_t size;
};
- void AttrRP::init(TaskArgs* i_taskArgs)
+ void AttrRP::init( errlHndl_t &io_taskRetErrl )
{
// Call startup on singleton instance.
- Singleton<AttrRP>::instance().startup(i_taskArgs);
+ Singleton<AttrRP>::instance().startup( io_taskRetErrl );
}
void AttrRP::startMsgServiceTask(void* i_instance)
@@ -78,7 +78,7 @@ namespace TARGETING
assert(false);
}
- void AttrRP::startup(TaskArgs* i_taskArgs)
+ void AttrRP::startup( errlHndl_t &io_taskRetErrl )
{
errlHndl_t l_errl = NULL;
@@ -101,18 +101,10 @@ namespace TARGETING
if (l_errl)
{
l_errl->setSev(ERRORLOG::ERRL_SEV_UNRECOVERABLE);
- if (i_taskArgs)
- {
- i_taskArgs->postErrorLog(l_errl);
- }
- else
- {
- TRACFCOMP(g_trac_targeting,
- ERR_MRK "AttrRP: Critical error in startup and no "
- "TaskArgs given by init-service.");
- errlCommit(l_errl,TARG_COMP_ID);
- }
}
+
+ // return any errlogs to _start()
+ io_taskRetErrl = l_errl;
}
void AttrRP::msgServiceTask() const
diff --git a/src/usr/targeting/attrrp.H b/src/usr/targeting/attrrp.H
index 9c338114f..3fc2f6a02 100644
--- a/src/usr/targeting/attrrp.H
+++ b/src/usr/targeting/attrrp.H
@@ -44,13 +44,13 @@ namespace TARGETING
{
public:
/** @brief Initializes and starts the AttrRP daemon.
- * @param[in] i_taskArgs - Pointer to init service arguments.
+ * @param[in,out] - ref to an errHndl_t
*
* @note If any error occurs during initialization, it will be
* reported back through the TaskArgs structure to the init
* service.
*/
- static void init(INITSERVICE::TaskArgs* i_taskArgs);
+ static void init( errlHndl_t &io_taskRetErrl );
protected:
/** @brief Default constructor.
@@ -75,7 +75,7 @@ namespace TARGETING
* init() is a static function that just calls
* Singleton<AttrRP>::instance().startup(). See init for behavior.
*/
- void startup(INITSERVICE::TaskArgs* i_taskArgs);
+ void startup( errlHndl_t &io_taskRetErrl );
/** @brief Daemon thread processing function.
*
diff --git a/src/usr/targeting/targetservice.C b/src/usr/targeting/targetservice.C
index 27b208a47..63c76012b 100644
--- a/src/usr/targeting/targetservice.C
+++ b/src/usr/targeting/targetservice.C
@@ -78,28 +78,23 @@ namespace TARGETING
extern "C"
void _start(void* io_pArgs)
{
- INITSERVICE::TaskArgs *pTaskArgs =
- static_cast<INITSERVICE::TaskArgs *>(io_pArgs);
+ errlHndl_t io_taskRetErrl = NULL;
#define TARG_FN "_start(...)"
TARG_ENTER();
- AttrRP::init(pTaskArgs);
- if (( pTaskArgs ) && (!pTaskArgs->queryErrorLog()))
+ AttrRP::init( io_taskRetErrl );
+
+ if ( io_taskRetErrl == NULL )
{
TargetService& l_targetService = targetService();
(void)l_targetService.init();
}
- TARG_EXIT();
-
- if ( pTaskArgs )
- {
- pTaskArgs->waitChildSync();
- }
+ task_end2( io_taskRetErrl );
- task_end();
+ TARG_EXIT();
#undef TARG_FN
}
OpenPOWER on IntegriCloud