summaryrefslogtreecommitdiffstats
path: root/src/usr/cxxtest
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/cxxtest
parent36123c3c9911bc6feefc27e17b4285f1079b569f (diff)
downloadblackbird-hostboot-dd7a32e1a27ecac1c8decaa958cbca7ef139c6bc.tar.gz
blackbird-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/cxxtest')
-rw-r--r--src/usr/cxxtest/cxxtestexec.C29
-rwxr-xr-xsrc/usr/cxxtest/cxxtestgen.pl2
2 files changed, 17 insertions, 14 deletions
diff --git a/src/usr/cxxtest/cxxtestexec.C b/src/usr/cxxtest/cxxtestexec.C
index d78b99205..664d0ec0f 100644
--- a/src/usr/cxxtest/cxxtestexec.C
+++ b/src/usr/cxxtest/cxxtestexec.C
@@ -40,30 +40,35 @@ namespace CxxTest
} // namespace
-using namespace INITSERVICE;
+// prototype
+void cxxinit( errlHndl_t &io_taskRetErrl );
+
trace_desc_t *g_trac_cxxtest = NULL;
TRAC_INIT(&g_trac_cxxtest, CXXTEST_COMP_NAME, 1024 );
/**
- * @brief _start() for CxxTest
+ * _start entry point for this task.
+ */
+TASK_ENTRY_MACRO( cxxinit );
+
+
+/**
+ * @brief init() for CxxTest
* Iterate through all modules in the VFS named "libtest*" and create
* children tasks to execute them.
*
- * * @parms[in,out] - pointer to TaskArgs struct
+ * * @parms[in,out] - pointer to any args
*
*/
-extern "C"
-void _start(void *io_pArgs)
+
+void cxxinit( errlHndl_t &io_taskRetErrl )
{
errlHndl_t l_errl = NULL;
std::vector<const char *> module_list;
std::vector<tid_t> tasks;
tid_t tidrc = 0;
- INITSERVICE::TaskArgs *pTaskArgs =
- static_cast<INITSERVICE::TaskArgs *>( io_pArgs );
-
// output a blank line so that it's easier to find the beginning of
// CxxTest
@@ -142,10 +147,8 @@ void _start(void *io_pArgs)
TRACFCOMP( g_trac_cxxtest, " trace calls: %d",
CxxTest::g_TraceCalls );
- // dump out an informational errorlog
- assert(l_errl == NULL);
+ // @todo dump out an informational errorlog??
- // wait here on the barrier, then end the task.
- pTaskArgs->waitChildSync();
- task_end();
+ // should always return NULL
+ task_end2( l_errl );
}
diff --git a/src/usr/cxxtest/cxxtestgen.pl b/src/usr/cxxtest/cxxtestgen.pl
index 2ae66a7ba..48b89c0c6 100755
--- a/src/usr/cxxtest/cxxtestgen.pl
+++ b/src/usr/cxxtest/cxxtestgen.pl
@@ -744,7 +744,7 @@ sub write_start() {
print "\n";
print "\t__sync_add_and_fetch(&CxxTest::g_ModulesCompleted, 1);\n";
print "\n";
- print "\ttask_end();\n";
+ print "\ttask_end2( NULL );\n";
print "}\n";
}
OpenPOWER on IntegriCloud