<dec f='src/src/sys/uvm/uvm_map.h' l='279' type='int uvm_map_extract(struct vm_map * , vaddr_t , vsize_t , struct vm_map * , vaddr_t * , int )'/>
<use f='src/src/sys/uvm/uvm_io.c' l='100' u='c' c='uvm_io'/>
<def f='src/src/sys/uvm/uvm_map.c' l='2557' ll='2892' type='int uvm_map_extract(struct vm_map * srcmap, vaddr_t start, vsize_t len, struct vm_map * dstmap, vaddr_t * dstaddrp, int flags)'/>
<doc f='src/src/sys/uvm/uvm_map.c' l='2538'>/*
 * uvm_map_extract: extract a mapping from a map and put it somewhere
 *	(maybe removing the old mapping)
 *
 * =&gt; maps should be unlocked (we will write lock them)
 * =&gt; returns 0 on success, error code otherwise
 * =&gt; start must be page aligned
 * =&gt; len must be page sized
 * =&gt; flags:
 *      UVM_EXTRACT_REMOVE: remove mappings from srcmap
 *      UVM_EXTRACT_CONTIG: abort if unmapped area (advisory only)
 *      UVM_EXTRACT_QREF: for a temporary extraction do quick obj refs
 *      UVM_EXTRACT_FIXPROT: set prot to maxprot as we go
 *      UVM_EXTRACT_PROT_ALL: set prot to UVM_PROT_ALL as we go
 *    &gt;&gt;&gt;NOTE: if you set REMOVE, you are not allowed to use CONTIG or QREF!&lt;&lt;&lt;
 *    &gt;&gt;&gt;NOTE: QREF&apos;s must be unmapped via the QREF path, thus should only
 *             be used from within the kernel in a kernel level map &lt;&lt;&lt;
 */</doc>
<use f='src/src/sys/uvm/uvm_mremap.c' l='210' u='c' c='uvm_mremap'/>
