xref: /dflybsd-src/share/man/man9/vm_map_findspace.9 (revision c616d3786462c4bbb32602d276dfb62c4d97ef77)
1a3034d50SVenkatesh Srinivas.\"
2a3034d50SVenkatesh Srinivas.\" Copyright (c) 2003 Bruce M Simpson <bms@spc.org>
3a3034d50SVenkatesh Srinivas.\" All rights reserved.
4a3034d50SVenkatesh Srinivas.\"
5a3034d50SVenkatesh Srinivas.\" Redistribution and use in source and binary forms, with or without
6a3034d50SVenkatesh Srinivas.\" modification, are permitted provided that the following conditions
7a3034d50SVenkatesh Srinivas.\" are met:
8a3034d50SVenkatesh Srinivas.\" 1. Redistributions of source code must retain the above copyright
9a3034d50SVenkatesh Srinivas.\"    notice, this list of conditions and the following disclaimer.
10a3034d50SVenkatesh Srinivas.\" 2. Redistributions in binary form must reproduce the above copyright
11a3034d50SVenkatesh Srinivas.\"    notice, this list of conditions and the following disclaimer in the
12a3034d50SVenkatesh Srinivas.\"    documentation and/or other materials provided with the distribution.
13a3034d50SVenkatesh Srinivas.\"
14a3034d50SVenkatesh Srinivas.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15a3034d50SVenkatesh Srinivas.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16a3034d50SVenkatesh Srinivas.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17a3034d50SVenkatesh Srinivas.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18a3034d50SVenkatesh Srinivas.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19a3034d50SVenkatesh Srinivas.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20a3034d50SVenkatesh Srinivas.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21a3034d50SVenkatesh Srinivas.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22a3034d50SVenkatesh Srinivas.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23a3034d50SVenkatesh Srinivas.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24a3034d50SVenkatesh Srinivas.\" SUCH DAMAGE.
25a3034d50SVenkatesh Srinivas.\"
26a3034d50SVenkatesh Srinivas.\" $FreeBSD: src/share/man/man9/vm_map_findspace.9,v 1.5.22.1.4.1 2010/06/14 02:09:06 kensmith Exp $
27a3034d50SVenkatesh Srinivas.\"
28a3034d50SVenkatesh Srinivas.Dd December 8, 2010
29a3034d50SVenkatesh Srinivas.Dt VM_MAP_FINDSPACE 9
30a3034d50SVenkatesh Srinivas.Os
31a3034d50SVenkatesh Srinivas.Sh NAME
32a3034d50SVenkatesh Srinivas.Nm vm_map_findspace
33a3034d50SVenkatesh Srinivas.Nd find a free region within a map
34a3034d50SVenkatesh Srinivas.Sh SYNOPSIS
35a3034d50SVenkatesh Srinivas.In sys/param.h
36a3034d50SVenkatesh Srinivas.In vm/vm.h
37a3034d50SVenkatesh Srinivas.In vm/vm_map.h
38a3034d50SVenkatesh Srinivas.Ft int
39a3034d50SVenkatesh Srinivas.Fo vm_map_findspace
40a3034d50SVenkatesh Srinivas.Fa "vm_map_t map" "vm_offset_t start" "vm_size_t length" "vm_size_t align" "int flags" "vm_offset_t *addr"
41a3034d50SVenkatesh Srinivas.Fc
42a3034d50SVenkatesh Srinivas.Sh DESCRIPTION
43a3034d50SVenkatesh SrinivasThe
44a3034d50SVenkatesh Srinivas.Fn vm_map_findspace
45a3034d50SVenkatesh Srinivasfunction attempts to find a region with sufficient space in the
46a3034d50SVenkatesh Srinivas.Fa map
47a3034d50SVenkatesh Srinivasfor an object of size
48a3034d50SVenkatesh Srinivas.Fa length
49a3034d50SVenkatesh Srinivasat the address
50a3034d50SVenkatesh Srinivas.Fa addr
51a3034d50SVenkatesh Srinivaswith the alignment
52a3034d50SVenkatesh Srinivas.Fa align .
53a3034d50SVenkatesh SrinivasThe flags parameter can be:
54a3034d50SVenkatesh Srinivas.Bl -tag -width ".Fa flags"
55a3034d50SVenkatesh Srinivas.It Dv MAP_STACK
56a3034d50SVenkatesh SrinivasThe space returned is for stack regions and can intersect the stack address
57a3034d50SVenkatesh Srinivasspace.
58a3034d50SVenkatesh Srinivas.El
59a3034d50SVenkatesh Srinivas.Sh IMPLEMENTATION NOTES
60a3034d50SVenkatesh SrinivasIt is the caller's responsibility to obtain a lock on the
61a3034d50SVenkatesh Srinivas.Fa map
62a3034d50SVenkatesh Srinivasbefore calling this function.
63a3034d50SVenkatesh Srinivas.Pp
64a3034d50SVenkatesh SrinivasThis routine may call
6581555332SSascha Wildner.Fn pmap_growkernel
66a3034d50SVenkatesh Srinivasto grow the kernel's address space, if and only if the mapping is being
67a3034d50SVenkatesh Srinivasmade within the kernel address space, and if insufficient space remains
68a3034d50SVenkatesh Srinivasin the
69a3034d50SVenkatesh Srinivas.Va kernel_map .
70a3034d50SVenkatesh Srinivas.Sh RETURN VALUES
71a3034d50SVenkatesh SrinivasThe
72a3034d50SVenkatesh Srinivas.Fn vm_map_findspace
73a3034d50SVenkatesh Srinivasfunction returns the value 0 if successful, and
74a3034d50SVenkatesh Srinivas.Fa *addr
75a3034d50SVenkatesh Srinivaswill contain the first virtual address in the found region;
76a3034d50SVenkatesh Srinivasotherwise, the value 1 is returned.
77a3034d50SVenkatesh Srinivas.Sh AUTHORS
78a3034d50SVenkatesh SrinivasThis manual page was written by
79*c616d378SFranco Fichtner.An Bruce M Simpson Aq Mt bms@spc.org .
80