1<h2>norma_task_teleport</h2> 2<hr> 3<p> 4<strong>Function</strong> - "Clone" a task on a specified node. 5<h3>SYNOPSIS</h3> 6<pre> 7<strong>kern_return_t norma_task_teleport</strong> 8 <strong>(task_t</strong> <var>parent_task</var>, 9 <strong>boolean_t</strong> <var>inherit_memory</var>, 10 <strong>int</strong> <var>child_node</var>, 11 <strong>task_t</strong> <var>child_task</var><strong>);</strong> 12</pre> 13<h3>PARAMETERS</h3> 14<dl> 15<p> 16<dt> <var>parent_task</var> 17<dd> 18[in task send right] The port for the task from which to draw the child 19task's port rights, resource limits, and address space. 20<p> 21<dt> <var>inherit_memory</var> 22<dd> 23[in scalar] Address space inheritance indicator. If true, the child task in- 24herits the address space of the parent task. If false, the kernel assigns 25the child task an empty address space. 26<p> 27<dt> <var>child_node</var> 28<dd> 29[in scalar] The node index of the node on which to create the child. 30<p> 31<dt> <var>child_task</var> 32<dd> 33[out task send right] The kernel-assigned port name for the new task. 34</dl> 35<h3>DESCRIPTION</h3> 36<p> 37The norma_task_clone function "clones" a new task from parent_task on 38the specified node and returns the name of the new task in 39child_task. The child task acquires shared parts of the parent's 40address space (see vm_inherit) regardless of the inheritance set for 41the parent's memory regions, although the inheritance for the 42child's regions will be set to that of the parent's regions. The child 43task initially contains no threads. The parent_task is then 44terminated. 45By way of comparison, tasks created by the standard task_create 46primitive are created on the same node as the parent. 47Other than being created on a different node, the new task has the 48same properties as if created by task_create. 49<h3>NOTES</h3> 50<p> 51This call differs from norma_task_clone in that the parent task is 52terminated as part of the teleport call. 53This call differs from norma_task_create in that the inheritance set 54for the parent's memory regions is ignored; the child always shares 55memory with the parent. 56This call is intended to support process migration, where the 57inheritance semantics of norma_task_create would break migrated 58programs that depended upon sharing relationships remaining after 59migration. 60This call is not a true task migration call, in that it does not 61migrate the port space, threads, and other non-address-space 62attributes of the task. 63<h3>RETURN VALUES</h3> 64<p> 65Only generic errors apply. 66<h3>RELATED INFORMATION</h3> 67<p> 68Functions: 69<a href="norma_task_clone.html"><strong>norma_task_clone</strong></a>, 70<a href="task_create.html"><strong>task_create</strong></a>, 71<a href="norma_task_create.html"><strong>norma_task_create</strong></a>, 72