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.\" $FreeBSD$ 28.\" 29.Dd July 17, 2001 30.Dt VM_PAGE_INSERT 9 31.Os 32.Sh NAME 33.Nm vm_page_insert , 34.Nm vm_page_remove 35.Nd "add/remove page from an object" 36.Sh SYNOPSIS 37.In sys/param.h 38.In vm/vm.h 39.In vm/vm_page.h 40.Ft void 41.Fn vm_page_insert "vm_page_t m" "vm_object_t object" "vm_pindex_t pindex" 42.Ft void 43.Fn vm_page_remove "vm_page_t m" 44.Sh DESCRIPTION 45The 46.Fn vm_page_insert 47function adds a page to the given object at the given index. 48The page is added to both the VM page hash table and to the 49object's list of pages, but the hardware page tables are not updated. 50In the case of a user page, it will be faulted in when it is 51accessed. 52If the page is a kernel page, the caller is expected to 53handle adding the page to the kernel's pmap. 54.Pp 55If 56.Dv PG_WRITEABLE 57is set in the page's flags, 58.Dv OBJ_WRITEABLE 59and 60.Dv OBJ_MIGHTBEDIRTY 61are set in the object's flags. 62.Pp 63The 64.Fn vm_page_remove 65function removes the given page from its object, and from the 66VM page hash table. 67The page must be busy prior to this call, or the system will panic. 68The pmap entry for the page is not removed by this function. 69.Pp 70The arguments to 71.Fn vm_page_insert 72are: 73.Bl -tag -width ".Fa object" 74.It Fa m 75The page to add to the object. 76.It Fa object 77The object the page should be added to. 78.It Fa pindex 79The index into the object the page should be at. 80.El 81.Pp 82The arguments to 83.Fn vm_page_remove 84are: 85.Bl -tag -width ".Fa m" 86.It Fa m 87The page to remove. 88.El 89.Sh IMPLEMENTATION NOTES 90The index of a page in a VM object is the byte index into the 91same object truncated to a page boundary. 92For example, if the page size is 4096 bytes, and the address 93in the object is 81944, the page index is 20. 94.Sh AUTHORS 95This manual page was written by 96.An Chad David Aq davidc@acns.ab.ca . 97