diff options
author | dgilbert <dgilbert@us.ibm.com> | 2011-07-28 16:42:28 -0500 |
---|---|---|
committer | Douglas R. Gilbert <dgilbert@us.ibm.com> | 2011-08-17 14:22:39 -0500 |
commit | c56648379cde6ea3bcfac07923bb560734c6e16f (patch) | |
tree | 81ee3d5abaa130d0f1e36e038c3a344e11f55ce0 /src/usr/initservice/extinitsvc | |
parent | 20b03fdaeb7414fdf9d43634976ca1ab5fbac7f1 (diff) | |
download | talos-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.C | 21 | ||||
-rw-r--r-- | src/usr/initservice/extinitsvc/extinitsvctasks.H | 7 |
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 } }; |