+<h2>memory_object_synchronize</h2>
+<hr>
+<p>
+<strong>Server Interface</strong> - Forward a client's request to synchronize data with its image in backing store.
+<h3>SYNOPSIS</h3>
+<pre>
+<strong>kern_return_t memory_object_synchronize</strong>
+ <strong>(memory_object_t</strong> <var>memory_object</var>,
+ <strong>memory_object_control_t</strong> <var>memory_control</var>,
+ <strong>vm_offset_t</strong> <var>offset</var>,
+ <strong>vm_offset_t</strong> <var>length</var>,
+ <strong>memory_object</strong> <var>sync_flags</var><strong>);</strong>
+
+
+<strong>kern_return_t seqnos_memory_object_synchronize</strong>
+ <strong>(memory_object_t</strong> <var>memory_object</var>,
+ <strong>mach_port_seqno_t</strong> <var>seqno</var>,
+ <strong>memory_object_control_t</strong> <var>memory_control</var>,
+ <strong>vm_offset_t</strong> <var>offset</var>,
+ <strong>vm_offset_t</strong> <var>length</var>,
+ <strong>memory_object</strong> <var>sync_flags</var><strong>);</strong>
+</pre>
+<h3>PARAMETERS</h3>
+<dl>
+<p>
+<dt> <var>memory_object</var>
+<dd>
+[in abstract-memory-object (receive) right]
+The abstract memory
+object port that represents the memory object data.
+<p>
+<dt> <var>seqno</var>
+<dd>
+[in scalar]
+The sequence number of this message relative to the abstract
+memory object port.
+<p>
+<dt> <var>memory_control</var>
+<dd>
+[in memory-cache-control send right]
+The memory cache control port
+to be used for a response by the memory manager. If the memory
+object has been supplied to more than one kernel, this parameter
+identifies the kernel that is making the call.
+<p>
+<dt> <var>offset</var>
+<dd>
+[in scalar]
+The offset within the memory object.
+<p>
+<dt> <var>length</var>
+<dd>
+[in scalar]
+The number of bytes cleaned or flushed, starting at <var>offset</var>.
+The number converts to an integral number of virtual pages.
+<p>
+<dt> <var>sync_flags</var>
+<dd>
+[in scalar]
+The bit-wise OR of flags affecting the synchronization.
+<dl>
+<p>
+<dt> <strong>VM_SYNC_INVALIDATE</strong>
+<dd>
+Flushes pages in the range. Only precious pages are returned
+to the memory manager.
+<p>
+<dt> <strong>VM_SYNC_SYNCHRONOUS</strong>
+<dd>
+Writes dirty and precious pages back to the memory manager,
+waits for pages to reach backing storage.
+<p>
+<dt> <strong>VM_SYNC_ASYNCHRONOUS</strong>
+<dd>
+Writes dirty and precious pages back to the memory manager,
+returns without waiting for pages to reach backing storage.
+</dl>
+</dl>
+<h3>DESCRIPTION</h3>
+<p>
+A <strong>memory_object_synchronize</strong> function is called as the
+result of a kernel
+message indicating that a client wishes to synchronize the contents
+of a range of a
+memory object with its backing storage image. This message would have been
+preceded by <strong>memory_object_data_return</strong> messages cleaning
+or flushing the
+specified range.
+<p>
+Depending on the client's supplied <var>sync_flags</var>, the manager waits
+for the pages
+to reach the desired state and then replies with
+<strong>memory_object_synchronize_completed</strong> at which time the
+client returns from its <strong>vm_msync</strong> call. Multiple
+synchronize requests may be outstanding at a time but they will not overlap.
+<h3>RETURN VALUES</h3>
+<p>
+Only generic errors apply.
+<h3>RELATED INFORMATION</h3>
+<p>
+Functions:
+<a href="vm_msync.html"><strong>vm_msync</strong></a>,
+<a href="MO_SY_completed.html"><strong>memory_object_synchronize_completed</strong></a>,
+<a href="memory_object_data_return.html"><strong>memory_object_data_return</strong></a>,
+<a href="memory_object_server.html"><strong>memory_object_server</strong></a>,
+<a href="SMO_server.html"><strong>seqnos_memory_object_server</strong></a>.