summaryrefslogtreecommitdiffstats
path: root/src/sys/vfs/vfs_main.C
diff options
context:
space:
mode:
Diffstat (limited to 'src/sys/vfs/vfs_main.C')
-rw-r--r--src/sys/vfs/vfs_main.C22
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);
OpenPOWER on IntegriCloud