## vm_behavior_set

Function - Specify expected access patterns for the target VM region.

### SYNOPSIS

    kern_return_t   vm_behavior_set
                    (vm_task_t                          target_task,
                     vm_address_t                           address,
                     vm_size_t                                 size,
                     vm_behavior_t                         behavior);

### PARAMETERS

target_task
  [in task send right] The port for the task in whose address space the memory object behavior is to be set.

address
  [in scalar] The starting address for the memory region.

size
  [in scalar] The number of bytes in the region.

behavior
  [in scalar] The expected reference pattern for the memory. Possible values are:

  VM_BEHAVIOR_DEFAULT
    The system's default behavior. Assumes strong locality of reference, so LRU page replacement, possibly with pre-fetch, would be appropriate.

  VM_BEHAVIOR_RANDOM
    No particular order expected. Assumes weak locality of reference, so LRU page replacement may be ineffective.

  VM_BEHAVIOR_SEQUENTIAL
    Forward sequential order.

  VM_BEHAVIOR_RSEQNTL
    Reverse sequential order.

### DESCRIPTION

The vm_behavior_set function informs the kernel of the expected access pattern for a region of memory. The kernel uses this information to bias its prefetch and page replacement algorithms.

The region starts at the beginning of the virtual page containing address; it ends at the end of the virtual page containing address + size - 1. Because of this rounding to virtual page boundaries, the amount of memory affected may be greater than size. Use host_page_size to find the current virtual page size.

### NOTES

This interface is machine word length specific because of the virtual address parameter.

### RETURN VALUES

KERN_INVALID_ADDRESS
  The specified address is illegal or reserved.

### RELATED INFORMATION

Functions: vm_region, host_page_size.