195 |
|
|
196 |
/* Insert right into tasks IPC object. */ |
/* Insert right into tasks IPC object. */ |
197 |
ipc_object_lock (task->ipc_object); |
ipc_object_lock (task->ipc_object); |
198 |
kr = ipc_object_copyout (task->ipc_object, task->send_task_port, |
ipc_object_copyin_from_kernel (task->send_task_port, |
199 |
|
RTMK_MSG_TYPE_MAKE_SEND); |
200 |
|
kr = ipc_object_copyout (task->ipc_object, |
201 |
|
/* ipc_port_copy_send (task->send_task_port), */ |
202 |
|
task->send_task_port, |
203 |
RTMK_MSG_TYPE_MAKE_SEND, & task_name); |
RTMK_MSG_TYPE_MAKE_SEND, & task_name); |
204 |
ipc_object_unlock (task->ipc_object); |
ipc_object_unlock (task->ipc_object); |
205 |
assert (kr == KERN_SUCCESS); |
assert (kr == KERN_SUCCESS); |
281 |
/* Return send rights to threads that belong to TASK. Send rights |
/* Return send rights to threads that belong to TASK. Send rights |
282 |
are returned in THREADSP. Number of ports returned in *COUNTP. */ |
are returned in THREADSP. Number of ports returned in *COUNTP. */ |
283 |
kern_return_t |
kern_return_t |
284 |
task_threads (struct task *task, rtmk_port_t **threadsp, int *countp) |
task_threads (struct task *task, struct ipc_port ***threadsp, int *countp) |
285 |
{ |
{ |
286 |
struct ipc_port **ports; |
struct ipc_port **ports; |
287 |
struct thread *thread; |
struct thread *thread; |
308 |
task_unlock (task); |
task_unlock (task); |
309 |
SPLON (spl); |
SPLON (spl); |
310 |
|
|
311 |
*threadsp = (rtmk_port_t *) ports; |
*threadsp = ports; |
312 |
*countp = count; |
*countp = count; |
313 |
return KERN_SUCCESS; |
return KERN_SUCCESS; |
314 |
} |
} |