1<h2>vm_copy</h2>
2<hr>
3<p>
4<strong>Function</strong> - Copy a region of virtual memory.
5<h3>SYNOPSIS</h3>
6<pre>
7<strong>kern_return_t   vm_copy</strong>
8                <strong>(vm_task_t</strong>            <var>target_task</var>,
9                 <strong>vm_address_t</strong>      <var>source_address</var>,
10                 <strong>vm_size_t</strong>                  <var>count</var>,
11                 <strong>vm_address_t</strong>        <var>dest_address</var><strong>);</strong>
12</pre>
13<h3>PARAMETERS</h3>
14<dl>
15<p>
16<dt> <var>target_task</var> 
17<dd>
18[in task send right]
19The port for the task whose memory is to be copied.
20<p>
21<dt> <var>source_address</var> 
22<dd>
23[in scalar]
24The starting address for the source region.  The address must 
25be on a page boundary.
26<p>
27<dt> <var>count</var> 
28<dd>
29[in scalar]
30The number of bytes in the source region.  The number of 
31bytes must convert to an integral number of virtual pages.
32<p>
33<dt> <var>dest_address</var> 
34<dd>
35[in scalar]
36The starting address for the destination region.  The address 
37must be on a page boundary.
38</dl>
39<h3>DESCRIPTION</h3>
40<p>
41The <strong>vm_copy</strong> function copies a source region to a destination
42region within the 
43same task's virtual memory.  It is semantically equivalent to
44<strong>vm_read</strong> followed 
45by <strong>vm_write</strong>.  The destination region can overlap the source region.
46<p>
47The destination region must already be allocated.  The source region must be 
48readable, and the destination region must be writable.
49<h3>NOTES</h3>
50<p>
51This interface is machine word length specific because of the virtual address
52parameter.
53<h3>RETURN VALUES</h3>
54<dl>
55<p>
56<dt> <strong>KERN_PROTECTION_FAILURE</strong>
57<dd>
58The source region is protected against reading, or the destination
59region is protected against writing.
60<p>
61<dt> <strong>KERN_INVALID_ADDRESS</strong>
62<dd>
63An address is illegal or specifies a non-allocated region, or there is not 
64enough memory following one of the addresses.
65</dl>
66<h3>RELATED INFORMATION</h3>
67<p>
68Functions:
69<a href="vm_protect.html"><strong>vm_protect</strong></a>,
70<a href="vm_read.html"><strong>vm_read</strong></a>,
71<a href="vm_write.html"><strong>vm_write</strong></a>,
72<a href="host_page_size.html"><strong>host_page_size</strong></a>.
73