]> git.saurik.com Git - apple/xnu.git/blob - osfmk/man/memory_object_data_request.html
xnu-2422.1.72.tar.gz
[apple/xnu.git] / osfmk / man / memory_object_data_request.html
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]
29 The abstract memory
30 object port that represents the memory object data.
31 <p>
32 <dt> <var>seqno</var>
33 <dd>
34 [in scalar]
35 The sequence number of this message relative to the abstract
36 memory object port.
37 <p>
38 <dt> <var>memory_control</var>
39 <dd>
40 [in memory-cache-control send right]
41 The memory cache control port
42 to be used for a response by the memory manager. If the memory
43 object has been supplied to more than one kernel, this parameter
44 identifies the kernel that is making the call.
45 <p>
46 <dt> <var>offset</var>
47 <dd>
48 [in scalar]
49 The offset within the memory object.
50 <p>
51 <dt> <var>length</var>
52 <dd>
53 [in scalar]
54 The number of bytes requested, starting at <var>offset</var>. The
55 number converts to an integral number of virtual pages.
56 <p>
57 <dt> <var>desired_access</var>
58 <dd>
59 [in scalar]
60 The memory access modes to be allowed for the cached
61 data. Possible values are obtained by or'ing together the following
62 values:
63 <dl>
64 <p>
65 <dt> <strong>VM_PROT_READ</strong>
66 <dd>
67 Allows read access.
68 <p>
69 <dt> <strong>VM_PROT_WRITE</strong>
70 <dd>
71 Allows write access.
72 <p>
73 <dt> <strong>VM_PROT_EXECUTE</strong>
74 <dd>
75 Allows execute access.
76 </dl>
77 </dl>
78 <h3>DESCRIPTION</h3>
79 <p>
80 A <strong>memory_object_data_request</strong> function is called as
81 the result of a kernel
82 message requesting data from the specified memory object, for at least the
83 access specified.
84 <p>
85 The kernel issues this call after a cache miss (that is, a page
86 fault for which the
87 kernel does not have the data). The kernel requests only amounts
88 of data that are
89 multiples of the page size included in the
90 <strong>memory_object_init</strong> or <strong>memory_object_create</strong> call.
91 <p>
92 The memory manager is expected to use <strong>memory_object_data_supply</strong> to
93 return at least the specified data, with as much access as it
94 can allow. If the
95 memory manager cannot provide the data (for example, because
96 of a hardware error),
97 it can use the <strong>memory_object_data_error</strong> call. The
98 memory manager can also
99 use <strong>memory_object_data_unavailable</strong> to tell the kernel
100 to supply zero-filled
101 memory for the region.
102 <h3>RETURN VALUES</h3>
103 <p>
104 Only generic errors apply.
105 <h3>RELATED INFORMATION</h3>
106 <p>
107 Functions:
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