<dec f='src/src/sys/uvm/uvm_amap.h' l='72' type='void amap_copy(struct vm_map * , struct vm_map_entry * , int , vaddr_t , vaddr_t )'/>
<doc f='src/src/sys/uvm/uvm_amap.h' l='72'>/* clear amap needs-copy flag */</doc>
<def f='src/src/sys/uvm/uvm_amap.c' l='761' ll='945' type='void amap_copy(struct vm_map * map, struct vm_map_entry * entry, int flags, vaddr_t startva, vaddr_t endva)'/>
<doc f='src/src/sys/uvm/uvm_amap.c' l='747'>/*
 * amap_copy: ensure that a map entry&apos;s &quot;needs_copy&quot; flag is false
 *	by copying the amap if necessary.
 *
 * =&gt; an entry with a null amap pointer will get a new (blank) one.
 * =&gt; the map that the map entry belongs to must be locked by caller.
 * =&gt; the amap currently attached to &quot;entry&quot; (if any) must be unlocked.
 * =&gt; if canchunk is true, then we may clip the entry into a chunk
 * =&gt; &quot;startva&quot; and &quot;endva&quot; are used only if canchunk is true.  they are
 *     used to limit chunking (e.g. if you have a large space that you
 *     know you are going to need to allocate amaps for, there is no point
 *     in allowing that to be chunked)
 */</doc>
<use f='src/src/sys/uvm/uvm_fault.c' l='237' u='c' c='uvmfault_amapcopy'/>
<use f='src/src/sys/uvm/uvm_map.c' l='2668' u='c' c='uvm_map_extract'/>
<use f='src/src/sys/uvm/uvm_map.c' l='3373' u='c' c='uvm_map_pageable'/>
<use f='src/src/sys/uvm/uvm_map.c' l='3628' u='c' c='uvm_map_pageable_all'/>
<use f='src/src/sys/uvm/uvm_map.c' l='4256' u='c' c='uvm_mapent_forkshared'/>
<use f='src/src/sys/uvm/uvm_map.c' l='4320' u='c' c='uvm_mapent_forkcopy'/>
