diff options
author | Mark Wenning <wenning@us.ibm.com> | 2012-03-20 11:37:13 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2012-04-04 13:23:18 -0500 |
commit | dd7a32e1a27ecac1c8decaa958cbca7ef139c6bc (patch) | |
tree | 65706898117498bf0c280e772c3e850386b0c378 /src/usr/targeting | |
parent | 36123c3c9911bc6feefc27e17b4285f1079b569f (diff) | |
download | talos-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.C | 20 | ||||
-rw-r--r-- | src/usr/targeting/attrrp.H | 6 | ||||
-rw-r--r-- | src/usr/targeting/targetservice.C | 17 |
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 } |