summaryrefslogtreecommitdiffstats
path: root/src/usr/initservice/extinitsvc
diff options
context:
space:
mode:
authordgilbert <dgilbert@us.ibm.com>2011-07-28 16:42:28 -0500
committerDouglas R. Gilbert <dgilbert@us.ibm.com>2011-08-17 14:22:39 -0500
commitc56648379cde6ea3bcfac07923bb560734c6e16f (patch)
tree81ee3d5abaa130d0f1e36e038c3a344e11f55ce0 /src/usr/initservice/extinitsvc
parent20b03fdaeb7414fdf9d43634976ca1ab5fbac7f1 (diff)
downloadtalos-hostboot-c56648379cde6ea3bcfac07923bb560734c6e16f.tar.gz
talos-hostboot-c56648379cde6ea3bcfac07923bb560734c6e16f.zip
Virtual File System module load and unload
Change-Id: Iaa6a256a8a15ac48bfba5bc1cab292c5ac246166 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/253 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/initservice/extinitsvc')
-rw-r--r--src/usr/initservice/extinitsvc/extinitsvc.C21
-rw-r--r--src/usr/initservice/extinitsvc/extinitsvctasks.H7
2 files changed, 23 insertions, 5 deletions
diff --git a/src/usr/initservice/extinitsvc/extinitsvc.C b/src/usr/initservice/extinitsvc/extinitsvc.C
index db1baef50..1b5612645 100644
--- a/src/usr/initservice/extinitsvc/extinitsvc.C
+++ b/src/usr/initservice/extinitsvc/extinitsvc.C
@@ -24,7 +24,7 @@
*/
#include <kernel/console.H>
-#include <sys/vfs.h>
+#include <vfs/vfs.H>
#include <sys/task.h>
#include <sys/sync.h>
#include <sys/misc.h>
@@ -132,7 +132,15 @@ void ExtInitSvc::init( void *i_ptr )
ptask->taskname,
strlen(ptask->taskname) );
break;
- case START_TASK:
+ case INIT_TASK:
+ TRACDBIN( g_trac_initsvc,
+ "task_type==INIT_TASK : ",
+ ptask->taskname,
+ strlen(ptask->taskname) );
+ errl = VFS::module_load( ptask->taskname );
+ break;
+
+ case START_TASK: // call _init(), _start(), stay resident
TRACDBIN( g_trac_initsvc,
"task_type=START_TASK : ",
ptask->taskname,
@@ -140,6 +148,7 @@ void ExtInitSvc::init( void *i_ptr )
errl = InitService::getTheInstance().startTask( ptask,
&args );
break;
+
case START_FN:
TRACDCOMP( g_trac_initsvc,
"task_type==START_FN : %p",
@@ -154,6 +163,14 @@ void ExtInitSvc::init( void *i_ptr )
// $$TODO
break;
+ case UNINIT_TASK:
+ TRACDBIN( g_trac_initsvc,
+ "task_type=UNINIT_TASK : ",
+ ptask->taskname,
+ strlen(ptask->taskname) );
+ errl = VFS::module_unload( ptask->taskname );
+ break;
+
default:
TRACDCOMP( g_trac_initsvc,
"Invalid task_type: %d",
diff --git a/src/usr/initservice/extinitsvc/extinitsvctasks.H b/src/usr/initservice/extinitsvc/extinitsvctasks.H
index 9c31bc81d..d65abb914 100644
--- a/src/usr/initservice/extinitsvc/extinitsvctasks.H
+++ b/src/usr/initservice/extinitsvc/extinitsvctasks.H
@@ -30,6 +30,7 @@
namespace INITSERVICE
{
+ // TODO all these will eventuall be in BASE_IMAGE instead of BASE_IMAGE
const uint64_t MAX_EXT_TASKS = 25;
@@ -45,7 +46,7 @@ const TaskInfo g_exttaskinfolist[] = {
NULL, // no pointer to fn
{
START_TASK, // task type
- EXT_IMAGE, // Extended Module
+ BASE_IMAGE, // Extended Module
START_TARGETING_ERRL_ID, // module id
}
},
@@ -58,7 +59,7 @@ const TaskInfo g_exttaskinfolist[] = {
NULL, // no pointer to fn
{
START_TASK, // task type
- EXT_IMAGE, // Extended Module
+ BASE_IMAGE, // Extended Module
EXECUTE_ISTEPS_ERRL_ID, // module id
}
},
@@ -89,7 +90,7 @@ const TaskInfo CXXTEST_TASK = {
NULL, // no pointer to fn
{
START_TASK, // task type
- EXT_IMAGE, // Extended Module
+ BASE_IMAGE, // Extended Module
START_CXXTEST_ERRL_ID, // module id
}
};
OpenPOWER on IntegriCloud