1 <h2>memory_object_data_error
</h2>
<hr>
<p>
<strong>Function
</strong> - An error prevents the supply of previously requested data.
<h3>SYNOPSIS
</h3>
<pre>
<strong>kern_return_t memory_object_data_error
</strong>
<strong>(memory_object_control_t
</strong> <var>memory_control
</var>,
<strong>vm_offset_t
</strong> <var>offset
</var>,
<strong>vm_size_t
</strong> <var>size
</var>,
<strong>kern_return_t
</strong> <var>reason
</var><strong>);
</strong>
</pre>
<h3>PARAMETERS
</h3>
<dl>
<p>
<dt> <var>memory_control
</var>
<dd>
[in memory-cache-control send right]
The memory cache control port
to be used by the memory manager for cache management requests.
This port is provided by the kernel in a
<strong>memory_object_create
</strong> call.
<p>
<dt> <var>offset
</var>
<dd>
[in scalar]
The offset within the memory object, in bytes.
<p>
<dt> <var>size
</var>
<dd>
[in scalar]
The number of bytes of data (starting at
<var>offset
</var>). The number
must convert to an integral number of memory object pages.
<p>
<dt> <var>reason
</var>
<dd>
[in scalar]
Reason for the error.
</dl>
<h3>DESCRIPTION
</h3>
<p>
The
<strong>memory_object_data_error
</strong> function indicates that
the memory manager
cannot provide the kernel with the data requested for the given region,
specifying a reason for the error.
<p>
When the kernel issues a
<strong>memory_object_data_request
</strong> call, the memory
manager can respond with a
<strong>memory_object_data_error
</strong>
call to indicate that the
page cannot be retrieved, and that a memory failure exception should be raised
in any client threads that are waiting for the page. Clients
are permitted to catch
these exceptions and retry their page faults. As a result, this
call can be used to
report transient errors as well as permanent ones. A memory manager can use
this call for both hardware errors (for example, disk failures) and software
errors (for example, accessing data that does not exist or is protected).
<h3>NOTES
</h3>
<p>
If reason has a system code of
<var>err_kern
</var>, the kernel will substitute
an error value
of
<strong>KERN_MEMORY_ERROR
</strong>.
<h3>RETURN VALUES
</h3>
<p>
Only generic errors apply.
<h3>RELATED INFORMATION
</h3>
<p>
Functions:
<a href=
"memory_object_data_request.html"><strong>memory_object_data_request
</strong></a>,
<a href=
"memory_object_data_supply.html"><strong>memory_object_data_supply
</strong></a>,
<a href=
"MO_data_unavailable.html"><strong>memory_object_data_unavailable
</strong></a>.