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