Server Interface - Return memory object data to the appropriate memory manager.
kern_return_t memory_object_data_return (memory_object_t memory_object, memory_object_control_t memory_control, vm_offset_t offset, pointer_t data, boolean_t dirty, boolean_t kernel_copy); kern_return_t seqnos_memory_object_data_return (memory_object_t memory_object, mach_port_seqno_t seqno, memory_object_control_t memory_control, vm_offset_t offset, pointer_t data, boolean_t dirty, boolean_t kernel_copy);
A memory_object_data_return function is called as the result of a kernel message providing the memory manager with data that has been evicted from the physical memory cache.
The kernel writes back only data that has been modified or is precious. When the memory manager no longer needs the data (for example, after the data has been written to permanent storage), it should use vm_deallocate to release the memory resources.
The kernel can flush clean (that is, un-modified) non-precious pages at its own discretion. As a result, the memory manager cannot rely on the kernel to keep a copy of its data or even to provide notification that its data has been discarded.
The kernel may re-request the returned data at any time following this message (including immediately).
Only generic errors apply.
Functions: memory_object_data_supply, vm_deallocate, memory_object_synchronize, memory_object_server, seqnos_memory_object_server.