Skip site navigation (1)Skip section navigation (2)

FreeBSD Man Pages

Man Page or Keyword Search:
Man Architecture
Apropos Keyword Search (all sections) Output format
home | help
VM_MAP_FIND(9)	       FreeBSD Kernel Developer's Manual	VM_MAP_FIND(9)

NAME
     vm_map_find -- find a free	region within a	map, and optionally map	a
     vm_object

SYNOPSIS
     #include <sys/param.h>
     #include <vm/vm.h>
     #include <vm/vm_map.h>

     int
     vm_map_find(vm_map_t map, vm_object_t object, vm_ooffset_t	offset,
	 vm_offset_t *addr, vm_size_t length, int find_space, vm_prot_t	prot,
	 vm_prot_t max,	int cow);

DESCRIPTION
     The vm_map_find() function	attempts to find a free	region in the target
     map, with the given length, and will also optionally create a mapping of
     object.

     The arguments offset, prot, max, and cow are passed unchanged to
     vm_map_insert(9) when creating the	mapping, if and	only if	a free region
     is	found.

     If	object is non-NULL, the	reference count	on the object must be incre-
     mented by the caller before calling this function to account for the new
     entry.

     If	find_space is either VMFS_ALIGNED_SPACE	or VMFS_ANY_SPACE, the func-
     tion will call vm_map_findspace(9)	to discover a free region.  Moreover,
     if	find_space is VMFS_ALIGNED_SPACE, the address of the free region will
     be	optimized for the use of superpages.  Otherwise, if find_space is
     VMFS_NO_SPACE, vm_map_insert(9) is	called with the	given address, addr.

IMPLEMENTATION NOTES
     This function acquires a lock on map by calling vm_map_lock(9), and holds
     it	until the function returns.

     The search	for a free region is defined to	be first-fit, from the address
     addr onwards.

RETURN VALUES
     The vm_map_find() function	returns	KERN_SUCCESS if	the mapping was	suc-
     cessfully created.	 If space could	not be found or	find_space was
     VMFS_NO_SPACE and the given address, addr,	was already mapped,
     KERN_NO_SPACE will	be returned.  If the discovered	range turned out to be
     bogus, KERN_INVALID_ADDRESS will be returned.

SEE ALSO
     vm_map(9),	vm_map_findspace(9), vm_map_insert(9), vm_map_lock(9)

AUTHORS
     This manual page was written by Bruce M Simpson <bms@spc.org>.

FreeBSD	9.2			 May 10, 2008			   FreeBSD 9.2

NAME | SYNOPSIS | DESCRIPTION | IMPLEMENTATION NOTES | RETURN VALUES | SEE ALSO | AUTHORS

Want to link to this manual page? Use this URL:
<http://www.freebsd.org/cgi/man.cgi?query=vm_map_find&sektion=9&manpath=FreeBSD+9.2-RELEASE>

home | help