1<h2>task_get_special_port</h2> 2<hr> 3<p> 4<strong>Function</strong> - Return a send write to the indicated special port. 5<h3>SYNOPSIS</h3> 6<pre> 7<strong>kern_return_t task_get_special_port</strong> 8 <strong>(task_t</strong> <var>task</var>, 9 <strong>int</strong> <var>which_port</var>, 10 <strong>task</strong> <var>special_port</var><strong>);</strong> 11 12 13<strong>Macro Forms:</strong> 14 15 16<strong>kern_return_t task_get_bootstrap_port</strong> 17 <strong>(task_t</strong> <var>task</var>, 18 <strong>task</strong> <var>special_port</var><strong>);</strong> 19 20 21<strong>kern_return_t task_get_kernel_port</strong> 22 <strong>(task_t</strong> <var>task</var>, 23 <strong>task</strong> <var>special_port</var><strong>);</strong> 24 25 26<strong>kern_return_t task_get_host_name_port</strong> 27 <strong>(task_t</strong> <var>task</var>, 28 <strong>task</strong> <var>special_port</var><strong>);</strong> 29</pre> 30<h3>PARAMETERS</h3> 31<dl> 32<p> 33<dt> <var>task</var> 34<dd> 35[in task send right] 36The port for the task for which to return the port's 37send right. 38<p> 39<dt> <var>which_port</var> 40<dd> 41[in scalar] 42The special port for which the send right is requested. Valid 43values are: 44<dl> 45<p> 46<dt> <strong>TASK_KERNEL_PORT</strong> 47<dd> 48[task-self send right] The port used to control this task. Used 49to send messages that affect the task. This is the port returned 50by <strong>mach_task_self</strong>. 51<p> 52<dt> <strong>TASK_BOOTSTRAP_PORT</strong> 53<dd> 54[bootstrap send right] The task's bootstrap port. Used to send 55messages requesting return of other system service ports. 56<p> 57<dt> <strong>TASK_HOST_NAME_PORT</strong> 58<dd> 59[host-self send right] The port used to request information of 60the containing host. This is the port returned by 61<strong>mach_host_self</strong>. 62<p> 63<dt> <strong>TASK_WIRED_LEDGER_PORT</strong> 64<dd> 65[ledger send right] The port naming the source from which 66this task draws its wired kernel memory. 67<p> 68<dt> <strong>TASK_PAGED_LEDGER_PORT</strong> 69<dd> 70[ledger send right] The port naming the source from which 71this task draws its default memory managed memory. 72</dl> 73<p> 74<dt> <var>special_port</var> 75<dd> 76[out task-special send right] 77The returned value for the port. 78</dl> 79<h3>DESCRIPTION</h3> 80<p> 81The <strong>task_get_special_port</strong> function returns a send right 82for a special port belonging to <var>task</var>. 83<p> 84If one task has a send right for the kernel port of another task, it can use 85the port to perform kernel operations for the other task. Send rights for a 86kernel port normally are held only by the task to which the port belongs, 87or by the task's parent task. Using the <strong>mach_msg</strong> function, however, 88any task can pass a send right for its kernel port to another task. 89<h3>NOTES</h3> 90<p> 91The current implementation does not support the <strong>TASK_HOST_NAME_PORT</strong> 92features associated with this interface. 93<h3>RETURN VALUES</h3> 94<p> 95Only generic errors apply. 96<h3>RELATED INFORMATION</h3> 97<p> 98Functions: 99<a href="mach_task_self.html"><strong>mach_task_self</strong></a>, 100<a href="task_create.html"><strong>task_create</strong></a>, 101<a href="task_set_special_port.html"><strong>task_set_special_port</strong></a>, 102<a href="thread_get_special_port.html"><strong>thread_get_special_port</strong></a>, 103<a href="thread_set_special_port.html"><strong>thread_set_special_port</strong></a>, 104<a href="mach_host_self.html"><strong>mach_host_self</strong></a>. 105