]> git.saurik.com Git - apple/xnu.git/blob - osfmk/man/processor_assign.html
xnu-517.tar.gz
[apple/xnu.git] / osfmk / man / processor_assign.html
1 <h2>processor_assign</h2> <hr> <p> <strong>Function</strong> - Assign a processor to a processor set. <h3>SYNOPSIS</h3> <pre> <strong>kern_return_t processor_assign</strong> <strong>(processor_t</strong> <var>processor</var>, <strong>processor_set_t</strong> <var>new_set</var>, <strong>boolean_t</strong> <var>wait</var><strong>);</strong> </pre> <h3>PARAMETERS</h3> <dl> <dt> <var>processor</var> <dd> [in processor send right] The processor to be assigned. <dt> <var>new_set</var> <dd> [in processor-set-control send right] The control port for the processor set into which the processor is to be assigned. <dt> <var>wait</var> <dd> [in scalar] True if the call should wait for the completion of the assignment. </dl> <h3>DESCRIPTION</h3> <p> The <strong>processor_assign</strong> function assigns <var>processor</var> to the set <var>new_set</var>. After the assignment is completed, the processor only executes threads that are assigned to that processor set. Any previous assignment of the processor is nullified. The master processor cannot be re-assigned. <p> The <var>wait</var> argument indicates whether the caller should wait for the assignment to be completed or should return immediately. Dedicated kernel threads are used to perform processor assignment, so setting <var>wait</var> to <strong>FALSE</strong> allows assignment requests to be queued and performed more quickly, especially if the kernel has more than one dedicated internal thread for processor assignment. <p> All processors take clock interrupts at all times. Redirection of other device interrupts away from processors assigned to other than the default processor set is machine dependent. <h3>RETURN VALUES</h3> <p> Only generic errors apply. <h3>RELATED INFORMATION</h3> <p> Functions: <a href="processor_set_create.html">processor_set_create</a>, <a href="processor_set_info.html">processor_set_info</a>, <a href="task_assign.html">task_assign</a>, <a href="thread_assign.html">thread_assign</a>.