diff options
author | Patrick Williams <iawillia@us.ibm.com> | 2010-09-09 15:21:12 -0500 |
---|---|---|
committer | Patrick Williams <iawillia@us.ibm.com> | 2010-09-09 15:21:12 -0500 |
commit | 51621c156c03feff0d5e4246ecd2e18473fd347d (patch) | |
tree | 4e64c4bb13b54a081e3b2d0d2db886d4f3379def /src/sys/vfs | |
parent | 80b83026362d07b10ed1ae16afb162f7699757cb (diff) | |
download | talos-hostboot-51621c156c03feff0d5e4246ecd2e18473fd347d.tar.gz talos-hostboot-51621c156c03feff0d5e4246ecd2e18473fd347d.zip |
Add task_exec system call.
Diffstat (limited to 'src/sys/vfs')
-rw-r--r-- | src/sys/vfs/vfs_main.C | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/sys/vfs/vfs_main.C b/src/sys/vfs/vfs_main.C index 481df1101..0b41bb631 100644 --- a/src/sys/vfs/vfs_main.C +++ b/src/sys/vfs/vfs_main.C @@ -2,6 +2,7 @@ #include <sys/msg.h> #include <sys/vfs.h> +#include <sys/task.h> #include <util/locked/list.H> #include <kernel/console.H> // TODO : Remove this. @@ -92,6 +93,27 @@ void vfs_main(void* unused) msg_respond(vfsMsgQ, msg); } break; + + case VFS_MSG_EXEC: + { + printk("VFS: Got exec request of %s\n", + (const char*)msg->data[0]); + VfsSystemModule* module = &VFS_MODULES[0]; + tid_t child = -1; + while ('\0' != module->module[0]) + { + if (0 == strcmp((const char*) msg->data[0], + module->module)) + { + child = task_create(module->start, + (void*) msg->data[1]); + break; + } + } + msg->data[0] = child; + msg_respond(vfsMsgQ, msg); + } + break; default: msg_free(msg); |