summaryrefslogtreecommitdiffstats
path: root/src/usr/vfs/vfsrp.C
diff options
context:
space:
mode:
authorPatrick Williams <iawillia@us.ibm.com>2011-10-03 16:12:51 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2011-10-24 13:33:20 -0500
commit4962a22309cd7e3586aa57817689b18d67ca71c7 (patch)
tree2bfd610d6ed048f7d4a35717211eca06b15d1f69 /src/usr/vfs/vfsrp.C
parent21185b30cd99a00f01e15edba28402cdc00de1d1 (diff)
downloadtalos-hostboot-4962a22309cd7e3586aa57817689b18d67ca71c7.tar.gz
talos-hostboot-4962a22309cd7e3586aa57817689b18d67ca71c7.zip
Support task_wait / task_wait_tid syscalls:
- Add task_end2 syscall to allow pthread_exit-like retval. - Add/maintain task states. - Create task parent/child tracking tree. - Add task_detach function. - Implement wait syscalls. Make task_exec caller the parent of spawned task: Previously the task_exec call caused a message to the VFS task, which called task_create and returned the tid in response to the message. This causes the parent of the spawned task to appear to be the VFS task. Modify task_exec / VFS handling to instead return the entry point address on the message and have task_exec call task_create directly itself. Change-Id: I6b6796f45875de37b1ab01e7596639b073820b95 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/443 Tested-by: Jenkins Server Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: Andrew J. Geissler <andrewg@us.ibm.com>
Diffstat (limited to 'src/usr/vfs/vfsrp.C')
-rw-r--r--src/usr/vfs/vfsrp.C8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/usr/vfs/vfsrp.C b/src/usr/vfs/vfsrp.C
index 266cdecba..9c178e92a 100644
--- a/src/usr/vfs/vfsrp.C
+++ b/src/usr/vfs/vfsrp.C
@@ -314,8 +314,8 @@ void VfsRp::_load_unload(msg_t * i_msg)
{
// Module does not exist in extended image.
// If it exists then it is in the base image and it's already
- // initialized, however, we still should not be here, so put out a
- // trace msg;
+ // initialized, however, we still should not be here, so put out a
+ // trace msg;
// If it does not exist anywhere then also create an error log
TRACFCOMP(g_trac_vfs, ERR_MRK"load Module not found: %s",
(const char *) i_msg->data[0]);
@@ -362,11 +362,9 @@ void VfsRp::_exec(msg_t * i_msg)
VFS_EXTENDED_MODULE_TABLE_OFFSET),
(const char*) msg1->data[0]);
- tid_t child = vfs_exec(module, (void*) msg1->data[1]);
-
msg_q_t vfsRmsgQ = (msg_q_t) i_msg->data[1];
- msg1->data[0] = child;
+ msg1->data[0] = (uint64_t) vfs_start_entrypoint(module);
msg_respond(vfsRmsgQ,msg1);
msg_free(i_msg);
OpenPOWER on IntegriCloud