1<h2>memory_object_lock_completed</h2> 2<hr> 3<p> 4<strong>Server Interface</strong> - Report to memory manager that a previous consistency control request has been handled. 5<h3>SYNOPSIS</h3> 6<pre> 7<strong>kern_return_t memory_object_lock_completed</strong> 8 <strong>(memory_object_t</strong> <var>reply_port</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><strong>);</strong> 12 13 14<strong>kern_return_t seqnos_memory_object_lock_completed</strong> 15 <strong>(memory_object_t</strong> <var>reply_port</var>, 16 <strong>mach_port_seqno_t</strong> <var>seqno</var>, 17 <strong>memory_object_control_t</strong> <var>memory_control</var>, 18 <strong>vm_offset_t</strong> <var>offset</var>, 19 <strong>vm_size_t</strong> <var>length</var><strong>);</strong> 20</pre> 21<h3>PARAMETERS</h3> 22<dl> 23<p> 24<dt> <var>reply_port</var> 25<dd> 26[in reply (receive) right] 27The port supplied in the corresponding 28<strong>memory_object_lock_request</strong> call. 29<p> 30<dt> <var>seqno</var> 31<dd> 32[in scalar] 33The sequence number of this message relative to the port 34named in the <strong>memory_object_lock_completed</strong> message. 35<p> 36<dt> <var>memory_control</var> 37<dd> 38[in memory-cache-control send right] 39The memory cache control port 40to be used for a response by the memory manager. If the memory 41object has been supplied to more than one kernel, this parameter 42identifies the kernel that is making the call. 43<p> 44<dt> <var>offset</var> 45<dd> 46[in scalar] 47The offset within the memory object. 48<p> 49<dt> <var>length</var> 50<dd> 51[in scalar] 52The number of bytes to which the call refers, starting at 53<var>offset</var>. The number converts to an integral number of memory object 54pages. 55</dl> 56<h3>DESCRIPTION</h3> 57<p> 58A <strong>memory_object_lock_completed</strong> function is called as 59the result of a kernel 60message confirming the kernel's action in response to a 61<strong>memory_object_lock_request</strong> call from the memory manager. 62The memory manager can use the <strong>memory_object_lock_request</strong> call to: 63<ul> 64<li> 65Alter access restrictions specified in the <strong>memory_object_data_supply</strong> 66call or a previous <strong>memory_object_lock_request</strong> call. 67<p> 68<li> 69Write back modifications made in memory. 70<p> 71<li> 72Invalidate its cached data. 73</ul> 74<p> 75When the kernel completes the requested actions, it calls 76<strong>memory_object_lock_completed</strong> (asynchronously) using 77the port explicitly provided in the 78<strong>memory_object_lock_request</strong> call. Because the memory manager cannot 79know which pages have been modified, or even which pages remain in the 80cache, it cannot know how many pages will be written back in response to a 81<strong>memory_object_lock_request</strong> call. Receiving the 82<strong>memory_object_lock_completed</strong> call is the only sure 83means of detecting completion. The completion call 84includes the offset and length values from the consistency request 85to distinguish 86it from other consistency requests. 87<h3>RETURN VALUES</h3> 88<p> 89Only generic errors apply. 90<h3>RELATED INFORMATION</h3> 91<p> 92Functions: 93<a href="memory_object_lock_request.html"><strong>memory_object_lock_request</strong></a>, 94<a href="memory_object_server.html"><strong>memory_object_server</strong></a>, 95<a href="SMO_server.html"><strong>seqnos_memory_object_server</strong></a>. 96