darwin-xnu/osfmk/man/memory_object_data_return.html
<<
>>
Prefs
   1<h2>memory_object_data_return</h2>
   2<hr>
   3<p>
   4<strong>Server Interface</strong> - Return memory object data to the appropriate memory manager.
   5<h3>SYNOPSIS</h3>
   6<pre>
   7<strong>kern_return_t   memory_object_data_return</strong>
   8                <strong>(memory_object_t</strong>                  <var>memory_object</var>,
   9                 <strong>memory_object_control_t</strong>         <var>memory_control</var>,
  10                 <strong>vm_offset_t</strong>                             <var>offset</var>,
  11                 <strong>pointer_t</strong>                                 <var>data</var>,
  12                 <strong>boolean_t</strong>                                <var>dirty</var>,
  13                 <strong>boolean_t</strong>                          <var>kernel_copy</var><strong>);</strong>
  14
  15
  16<strong>kern_return_t   seqnos_memory_object_data_return</strong>
  17                <strong>(memory_object_t</strong>                  <var>memory_object</var>,
  18                 <strong>mach_port_seqno_t</strong>                        <var>seqno</var>,
  19                 <strong>memory_object_control_t</strong>         <var>memory_control</var>,
  20                 <strong>vm_offset_t</strong>                             <var>offset</var>,
  21                 <strong>pointer_t</strong>                                 <var>data</var>,
  22                 <strong>boolean_t</strong>                                <var>dirty</var>,
  23                 <strong>boolean_t</strong>                          <var>kernel_copy</var><strong>);</strong>
  24</pre>
  25<h3>PARAMETERS</h3>
  26<dl>
  27<p>
  28<dt> <var>memory_object</var> 
  29<dd>
  30[in abstract-memory-object (receive) right]
  31The abstract memory
  32object port that represents the memory object data.
  33<p>
  34<dt> <var>seqno</var> 
  35<dd>
  36[in scalar]
  37The sequence number of this message relative to the abstract 
  38memory object port.
  39<p>
  40<dt> <var>memory_control</var> 
  41<dd>
  42[in memory-cache-control send right]
  43The memory cache control port 
  44to be used for a response by the memory manager.  If the memory
  45object has been supplied to more than one kernel, this parameter
  46identifies the kernel that is making the call.
  47<p>
  48<dt> <var>offset</var> 
  49<dd>
  50[in scalar]
  51The offset within the memory object.
  52<p>
  53<dt> <var>data</var> 
  54<dd>
  55[in pointer to dynamic array of bytes]
  56The data that has been evicted 
  57from the physical memory cache.
  58<p>
  59<dt> <var>dirty</var> 
  60<dd>
  61[in scalar]
  62If <strong>TRUE</strong>, the pages returned have been modified.
  63<p>
  64<dt> <var>kernel_copy</var> 
  65<dd>
  66[in scalar]
  67If <strong>TRUE</strong>, the kernel has kept a copy of the page.
  68</dl>
  69<h3>DESCRIPTION</h3>
  70<p>
  71A <strong>memory_object_data_return</strong> function is called as the
  72result of a kernel
  73message providing the memory manager with data that has been evicted from the 
  74physical memory cache.
  75<p>
  76The kernel writes back only data that has been modified or is precious.  When 
  77the memory manager no longer needs the data (for example, after the data has 
  78been written to permanent storage), it should use <strong>vm_deallocate</strong>
  79to release the 
  80memory resources.
  81<h3>NOTES</h3>
  82<p>
  83The kernel can flush clean (that is, un-modified) non-precious
  84pages at its own 
  85discretion.  As a result, the memory manager cannot rely on the
  86kernel to keep a 
  87copy of its data or even to provide notification that its data
  88has been discarded.
  89<p>
  90The kernel may re-request the returned data at any time following this message 
  91(including immediately).
  92<h3>RETURN VALUES</h3>
  93<p>
  94Only generic errors apply.
  95<h3>RELATED INFORMATION</h3>
  96<p>
  97Functions:
  98<a href="memory_object_data_supply.html"><strong>memory_object_data_supply</strong></a>,
  99<a href="vm_deallocate.html"><strong>vm_deallocate</strong></a>,
 100<a href="memory_object_synchronize.html"><strong>memory_object_synchronize</strong></a>,
 101<a href="memory_object_server.html"><strong>memory_object_server</strong></a>,
 102<a href="SMO_server.html"><strong>seqnos_memory_object_server</strong></a>.
 103
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.