]> git.saurik.com Git - apple/xnu.git/blob - osfmk/man/vm_wire.html
xnu-344.23.tar.gz
[apple/xnu.git] / osfmk / man / vm_wire.html
1 <h2>vm_wire</h2> <hr> <p> <strong>Function</strong> - Modify the target region's paging characteristics. <h3>SYNOPSIS</h3> <pre> <strong>kern_return_t vm_wire</strong> <strong>(host_priv_t</strong> <var>host</var>, <strong>vm_task_t</strong> <var>target_task</var>, <strong>vm_address_t</strong> <var>address</var>, <strong>vm_size_t</strong> <var>size</var>, <strong>vm_prot_t</strong> <var>wired_access</var><strong>);</strong> </pre> <h3>PARAMETERS</h3> <dl> <p> <dt> <var>host</var> <dd> [in host-control send right] The control port for the host for which information is to be obtained. <p> <dt> <var>target_task</var> <dd> [in task send right] The port for the task whose address space contains the region. <p> <dt> <var>address</var> <dd> [in scalar] The starting address for the region. <p> <dt> <var>size</var> <dd> [in scalar] The number of bytes in the region. <p> <dt> <var>wired_access</var> <dd> [in scalar] The pageability of the region. The following values cause the region to be wired and protected as specified (values may be combined): <dl> <dt> <strong>VM_PROT_READ</strong> <dt> <strong>VM_PROT_WRITE</strong> <dt> <strong>VM_PROT_execute</strong> </dl> <p> The following value causes the region to be unwired (made pageable): <dl> <dt> <strong>VM_PROT_NONE</strong> </dl> </dl> <h3>DESCRIPTION</h3> <p> The <strong>vm_wire</strong> function sets the pageability privileges for a region within the specified task's address space. <var>wired_access</var> specifies the types of accesses to the memory region which must not suffer from (internal) faults of any kind after this call returns. A non-null <var>wired_access</var> value indicates that the page is to be "wired" into memory; a null value indicates "un-wiring". The kernel maintains for the region a count of the number of times the region is wired. A page is wired into physical memory if any task accessing it has a non-zero wired count for the page. <p> The region starts at the beginning of the virtual page containing <var>address</var>; it ends at the end of the virtual page containing <var>address</var> + <var>size</var> - 1. Because of this rounding to virtual page boundaries, the amount of memory affected may be greater than <var>size</var>. Use <strong>host_page_size</strong> to find the current virtual page size. <h3>NOTES</h3> <p> This interface is machine word length specific because of the virtual address parameter. <h3>RETURN VALUES</h3> <dl> <p> <dt> <strong>KERN_INVALID_ADDRESS</strong> <dd> The address is illegal or specifies a non-allocated region. </dl> <h3>RELATED INFORMATION</h3> <p> Functions: <a href="thread_wire.html"><strong>thread_wire</strong></a>.