vm_msync
Function - Synchronize the specified region of virtual memory.
SYNOPSIS
kern_return_t vm_msync
(vm_task_t target_task,
vm_address_t address,
vm_size_t size,
target_task sync_flags);
PARAMETERS
- target_task
-
[in task send right]
The port for the task whose address space contains
the region.
- address
-
[in scalar]
The starting address for the region.
- size
-
[in scalar]
The number of bytes in the region.
- sync_flags
-
[in scalar]
The bit-wise OR of flags affecting the synchronization.
Specifying both VM_SYNC_SYNCHRONOUS and
VM_SYNC_ASYNCHRONOUS is invalid.
- VM_SYNC_INVALIDATE
-
Flushes pages in the range. Only precious pages are returned to
the memory manager unless either VM_SYNC_SYNCHRONOUS or
VM_SYNC_ASYNCHRONOUS is also set.
- VM_SYNC_SYNCHRONOUS
-
Writes dirty and precious pages back to the memory manager,
waits for pages to reach backing storage.
- VM_SYNC_ASYNCHRONOUS
-
Writes dirty and precious pages back to the memory manager,
returns without waiting for pages to reach backing storage.
DESCRIPTION
The vm_msync function synchronizes the contents of
a memory range with its
backing store image by flushing or cleaning the contents of the
specified range
to the range's memory manager, engaging in a synchronization protocol with
the manager (memory_object_synchronize).
The client does not return from
this call until the memory manager responds (to the kernel) with
memory_object_synchronize_completed.
NOTES
This interface is machine word length specific because of the virtual address
parameter.
RETURN VALUES
- KERN_INVALID_ADDRESS
-
The address is illegal or specifies a non-allocated region.
RELATED INFORMATION
Functions:
memory_object_synchronize,
memory_object_synchronize_completed.