1<h2>memory_object_data_request</h2> 2<hr> 3<p> 4<strong>Server Interface</strong> - Request that memory manager page-in specified data. 5<h3>SYNOPSIS</h3> 6<pre> 7<strong>kern_return_t memory_object_data_request</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>vm_size_t</strong> <var>length</var>, 12 <strong>vm_prot_t</strong> <var>desired_access</var><strong>);</strong> 13 14 15<strong>kern_return_t seqnos_memory_object_data_request</strong> 16 <strong>(memory_object_t</strong> <var>memory_object</var>, 17 <strong>mach_port_seqno_t</strong> <var>seqno</var>, 18 <strong>memory_object_control_t</strong> <var>memory_control</var>, 19 <strong>vm_offset_t</strong> <var>offset</var>, 20 <strong>vm_size_t</strong> <var>length</var>, 21 <strong>vm_prot_t</strong> <var>desired_access</var><strong>);</strong> 22</pre> 23<h3>PARAMETERS</h3> 24<dl> 25<p> 26<dt> <var>memory_object</var> 27<dd> 28[in abstract-memory-object (receive) right] 29The abstract memory 30object port that represents the memory object data. 31<p> 32<dt> <var>seqno</var> 33<dd> 34[in scalar] 35The sequence number of this message relative to the abstract 36memory object port. 37<p> 38<dt> <var>memory_control</var> 39<dd> 40[in memory-cache-control send right] 41The memory cache control port 42to be used for a response by the memory manager. If the memory 43object has been supplied to more than one kernel, this parameter 44identifies the kernel that is making the call. 45<p> 46<dt> <var>offset</var> 47<dd> 48[in scalar] 49The offset within the memory object. 50<p> 51<dt> <var>length</var> 52<dd> 53[in scalar] 54The number of bytes requested, starting at <var>offset</var>. The 55number converts to an integral number of virtual pages. 56<p> 57<dt> <var>desired_access</var> 58<dd> 59[in scalar] 60The memory access modes to be allowed for the cached 61data. Possible values are obtained by or'ing together the following 62values: 63<dl> 64<p> 65<dt> <strong>VM_PROT_READ</strong> 66<dd> 67Allows read access. 68<p> 69<dt> <strong>VM_PROT_WRITE</strong> 70<dd> 71Allows write access. 72<p> 73<dt> <strong>VM_PROT_EXECUTE</strong> 74<dd> 75Allows execute access. 76</dl> 77</dl> 78<h3>DESCRIPTION</h3> 79<p> 80A <strong>memory_object_data_request</strong> function is called as 81the result of a kernel 82message requesting data from the specified memory object, for at least the 83access specified. 84<p> 85The kernel issues this call after a cache miss (that is, a page 86fault for which the 87kernel does not have the data). The kernel requests only amounts 88of data that are 89multiples of the page size included in the 90<strong>memory_object_init</strong> or <strong>memory_object_create</strong> call. 91<p> 92The memory manager is expected to use <strong>memory_object_data_supply</strong> to 93return at least the specified data, with as much access as it 94can allow. If the 95memory manager cannot provide the data (for example, because 96of a hardware error), 97it can use the <strong>memory_object_data_error</strong> call. The 98memory manager can also 99use <strong>memory_object_data_unavailable</strong> to tell the kernel 100to supply zero-filled 101memory for the region. 102<h3>RETURN VALUES</h3> 103<p> 104Only generic errors apply. 105<h3>RELATED INFORMATION</h3> 106<p> 107Functions: 108<a href="memory_object_data_error.html"><strong>memory_object_data_error</strong></a>, 109<a href="memory_object_data_supply.html"><strong>memory_object_data_supply</strong></a>, 110<a href="MO_data_unavailable.html"><strong>memory_object_data_unavailable</strong></a>, 111<a href="memory_object_server.html"><strong>memory_object_server</strong></a>, 112<a href="SMO_server.html"><strong>seqnos_memory_object_server</strong></a>. 113 114