]> git.saurik.com Git - apple/xnu.git/blob - osfmk/man/memory_object_data_error.html
xnu-2422.1.72.tar.gz
[apple/xnu.git] / osfmk / man / memory_object_data_error.html
1 <h2>memory_object_data_error</h2>
2 <hr>
3 <p>
4 <strong>Function</strong> - An error prevents the supply of previously requested data.
5 <h3>SYNOPSIS</h3>
6 <pre>
7 <strong>kern_return_t memory_object_data_error</strong>
8 <strong>(memory_object_control_t</strong> <var>memory_control</var>,
9 <strong>vm_offset_t</strong> <var>offset</var>,
10 <strong>vm_size_t</strong> <var>size</var>,
11 <strong>kern_return_t</strong> <var>reason</var><strong>);</strong>
12 </pre>
13 <h3>PARAMETERS</h3>
14 <dl>
15 <p>
16 <dt> <var>memory_control</var>
17 <dd>
18 [in memory-cache-control send right]
19 The memory cache control port
20 to be used by the memory manager for cache management requests.
21 This port is provided by the kernel in a <strong>memory_object_create</strong> call.
22 <p>
23 <dt> <var>offset</var>
24 <dd>
25 [in scalar]
26 The offset within the memory object, in bytes.
27 <p>
28 <dt> <var>size</var>
29 <dd>
30 [in scalar]
31 The number of bytes of data (starting at <var>offset</var>). The number
32 must convert to an integral number of memory object pages.
33 <p>
34 <dt> <var>reason</var>
35 <dd>
36 [in scalar]
37 Reason for the error.
38 </dl>
39 <h3>DESCRIPTION</h3>
40 <p>
41 The <strong>memory_object_data_error</strong> function indicates that
42 the memory manager
43 cannot provide the kernel with the data requested for the given region,
44 specifying a reason for the error.
45 <p>
46 When the kernel issues a <strong>memory_object_data_request</strong> call, the memory
47 manager can respond with a <strong>memory_object_data_error</strong>
48 call to indicate that the
49 page cannot be retrieved, and that a memory failure exception should be raised
50 in any client threads that are waiting for the page. Clients
51 are permitted to catch
52 these exceptions and retry their page faults. As a result, this
53 call can be used to
54 report transient errors as well as permanent ones. A memory manager can use
55 this call for both hardware errors (for example, disk failures) and software
56 errors (for example, accessing data that does not exist or is protected).
57 <h3>NOTES</h3>
58 <p>
59 If reason has a system code of <var>err_kern</var>, the kernel will substitute
60 an error value
61 of <strong>KERN_MEMORY_ERROR</strong>.
62 <h3>RETURN VALUES</h3>
63 <p>
64 Only generic errors apply.
65 <h3>RELATED INFORMATION</h3>
66 <p>
67 Functions:
68 <a href="memory_object_data_request.html"><strong>memory_object_data_request</strong></a>,
69 <a href="memory_object_data_supply.html"><strong>memory_object_data_supply</strong></a>,
70 <a href="MO_data_unavailable.html"><strong>memory_object_data_unavailable</strong></a>.