1*a325d9c4SApple OSS Distributions<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2*a325d9c4SApple OSS Distributions<html> 3*a325d9c4SApple OSS Distributions<head> 4*a325d9c4SApple OSS Distributions <title>Mach Kernel Interface Reference Manual</title> 5*a325d9c4SApple OSS Distributions</head> 6*a325d9c4SApple OSS Distributions<body> 7*a325d9c4SApple OSS Distributions<h3>Mach IPC Interface</h3> 8*a325d9c4SApple OSS Distributions<blockquote> 9*a325d9c4SApple OSS Distributions<p> 10*a325d9c4SApple OSS DistributionsMach IPC presents itself in a few forms: message queues, lock-sets, 11*a325d9c4SApple OSS Distributionsand semaphores (more may be added in the future). All share one common 12*a325d9c4SApple OSS Distributionscharateristic: the capabilities presented by each are represented through 13*a325d9c4SApple OSS Distributionsa handle known as a Mach port. Specific rights represented in these 14*a325d9c4SApple OSS DistributionsMach port capability handles allow the underlying IPC object to be used and 15*a325d9c4SApple OSS Distributionsmanipulated in consistent ways.</p> 16*a325d9c4SApple OSS Distributions 17*a325d9c4SApple OSS Distributions<h4>Mach Message Queue Interface</h4> 18*a325d9c4SApple OSS Distributions<blockquote> 19*a325d9c4SApple OSS Distributions<p> 20*a325d9c4SApple OSS Distributions<a href="mach_msg.html">mach_msg</a> - Send and/or receive a message from the target port.<br> 21*a325d9c4SApple OSS Distributions<a href="mach_msg.html">mach_msg_overwrite</a> - Send and/or receive messages with possible overwrite.<br> 22*a325d9c4SApple OSS Distributions</p> 23*a325d9c4SApple OSS DistributionsMach Message Queue Data Structures 24*a325d9c4SApple OSS Distributions<p> 25*a325d9c4SApple OSS Distributions<a href="mach_msg_descriptor.html">mach_msg_descriptor</a> - Specifies an element of a complex IPC message.<br> 26*a325d9c4SApple OSS Distributions<a href="mach_msg_header.html">mach_msg_header</a> - Specifies the content of an IPC message header.<br> 27*a325d9c4SApple OSS Distributions</p> 28*a325d9c4SApple OSS Distributions</blockquote> 29*a325d9c4SApple OSS Distributions 30*a325d9c4SApple OSS Distributions<h4>Mach Lock-Set Interface</h4> 31*a325d9c4SApple OSS Distributions<blockquote> 32*a325d9c4SApple OSS Distributions<p> 33*a325d9c4SApple OSS Distributions<a href="lock_acquire.html">lock_acquire</a> - Acquire ownership a lock<br> 34*a325d9c4SApple OSS Distributions<a href="lock_handoff.html">lock_handoff</a> - Hand-off ownership of a lock.<br> 35*a325d9c4SApple OSS Distributions<a href="lock_handoff_accept.html">lock_handoff_accept</a> - Accept lock ownership from a handoff.<br> 36*a325d9c4SApple OSS Distributions<a href="lock_make_stable.html">lock_make_stable</a> - Stabilize the state of the specified lock.<br> 37*a325d9c4SApple OSS Distributions<a href="lock_release.html">lock_release</a> - Release ownership of a lock.<br> 38*a325d9c4SApple OSS Distributions<a href="lock_set_create.html">lock_set_create</a> - Create a new lock set.<br> 39*a325d9c4SApple OSS Distributions<a href="lock_set_destroy.html">lock_set_destroy</a> - Destroy a lock set and its associated locks.<br> 40*a325d9c4SApple OSS Distributions<a href="lock_try.html">lock_try</a> - Attempt to acquire access rights to a lock.<br> 41*a325d9c4SApple OSS Distributions</p> 42*a325d9c4SApple OSS Distributions</blockquote> 43*a325d9c4SApple OSS Distributions 44*a325d9c4SApple OSS Distributions<h4>Mach Semaphore Interface</h4> 45*a325d9c4SApple OSS Distributions<blockquote> 46*a325d9c4SApple OSS Distributions<p> 47*a325d9c4SApple OSS Distributions<a href="semaphore_create.html">semaphore_create</a> - Create a new semaphore.<br> 48*a325d9c4SApple OSS Distributions<a href="semaphore_destroy.html">semaphore_destroy</a> - Destroy a semaphore.<br> 49*a325d9c4SApple OSS Distributions<a href="semaphore_signal.html">semaphore_signal</a> - Increments the semaphore count.<br> 50*a325d9c4SApple OSS Distributions<a href="semaphore_signal_all.html">semaphore_signal_all</a> - Wake up all threads blocked on a semaphore.<br> 51*a325d9c4SApple OSS Distributions<a href="semaphore_wait.html">semaphore_wait</a> - Wait on the specified semaphore.<br> 52*a325d9c4SApple OSS Distributions</p> 53*a325d9c4SApple OSS Distributions</blockquote> 54*a325d9c4SApple OSS Distributions 55*a325d9c4SApple OSS Distributions<h4>Mach Port Management Interface</h4> 56*a325d9c4SApple OSS Distributions<blockquote> 57*a325d9c4SApple OSS Distributions<p> 58*a325d9c4SApple OSS Distributions<a href="mach_port_allocate.html">mach_port_allocate</a> - Create caller-specified type of port right.<br> 59*a325d9c4SApple OSS Distributions<a href="mach_port_allocate_full.html">mach_port_allocate_full</a> - Create a port right with full Mach port semantics.<br> 60*a325d9c4SApple OSS Distributions<a href="mach_port_allocate_name.html">mach_port_allocate_name</a> - Create a port right with the caller-specified name.<br> 61*a325d9c4SApple OSS Distributions<a href="mach_port_allocate_qos.html">mach_port_allocate_qos</a> - Allocate a port with specified "quality of service".<br> 62*a325d9c4SApple OSS Distributions<a href="MP_allocate_subsystem.html">mach_port_allocate_subsystem</a> - Create a port right associated with the caller-specified subsystem.<br> 63*a325d9c4SApple OSS Distributions<a href="mach_port_deallocate.html">mach_port_deallocate</a> - Decrement the target port right's user reference count.<br> 64*a325d9c4SApple OSS Distributions<a href="mach_port_destroy.html">mach_port_destroy</a> - Deallocate all port rights associated with specified name.<br> 65*a325d9c4SApple OSS Distributions<a href="mach_port_extract_right.html">mach_port_extract_right</a> - Remove the specified right from the target task and return it to the caller.<br> 66*a325d9c4SApple OSS Distributions<a href="mach_port_get_attributes.html">mach_port_get_attributes</a> - Return information about target port as specified by the caller.<br> 67*a325d9c4SApple OSS Distributions<a href="mach_port_get_refs.html">mach_port_get_refs</a> - Return the current count of user references on the target port right.<br> 68*a325d9c4SApple OSS Distributions<a href="mach_port_get_set_status.html">mach_port_get_set_status</a> - Return the port right names contained in the target port set.<br> 69*a325d9c4SApple OSS Distributions<a href="mach_port_insert_right.html">mach_port_insert_right</a> - Insert the specified port right into the target task.<br> 70*a325d9c4SApple OSS Distributions<a href="mach_port_mod_refs.html">mach_port_mod_refs</a> - Modify the specified port right's count of user references.<br> 71*a325d9c4SApple OSS Distributions<a href="mach_port_move_member.html">mach_port_move_member</a> - Move the specified receive right into or out of the specified port set.<br> 72*a325d9c4SApple OSS Distributions<a href="mach_port_names.html">mach_port_names</a> - Return information about a task's port name space.<br> 73*a325d9c4SApple OSS Distributions<a href="MP_request_notification.html">mach_port_request_notification</a> - Request notification of the specified port event type.<br> 74*a325d9c4SApple OSS Distributions<a href="mach_port_set_attributes.html">mach_port_set_attributes</a> - Set the target port's attributes.<br> 75*a325d9c4SApple OSS Distributions<a href="mach_port_set_mscount.html">mach_port_set_mscount</a> - Change the target port's make-send count.<br> 76*a325d9c4SApple OSS Distributions<a href="mach_port_set_seqno.html">mach_port_set_seqno</a> - Change the current value of the target port's sequence number.<br> 77*a325d9c4SApple OSS Distributions<a href="mach_port_type.html">mach_port_type</a> - Return the characteristics of the target port name.<br> 78*a325d9c4SApple OSS Distributions<a href="mach_reply_port.html">mach_reply_port</a> - Allocate a new port and insert corresponding receive right in the calling task.<br> 79*a325d9c4SApple OSS Distributions<a href="mach_subsystem_create.html"> mach_subsystem_create</a> - Used by a server to register information about an RPC subsystem with the kernel.<br> 80*a325d9c4SApple OSS Distributions</p> 81*a325d9c4SApple OSS DistributionsMach Port Data Structures 82*a325d9c4SApple OSS Distributions<p> 83*a325d9c4SApple OSS Distributions<a href="mach_port_limits.html">mach_port_limits</a> - Specifies a port's resource and message queue limits.<br> 84*a325d9c4SApple OSS Distributions<a href="mach_port_qos.html">mach_port_qos</a> - Specifies a port's attributes with respect to "Quality Of Service."<br> 85*a325d9c4SApple OSS Distributions<a href="mach_port_status.html">mach_port_status</a> - Used to present a port's current status with respect to various important attributes.<br> 86*a325d9c4SApple OSS Distributions</p> 87*a325d9c4SApple OSS DistributionsMach Port Notification Callbacks 88*a325d9c4SApple OSS Distributions<p> 89*a325d9c4SApple OSS Distributions<a href="do_mach_notify_dead_name.html">do_mach_notify_dead_name</a> - Handle the current instance of a dead-name notification.<br> 90*a325d9c4SApple OSS Distributions<a href="do_mach_notify_no_senders.html">do_mach_notify_no_senders</a> - Handle the current instance of a no-more-senders notification.<br> 91*a325d9c4SApple OSS Distributions<a href="DMN_port_deleted.html">do_mach_notify_port_deleted</a> - Handle the current instance of a port-deleted notification.<br> 92*a325d9c4SApple OSS Distributions<a href="DMN_port_destroyed.html">do_mach_notify_port_destroyed</a> - Handle the current instance of a port-destroyed notification.<br> 93*a325d9c4SApple OSS Distributions<a href="do_mach_notify_send_once.html">do_mach_notify_send_once</a> - Handle the current instance of a send-once notification.<br> 94*a325d9c4SApple OSS Distributions</p> 95*a325d9c4SApple OSS DistributionsMach Port Notification Callback Server Helpers 96*a325d9c4SApple OSS Distributions<p> 97*a325d9c4SApple OSS Distributions<a href="notify_server.html">notify_server</a> - Detect and handle a kernel-generated IPC notification.<br> 98*a325d9c4SApple OSS Distributions</p> 99*a325d9c4SApple OSS Distributions</blockquote> 100*a325d9c4SApple OSS Distributions 101*a325d9c4SApple OSS Distributions</blockquote> 102*a325d9c4SApple OSS Distributions 103*a325d9c4SApple OSS Distributions<h3>Mach Virtual Memory Interface</h3> 104*a325d9c4SApple OSS Distributions<blockquote> 105*a325d9c4SApple OSS Distributions<h4>Mach Virtual Memory Address Space Manipulation Interface</h4> 106*a325d9c4SApple OSS Distributions<blockquote> 107*a325d9c4SApple OSS Distributions<p> 108*a325d9c4SApple OSS Distributions<a href="host_page_size.html">host_page_size</a> - Provide the system's virtual page size.<br> 109*a325d9c4SApple OSS Distributions<a href="vm_allocate.html">vm_allocate</a> - Allocate a region of virtual memory.<br> 110*a325d9c4SApple OSS Distributions<a href="vm_behavior_set.html">vm_behavior_set</a> - Specify expected access patterns for the target VM region.<br> 111*a325d9c4SApple OSS Distributions<a href="vm_copy.html">vm_copy</a> - Copy a region of virtual memory.<br> 112*a325d9c4SApple OSS Distributions<a href="vm_deallocate.html">vm_deallocate</a> - Deallocate a region of virtual memory.<br> 113*a325d9c4SApple OSS Distributions<a href="vm_inherit.html">vm_inherit</a> - Set a VM region's inheritance attribute.<br> 114*a325d9c4SApple OSS Distributions<a href="vm_machine_attribute.html">vm_machine_attribute</a> - Get/set the target memory region's special attributes.<br> 115*a325d9c4SApple OSS Distributions<a href="vm_map.html">vm_map</a> - Map the specified memory object to a region of virtual memory.<br> 116*a325d9c4SApple OSS Distributions<a href="vm_msync.html">vm_msync</a> - Synchronize the specified region of virtual memory.<br> 117*a325d9c4SApple OSS Distributions<a href="vm_protect.html">vm_protect</a> - Set access privilege attribute for a region of virtual memory.<br> 118*a325d9c4SApple OSS Distributions<a href="vm_read.html">vm_read</a> - Read the specified range of target task's address space.<br> 119*a325d9c4SApple OSS Distributions<a href="vm_region.html">vm_region</a> - Return description of a virtual memory region.<br> 120*a325d9c4SApple OSS Distributions<a href="vm_remap.html">vm_remap</a> - Map memory objects in one address space to that of another's.<br> 121*a325d9c4SApple OSS Distributions<a href="vm_wire.html"> vm_wire</a> - Modify the target region's paging characteristics.<br> 122*a325d9c4SApple OSS Distributions<a href="vm_write.html">vm_write</a> - Write data to the specified address in the target address space.<br> 123*a325d9c4SApple OSS Distributions</p> 124*a325d9c4SApple OSS DistributionsData Structures 125*a325d9c4SApple OSS Distributions<p> 126*a325d9c4SApple OSS Distributions<a href="vm_region_basic_info.html">vm_region_basic_info</a> - Defines the attributes of a task's memory region.<br> 127*a325d9c4SApple OSS Distributions<a href="vm_statistics.html">vm_statistics</a> - Defines statistics for the kernel's use of virtual memory.<br> 128*a325d9c4SApple OSS Distributions</p> 129*a325d9c4SApple OSS Distributions</blockquote> 130*a325d9c4SApple OSS Distributions 131*a325d9c4SApple OSS Distributions<h4>External Memory Management Interface</h4> 132*a325d9c4SApple OSS Distributions<blockquote> 133*a325d9c4SApple OSS DistributionsThe External Memory Management Interface (EMMI) is undergoing significant change in the Darwin system. 134*a325d9c4SApple OSS DistributionsFor this reason, the interface is not currently available to user-level programs. Even for kernel 135*a325d9c4SApple OSS Distributionsextensions, use of these interfaces in not supported. Instead, the BSD filesystem's Universal Buffer Cache (UBC) 136*a325d9c4SApple OSS Distributionsmechanism should be used.<br> 137*a325d9c4SApple OSS Distributions<p> 138*a325d9c4SApple OSS Distributions<a href="MO_change_attributes.html">memory_object_change_attributes</a> - Modify subset of memory object attributes.<br> 139*a325d9c4SApple OSS Distributions<a href="memory_object_destroy.html">memory_object_destroy</a> - Shut down a memory object.<br> 140*a325d9c4SApple OSS Distributions<a href="MO_get_attributes.html">memory_object_get_attributes</a> - Return current attributes for a memory object.<br> 141*a325d9c4SApple OSS Distributions<a href="memory_object_lock_request.html">memory_object_lock_request</a> - Restrict access to memory object data.<br> 142*a325d9c4SApple OSS Distributions<a href="MO_SY_completed.html">memory_object_synchronize_completed</a> - Synchronized data has been processed.<br> 143*a325d9c4SApple OSS Distributions</p> 144*a325d9c4SApple OSS DistributionsData Structures 145*a325d9c4SApple OSS Distributions<p> 146*a325d9c4SApple OSS Distributions<a href="memory_object_attr_info.html">memory_object_attr_info</a> - Defines memory object attributes.<br> 147*a325d9c4SApple OSS Distributions<a href="memory_object_perf_info.html">memory_object_perf_info</a>- Specifies performance-related memory object attributes.<br> 148*a325d9c4SApple OSS Distributions</p> 149*a325d9c4SApple OSS DistributionsExternal Memory Manager Interface Callbacks 150*a325d9c4SApple OSS Distributions<p> 151*a325d9c4SApple OSS Distributions<a href="memory_object_create.html">memory_object_create</a> - Assign a new memory object to the default memory manager.<br> 152*a325d9c4SApple OSS Distributions<a href="MO_data_initialize.html">memory_object_data_initialize</a> - Provide initial data for a new memory object.<br> 153*a325d9c4SApple OSS Distributions<a href="memory_object_data_request.html">memory_object_data_request</a> - Request that memory manager page-in specified data.<br> 154*a325d9c4SApple OSS Distributions<a href="memory_object_data_return.html">memory_object_data_return</a> - Return memory object data to the appropriate memory manager.<br> 155*a325d9c4SApple OSS Distributions<a href="memory_object_data_unlock.html">memory_object_data_unlock</a> - Request a memory manager release the lock on specific data.<br> 156*a325d9c4SApple OSS Distributions<a href="memory_object_init.html">memory_object_init</a> - Inform a memory manager on first use of a memory object.<br> 157*a325d9c4SApple OSS Distributions<a href="memory_object_synchronize.html">memory_object_synchronize</a> - Request synchronization of data with backing store.<br> 158*a325d9c4SApple OSS Distributions<a href="memory_object_terminate.html">memory_object_terminate</a> - Relinquish access to a memory object.<br> 159*a325d9c4SApple OSS Distributions</p> 160*a325d9c4SApple OSS DistributionsEMMI Callback Server Helpers 161*a325d9c4SApple OSS Distributions<p> 162*a325d9c4SApple OSS Distributions<a href="MO_default_server.html">memory_object_default_server</a> - Handle kernel operation request targeted for the default pager.<br> 163*a325d9c4SApple OSS Distributions<a href="memory_object_server.html">memory_object_server</a> - Handle kernel operation request aimed at a given memory manager.<br> 164*a325d9c4SApple OSS Distributions</p> 165*a325d9c4SApple OSS Distributions</blockquote> 166*a325d9c4SApple OSS Distributions 167*a325d9c4SApple OSS Distributions<h4>Default Memory Management Interface</h4> 168*a325d9c4SApple OSS Distributions<blockquote> 169*a325d9c4SApple OSS Distributions<p> 170*a325d9c4SApple OSS Distributions<a href="default_pager_add_segment.html">default_pager_add_segment</a> - Add additional backing storage for a default pager.<br> 171*a325d9c4SApple OSS Distributions<a href="DP_backing_store_create.html">default_pager_backing_store_create</a> - Create a backing storage object.<br> 172*a325d9c4SApple OSS Distributions<a href="DP_backing_store_delete.html"> default_pager_backing_store_delete</a> - Delete a backing storage object.<br> 173*a325d9c4SApple OSS Distributions<a href="DP_backing_store_info.html">default_pager_backing_store_info</a> - Return information about a backing storage object.<br> 174*a325d9c4SApple OSS Distributions<a href="default_pager_info.html">default_pager_info</a> - Furnish caller with information about the default pager.<br> 175*a325d9c4SApple OSS Distributions<a href="DP_object_create.html">default_pager_object_create</a> - Initialize a non-persistent memory object.<br> 176*a325d9c4SApple OSS Distributions<a href="HD_memory_manager.html">host_default_memory_manager</a> - Register/Lookup the host's default pager.<br> 177*a325d9c4SApple OSS Distributions</p> 178*a325d9c4SApple OSS Distributions</blockquote> 179*a325d9c4SApple OSS Distributions 180*a325d9c4SApple OSS Distributions</blockquote> 181*a325d9c4SApple OSS Distributions 182*a325d9c4SApple OSS Distributions<h3>Process Management Interface</h3> 183*a325d9c4SApple OSS Distributions<blockquote> 184*a325d9c4SApple OSS Distributions 185*a325d9c4SApple OSS Distributions<h4>Task Interface</h4> 186*a325d9c4SApple OSS Distributions<blockquote> 187*a325d9c4SApple OSS Distributions<p> 188*a325d9c4SApple OSS Distributions<a href="mach_ports_lookup.html">mach_ports_lookup</a> - Provide caller with an array of the target task's well-known ports.<br> 189*a325d9c4SApple OSS Distributions<a href="mach_ports_register.html">mach_ports_register</a> - Register an array of well-known ports on behalf of the target task.<br> 190*a325d9c4SApple OSS Distributions<a href="mach_task_self.html">mach_task_self</a> - Return a send right to the caller's task_self port.<br> 191*a325d9c4SApple OSS Distributions<a href="task_create.html">task_create</a> - Create a new task.<br> 192*a325d9c4SApple OSS Distributions<a href="task_get_emulation_vector.html">task_get_emulation_vector</a> - Return an array identifying the target task's user-level system call handlers.<br> 193*a325d9c4SApple OSS Distributions<a href="task_get_exception_ports.html">task_get_exception_ports</a> - Return send rights to the target task's exception ports.<br> 194*a325d9c4SApple OSS Distributions<a href="task_get_special_port.html">task_get_special_port</a> - Return a send write to the indicated special port.<br> 195*a325d9c4SApple OSS Distributions<a href="task_info.html">task_info</a> - Return per-task information according to specified flavor.<br> 196*a325d9c4SApple OSS Distributions<a href="task_resume.html">task_resume</a> - Decrement the target task's suspend count.<br> 197*a325d9c4SApple OSS Distributions<a href="task_sample.html">task_sample</a> - Sample the target task's thread program counters periodically.<br> 198*a325d9c4SApple OSS Distributions<a href="task_set_emulation.html">task_set_emulation</a> - Establish a user-level handler for a system call.<br> 199*a325d9c4SApple OSS Distributions<a href="task_set_emulation_vector.html">task_set_emulation_vector</a> - Establish the target task's user-level system call handlers.<br> 200*a325d9c4SApple OSS Distributions<a href="task_set_exception_ports.html">task_set_exception_ports</a> - Set target task's exception ports.<br> 201*a325d9c4SApple OSS Distributions<a href="task_set_info.html">task_set_info</a> - Set task-specific information state.<br> 202*a325d9c4SApple OSS Distributions<a href="task_set_port_space.html">task_set_port_space</a> - Set the size of the target task's port name space table.<br> 203*a325d9c4SApple OSS Distributions<a href="task_set_special_port.html">task_set_special_port</a> - Set the indicated special port.<br> 204*a325d9c4SApple OSS Distributions<a href="task_suspend.html">task_suspend</a> - Suspend the target task.<br> 205*a325d9c4SApple OSS Distributions<a href="task_swap_exception_ports.html">task_swap_exception_ports</a> - Set target task's exception ports, returning the previous exception ports.<br> 206*a325d9c4SApple OSS Distributions<a href="task_terminate.html">task_terminate</a> - Terminate the target task and deallocate its resources.<br> 207*a325d9c4SApple OSS Distributions<a href="task_threads.html">task_threads</a> - Return the target task's list of threads.<br> 208*a325d9c4SApple OSS Distributions</p> 209*a325d9c4SApple OSS DistributionsTask Data Structures 210*a325d9c4SApple OSS Distributions<p> 211*a325d9c4SApple OSS Distributions<a href="task_basic_info.html">task_basic_info</a> - Defines basic information for a task.<br> 212*a325d9c4SApple OSS Distributions<a href="task_thread_times_info.html">task_thread_times_info</a> - Defines thread execution times information for tasks.<br> 213*a325d9c4SApple OSS Distributions</p> 214*a325d9c4SApple OSS Distributions</blockquote> 215*a325d9c4SApple OSS Distributions 216*a325d9c4SApple OSS Distributions<h4>Thread Interface</h4> 217*a325d9c4SApple OSS Distributions<blockquote> 218*a325d9c4SApple OSS Distributions<p> 219*a325d9c4SApple OSS Distributions<a href="mach_thread_self.html">mach_thread_self</a> - Returns the thread self port.<br> 220*a325d9c4SApple OSS Distributions<a href="thread_abort.html">thread_abort</a> - Abort a thread.<br> 221*a325d9c4SApple OSS Distributions<a href="thread_abort_safely.html">thread_abort_safely</a> - Abort a thread, restartably.<br> 222*a325d9c4SApple OSS Distributions<a href="thread_create.html">thread_create</a> - Create a thread within a task.<br> 223*a325d9c4SApple OSS Distributions<a href="thread_create_running.html">thread_create_running</a> - Optimized creation of a running thread.<br> 224*a325d9c4SApple OSS Distributions<a href="thread_depress_abort.html">thread_depress_abort</a> - Cancel thread scheduling depression.<br> 225*a325d9c4SApple OSS Distributions<a href="thread_get_exception_ports.html">thread_get_exception_ports</a> - Return a send right to an exception port.<br> 226*a325d9c4SApple OSS Distributions<a href="thread_get_special_port.html">thread_get_special_port</a> - Return a send right to the caller-specified special port.<br> 227*a325d9c4SApple OSS Distributions<a href="thread_get_state.html">thread_get_state</a> - Return the execution state for a thread.<br> 228*a325d9c4SApple OSS Distributions<a href="thread_info.html">thread_info</a> - Return information about a thread.<br> 229*a325d9c4SApple OSS Distributions<a href="thread_resume.html">thread_resume</a> - Resume a thread.<br> 230*a325d9c4SApple OSS Distributions<a href="thread_sample.html">thread_sample</a> - Perform periodic PC sampling for a thread.<br> 231*a325d9c4SApple OSS Distributions<a href="thread_set_exception_ports.html">thread_set_exception_ports</a> - Set exception ports for a thread.<br> 232*a325d9c4SApple OSS Distributions<a href="thread_set_special_port.html">thread_set_special_port</a> - Set caller-specified special port belonging to the target thread.<br> 233*a325d9c4SApple OSS Distributions<a href="thread_set_state.html">thread_set_state</a> - Set the target thread's user-mode execution state.<br> 234*a325d9c4SApple OSS Distributions<a href="thread_suspend.html">thread_suspend</a> - Suspend a thread.<br> 235*a325d9c4SApple OSS Distributions<a href="TS_exception_ports.html">thread_swap_exception_ports</a> - Swap exception ports for a thread.<br> 236*a325d9c4SApple OSS Distributions<a href="thread_terminate.html">thread_terminate</a> - Destroy a thread.<br> 237*a325d9c4SApple OSS Distributions<a href="thread_wire.html">thread_wire</a> - Mark the thread as privileged with respect to kernel resources.<br> 238*a325d9c4SApple OSS Distributions</p> 239*a325d9c4SApple OSS DistributionsThread Data Structures 240*a325d9c4SApple OSS Distributions<p> 241*a325d9c4SApple OSS Distributions<a href="thread_basic_info.html">thread_basic_info</a> - Defines basic information for a thread.<br> 242*a325d9c4SApple OSS Distributions</p> 243*a325d9c4SApple OSS DistributionsThread Exception Callbacks 244*a325d9c4SApple OSS Distributions<p> 245*a325d9c4SApple OSS Distributions<a href="catch_exception_raise.html">catch_exception_raise</a> - Handles the occurrence of an exception within a thread.<br> 246*a325d9c4SApple OSS Distributions</p> 247*a325d9c4SApple OSS DistributionsThread Exception Callback Server Helpers 248*a325d9c4SApple OSS Distributions<p> 249*a325d9c4SApple OSS Distributions<a href="exc_server.html">exc_server</a> - Handle kernel-reported thread exception.<br> 250*a325d9c4SApple OSS Distributions</p> 251*a325d9c4SApple OSS Distributions</blockquote> 252*a325d9c4SApple OSS Distributions 253*a325d9c4SApple OSS Distributions<h4>Scheduling Interface</h4> 254*a325d9c4SApple OSS Distributions<blockquote> 255*a325d9c4SApple OSS Distributions<p> 256*a325d9c4SApple OSS Distributions<a href="task_policy.html">task_policy</a> - Set target task's default scheduling policy state.<br> 257*a325d9c4SApple OSS Distributions<a href="task_set_policy.html">task_set_policy</a> - Set target task's default scheduling policy state.<br> 258*a325d9c4SApple OSS Distributions<a href="thread_policy.html">thread_policy</a> - Set target thread's scheduling policy state.<br> 259*a325d9c4SApple OSS Distributions<a href="thread_set_policy.html">thread_set_policy</a> - Set target thread's scheduling policy state.<br> 260*a325d9c4SApple OSS Distributions<a href="thread_switch.html">thread_switch</a> - Cause context switch with options.<br> 261*a325d9c4SApple OSS Distributions</p> 262*a325d9c4SApple OSS DistributionsScheduling Data Structures 263*a325d9c4SApple OSS Distributions<p> 264*a325d9c4SApple OSS Distributions<a href="policy_fifo_info.html">policy_fifo_info</a> - Specifies information associated with the system's First-In-First-Out scheduling policy.<br> 265*a325d9c4SApple OSS Distributions<a href="policy_rr_info.html">policy_rr_info</a> - Specifies information associated with the system's Round Robin scheduling policy.<br> 266*a325d9c4SApple OSS Distributions<a href="policy_timeshare_info.html">policy_timeshare_info</a> - Specifies information associated with the system's Timeshare scheduling policy.<br> 267*a325d9c4SApple OSS Distributions</p> 268*a325d9c4SApple OSS Distributions</blockquote> 269*a325d9c4SApple OSS Distributions</blockquote> 270*a325d9c4SApple OSS Distributions 271*a325d9c4SApple OSS Distributions<h3>System Management Interface</h3> 272*a325d9c4SApple OSS Distributions<blockquote> 273*a325d9c4SApple OSS Distributions 274*a325d9c4SApple OSS Distributions<h4>Host Interface</h4> 275*a325d9c4SApple OSS Distributions<blockquote> 276*a325d9c4SApple OSS Distributions<p> 277*a325d9c4SApple OSS Distributions<a href="host_get_clock_service.html">host_get_clock_service</a> - Return a send right to a kernel clock's service port.<br> 278*a325d9c4SApple OSS Distributions<a href="host_get_time.html">host_get_time</a> - Returns the current time as seen by that host.<br> 279*a325d9c4SApple OSS Distributions<a href="host_info.html">host_info</a> - Return information about a host.<br> 280*a325d9c4SApple OSS Distributions<a href="host_kernel_version.html">host_kernel_version</a> - Return kernel version information for a host.<br> 281*a325d9c4SApple OSS Distributions<a href="host_statistics.html">host_statistics</a> - Return statistics for a host.<br> 282*a325d9c4SApple OSS Distributions<a href="mach_host_self.html">mach_host_self</a> - Returns send rights to the task's host self port.<br> 283*a325d9c4SApple OSS Distributions</p> 284*a325d9c4SApple OSS DistributionsData Structures 285*a325d9c4SApple OSS Distributions<p> 286*a325d9c4SApple OSS Distributions<a href="host_basic_info.html">host_basic_info</a> - Used to present basic information about a host.<br> 287*a325d9c4SApple OSS Distributions<a href="host_load_info.html">host_load_info</a> - Used to present a host's processor load information.<br> 288*a325d9c4SApple OSS Distributions<a href="host_sched_info.html">host_sched_info</a> - - Used to present the set of scheduler limits associated with the host.<br> 289*a325d9c4SApple OSS Distributions<a href="kernel_resource_sizes.html">kernel_resource_sizes</a> - Used to present the sizes of kernel's major structures.<br> 290*a325d9c4SApple OSS Distributions</p> 291*a325d9c4SApple OSS Distributions</blockquote> 292*a325d9c4SApple OSS Distributions 293*a325d9c4SApple OSS Distributions<h4>Host Control Interface</h4> 294*a325d9c4SApple OSS Distributions<blockquote> 295*a325d9c4SApple OSS Distributions<p> 296*a325d9c4SApple OSS Distributions<a href="host_adjust_time.html">host_adjust_time</a> - Arranges for the time on a specified host to be gradually changed by an adjustment value.<br> 297*a325d9c4SApple OSS Distributions<a href="HD_memory_manager.html">host_default_memory_manager</a> - Set the default memory manager.<br> 298*a325d9c4SApple OSS Distributions<a href="host_get_boot_info.html">host_get_boot_info</a> - Return operator boot information.<br> 299*a325d9c4SApple OSS Distributions<a href="host_get_clock_control.html">host_get_clock_control</a> - Return a send right to a kernel clock's control port.<br> 300*a325d9c4SApple OSS Distributions<a href="host_processor_slots.html">host_processor_slots</a> - Return a list of numbers that map processor slots to active processors.<br> 301*a325d9c4SApple OSS Distributions<a href="host_processors.html">host_processors</a> - Return a list of send rights representing all processor ports.<br> 302*a325d9c4SApple OSS Distributions<a href="host_reboot.html">host_reboot</a> - Reboot this host.<br> 303*a325d9c4SApple OSS Distributions<a href="host_set_time.html">host_set_time</a> - Establishes the time on the specified host.<br> 304*a325d9c4SApple OSS Distributions</p> 305*a325d9c4SApple OSS Distributions</blockquote> 306*a325d9c4SApple OSS Distributions 307*a325d9c4SApple OSS Distributions<h4>Host Security Interface</h4> 308*a325d9c4SApple OSS Distributions<blockquote> 309*a325d9c4SApple OSS Distributions<p> 310*a325d9c4SApple OSS Distributions<a href="host_security_create_task_token.html">host_security_create_task_token</a> - Create a new task with an explicit security token.<br> 311*a325d9c4SApple OSS Distributions<a href="host_security_set_task_token.html">host_security_set_task_token</a> - Change the target task's security token.<br> 312*a325d9c4SApple OSS Distributions</p> 313*a325d9c4SApple OSS Distributions</blockquote> 314*a325d9c4SApple OSS Distributions 315*a325d9c4SApple OSS Distributions<h4>Resource Accounting Interface</h4> 316*a325d9c4SApple OSS Distributions<blockquote> 317*a325d9c4SApple OSS Distributions<i> 318*a325d9c4SApple OSS DistributionsThe Mach resource accounting mechanism is not functional in the current Mac OS X/Darwin system. It will become functional in a future release. 319*a325d9c4SApple OSS Distributions</i> 320*a325d9c4SApple OSS Distributions<p> 321*a325d9c4SApple OSS Distributions<a href="ledger_create.html">ledger_create</a> - Create a subordinate ledger.<br> 322*a325d9c4SApple OSS Distributions<a href="ledger_read.html">ledger_read</a> - Return the ledger limit and balance.<br> 323*a325d9c4SApple OSS Distributions<a href="ledger_terminate.html">ledger_terminate</a> - Destroy a ledger.<br> 324*a325d9c4SApple OSS Distributions<a href="ledger_transfer.html">ledger_transfer</a> - Transfer resources from a parent ledger to a child.<br> 325*a325d9c4SApple OSS Distributions</p> 326*a325d9c4SApple OSS Distributions</blockquote> 327*a325d9c4SApple OSS Distributions 328*a325d9c4SApple OSS Distributions<h4>Processor Management Interface</h4> 329*a325d9c4SApple OSS Distributions<blockquote> 330*a325d9c4SApple OSS Distributions<p> 331*a325d9c4SApple OSS Distributions<a href="processor_control.html">processor_control</a> - Perform caller-specified operation on target processor.<br> 332*a325d9c4SApple OSS Distributions<a href="processor_exit.html">processor_exit</a> - Exit a processor.<br> 333*a325d9c4SApple OSS Distributions<a href="processor_info.html">processor_info</a> - Return information about a processor.<br> 334*a325d9c4SApple OSS Distributions<a href="processor_start.html">processor_start</a> - Start a processor.<br> 335*a325d9c4SApple OSS Distributions</p> 336*a325d9c4SApple OSS DistributionsProcessor Data Structures 337*a325d9c4SApple OSS Distributions<p> 338*a325d9c4SApple OSS Distributions<a href="processor_basic_info.html">processor_basic_info</a> - Defines the basic information about a processor.<br> 339*a325d9c4SApple OSS Distributions</p> 340*a325d9c4SApple OSS Distributions</blockquote> 341*a325d9c4SApple OSS Distributions 342*a325d9c4SApple OSS Distributions<h4>Processor Set Interface</h4> 343*a325d9c4SApple OSS Distributions<blockquote> 344*a325d9c4SApple OSS Distributions<i> 345*a325d9c4SApple OSS DistributionsThe processor set interface allows for the grouping of tasks and 346*a325d9c4SApple OSS Distributionsprocessors for the purpose of exclusive scheduling. These interface 347*a325d9c4SApple OSS Distributionsare <b>deprecated</b> and should not be used in code that isn't tied 348*a325d9c4SApple OSS Distributionsto a particular release of Mac OS X/Darwin. These will likely change 349*a325d9c4SApple OSS Distributionsor disappear in a future release. 350*a325d9c4SApple OSS Distributions</i> 351*a325d9c4SApple OSS Distributions<p> 352*a325d9c4SApple OSS Distributions<a href="host_processor_sets.html">host_processor_sets</a> - Return a list of send rights representing all processor set name ports.<br> 353*a325d9c4SApple OSS Distributions<a href="host_processor_set_priv.html">host_processor_set_priv</a> - Translate a processor set name port into a processor set control port.<br> 354*a325d9c4SApple OSS Distributions<a href="processor_assign.html">processor_assign</a> - Assign a processor to a processor set.<br> 355*a325d9c4SApple OSS Distributions<a href="processor_get_assignment.html">processor_get_assignment</a> - Get current assignment for a processor.<br> 356*a325d9c4SApple OSS Distributions<a href="processor_set_create.html">processor_set_create</a> - Create a new processor set.<br> 357*a325d9c4SApple OSS Distributions<a href="processor_set_default.html">processor_set_default</a> - Return the default processor set.<br> 358*a325d9c4SApple OSS Distributions<a href="processor_set_destroy.html">processor_set_destroy</a> - Destroy the target processor set.<br> 359*a325d9c4SApple OSS Distributions<a href="processor_set_info.html">processor_set_info</a> - Return processor set state according to caller-specified flavor.<br> 360*a325d9c4SApple OSS Distributions<a href="processor_set_max_priority.html">processor_set_max_priority</a> - Sets the maximum scheduling priority for a processor set.<br> 361*a325d9c4SApple OSS Distributions<a href="P_set_policy_control.html">processor_set_policy_control</a> - Set target processor set's scheduling policy state.<br> 362*a325d9c4SApple OSS Distributions<a href="P_set_policy_disable.html">processor_set_policy_disable</a> - Enables a scheduling policy for a processor set.<br> 363*a325d9c4SApple OSS Distributions<a href="P_set_policy_enable.html">processor_set_policy_enable</a> - Enables a scheduling policy for a processor set.<br> 364*a325d9c4SApple OSS Distributions<a href="processor_set_statistics.html">processor_set_statistics</a> - Return scheduling statistics for a processor set.<br> 365*a325d9c4SApple OSS Distributions<a href="processor_set_tasks.html">processor_set_tasks</a> - Return all tasks currently assigned to the target processor set.<br> 366*a325d9c4SApple OSS Distributions<a href="processor_set_threads.html">processor_set_threads</a> - Return all threads currently assigned to the target processor set.<br> 367*a325d9c4SApple OSS Distributions<a href="task_assign.html">task_assign</a> - Assign a task to a processor set.<br> 368*a325d9c4SApple OSS Distributions<a href="task_assign_default.html">task_assign_default</a> - Assign a task to the default processor set.<br> 369*a325d9c4SApple OSS Distributions<a href="task_get_assignment.html">task_get_assignment</a> - Create a new task with an explicit security token.<br> 370*a325d9c4SApple OSS Distributions<a href="thread_assign.html">thread_assign</a> - Assign a thread to a processor set.<br> 371*a325d9c4SApple OSS Distributions<a href="thread_assign_default.html">thread_assign_default</a> - Assign a thread to the default processor set.<br> 372*a325d9c4SApple OSS Distributions<a href="thread_get_assignment.html">thread_get_assignment</a> - Return the processor set to which a thread is assigned.<br> 373*a325d9c4SApple OSS Distributions</p> 374*a325d9c4SApple OSS DistributionsProcessor Set Data Structures 375*a325d9c4SApple OSS Distributions<p> 376*a325d9c4SApple OSS Distributions<a href="processor_set_basic_info.html">processor_set_basic_info</a> - Defines the basic information about a processor set.<br> 377*a325d9c4SApple OSS Distributions<a href="processor_set_load_info.html">processor_set_load_info</a> - Defines the scheduling statistics for a processor set.<br> 378*a325d9c4SApple OSS Distributions</p> 379*a325d9c4SApple OSS Distributions</blockquote> 380*a325d9c4SApple OSS Distributions 381*a325d9c4SApple OSS Distributions<h4>Clock Interface</h4> 382*a325d9c4SApple OSS Distributions<blockquote> 383*a325d9c4SApple OSS Distributions<p> 384*a325d9c4SApple OSS Distributions<a href="clock_alarm.html">clock_alarm</a> - Set up an alarm.<br> 385*a325d9c4SApple OSS Distributions<a href="clock_get_attributes.html">clock_get_attributes</a> - Return attributes of a clock.<br> 386*a325d9c4SApple OSS Distributions<a href="clock_get_time.html">clock_get_time</a> - Return the current time.<br> 387*a325d9c4SApple OSS Distributions<a href="clock_map_time.html">clock_map_time</a> - Return a memory object that maps a clock.<br> 388*a325d9c4SApple OSS Distributions<a href="clock_set_attributes.html">clock_set_attributes</a> - Set a particular clock's attributes.<br> 389*a325d9c4SApple OSS Distributions<a href="clock_set_time.html">clock_set_time</a> - Set the current time.<br> 390*a325d9c4SApple OSS Distributions<a href="clock_sleep.html">clock_sleep</a> - Delay the invoking thread until a specified time.<br> 391*a325d9c4SApple OSS Distributions</p> 392*a325d9c4SApple OSS DistributionsClock Data Structures 393*a325d9c4SApple OSS Distributions<p> 394*a325d9c4SApple OSS Distributions<a href="mapped_tvalspec.html">mapped_tvalspec</a> - Specifies the format the kernel uses to maintain a mapped clock's time.<br> 395*a325d9c4SApple OSS Distributions<a href="tvalspec.html">tvalspec</a> - Defines format of system time values.<br> 396*a325d9c4SApple OSS Distributions</p> 397*a325d9c4SApple OSS DistributionsClock Interface Callbacks 398*a325d9c4SApple OSS Distributions<p> 399*a325d9c4SApple OSS Distributions<a href="clock_alarm_reply.html">clock_alarm_reply</a> - Ring a preset alarm.<br> 400*a325d9c4SApple OSS Distributions</p> 401*a325d9c4SApple OSS DistributionsClock Callback Server Helpers 402*a325d9c4SApple OSS Distributions<p> 403*a325d9c4SApple OSS Distributions<a href="clock_reply_server.html"> clock_reply_server</a> - Handle kernel-generated alarm.<br> 404*a325d9c4SApple OSS Distributions</p> 405*a325d9c4SApple OSS Distributions</blockquote> 406*a325d9c4SApple OSS Distributions 407*a325d9c4SApple OSS Distributions<h4>Multi-Computer Support Interface</h4> 408*a325d9c4SApple OSS Distributions<blockquote> 409*a325d9c4SApple OSS Distributions<i> 410*a325d9c4SApple OSS DistributionsThese multi-computer support interfaces are no longer supported by 411*a325d9c4SApple OSS Distributionsthe Mac OS X/Darwin kernel. If and when multi-computer support is 412*a325d9c4SApple OSS Distributionsadded back in, something like these will likely be added. 413*a325d9c4SApple OSS Distributions</i> 414*a325d9c4SApple OSS Distributions<p> 415*a325d9c4SApple OSS Distributions<a href="host_page_size.html">host_page_size</a> - Returns the page size for the given host.<br> 416*a325d9c4SApple OSS Distributions<a href="ledger_get_remote.html">ledger_get_remote</a> - Return send right to specified host's remote ledger port.<br> 417*a325d9c4SApple OSS Distributions<a href="ledger_set_remote.html">ledger_set_remote</a> - Set this host's remote ledger port.<br> 418*a325d9c4SApple OSS Distributions</p> 419*a325d9c4SApple OSS Distributions</blockquote> 420*a325d9c4SApple OSS Distributions 421*a325d9c4SApple OSS Distributions</blockquote> 422*a325d9c4SApple OSS Distributions 423*a325d9c4SApple OSS Distributions<h3>Machine Specific Interface</h3> 424*a325d9c4SApple OSS Distributions<blockquote> 425*a325d9c4SApple OSS Distributions 426*a325d9c4SApple OSS Distributions<h4>Intel 386 Support</h4> 427*a325d9c4SApple OSS Distributions<blockquote> 428*a325d9c4SApple OSS Distributions<p> 429*a325d9c4SApple OSS Distributions<a href="i386_get_ldt.html">i386_get_ldt</a> - Returns per-thread segment descriptors from the local descriptor table (LDT).<br> 430*a325d9c4SApple OSS Distributions<a href="i386_io_port_add.html">i386_io_port_add</a> - Adds a device to the I/O permission bitmap for a thread. <br> 431*a325d9c4SApple OSS Distributions<a href="i386_io_port_list.html">i386_io_port_list</a> - Returns a list of the devices named in the thread's I/O permission bitmap.<br> 432*a325d9c4SApple OSS Distributions<a href="i386_io_port_remove.html">i386_io_port_remove</a> - Removes the specified device from the thread's I/O permission bitmap.<br> 433*a325d9c4SApple OSS Distributions<a href="i386_set_ldt.html">i386_set_ldt</a> - Allows a thread to have a private local descriptor table (LDT).<br> 434*a325d9c4SApple OSS Distributions</p> 435*a325d9c4SApple OSS Distributions</blockquote> 436*a325d9c4SApple OSS Distributions 437*a325d9c4SApple OSS Distributions<h4>PowerPC Support</h4> 438*a325d9c4SApple OSS Distributions<blockquote> 439*a325d9c4SApple OSS Distributions<p> 440*a325d9c4SApple OSS Distributions</p> 441*a325d9c4SApple OSS Distributions</blockquote> 442*a325d9c4SApple OSS Distributions 443*a325d9c4SApple OSS Distributions</blockquote> 444*a325d9c4SApple OSS Distributions 445*a325d9c4SApple OSS Distributions</BODY> 446*a325d9c4SApple OSS Distributions 447*a325d9c4SApple OSS Distributions</HTML> 448*a325d9c4SApple OSS Distributions 449