xref: /freebsd/share/man/man9/vm_page_wire.9 (revision 0fca6ea1d4eea4c934cfff25ac9ee8ad6fe95583)
1.\"
2.\" Copyright (C) 2001 Chad David <davidc@acns.ab.ca>. All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice(s), this list of conditions and the following disclaimer as
9.\"    the first lines of this file unmodified other than the possible
10.\"    addition of one or more copyright notices.
11.\" 2. Redistributions in binary form must reproduce the above copyright
12.\"    notice(s), this list of conditions and the following disclaimer in the
13.\"    documentation and/or other materials provided with the distribution.
14.\"
15.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY
16.\" EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18.\" DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
19.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20.\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21.\" SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
22.\" CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
25.\" DAMAGE.
26.\"
27.Dd September 9, 2019
28.Dt VM_PAGE_WIRE 9
29.Os
30.Sh NAME
31.Nm vm_page_wire ,
32.Nm vm_page_unwire ,
33.Nm vm_page_unwire_noq
34.Nd "wire and unwire pages"
35.Sh SYNOPSIS
36.In sys/param.h
37.In vm/vm.h
38.In vm/vm_page.h
39.Ft void
40.Fn vm_page_wire "vm_page_t m"
41.Ft bool
42.Fn vm_page_wire_mapped "vm_page_t m"
43.Ft void
44.Fn vm_page_unwire "vm_page_t m" "int queue"
45.Ft bool
46.Fn vm_page_unwire_noq "vm_page_t m"
47.Sh DESCRIPTION
48The
49.Fn vm_page_wire
50and
51.Fn vm_page_wire_mapped
52functions wire the page, which prevents it from being reclaimed by the page
53daemon or when its containing object is destroyed.
54Both functions require that the page belong to an object.
55The
56.Fn vm_page_wire_mapped
57function is for use by the
58.Xr pmap 9
59layer following a lookup.
60This function may fail if mappings of the page are concurrently
61being destroyed, in which case it will return false.
62.Pp
63The
64.Fn vm_page_unwire
65and
66.Fn vm_page_unwire_noq
67functions release a wiring of a page.
68The
69.Fn vm_page_unwire
70function takes a queue index and will insert the page into the
71corresponding page queue upon releasing its last wiring.
72If the page does not belong to an object and no other references
73to the page exist,
74.Fn vm_page_unwire
75will free the page.
76.Fn vm_page_unwire_noq
77releases the wiring and returns true if it was the last wiring
78of the page.
79.Sh AUTHORS
80This manual page was written by
81.An Chad David Aq Mt davidc@acns.ab.ca .
82