vm_reserv.h revision 250577
1254721Semaste/*-
2254721Semaste * Copyright (c) 2002-2006 Rice University
3254721Semaste * Copyright (c) 2007-2008 Alan L. Cox <alc@cs.rice.edu>
4254721Semaste * All rights reserved.
5254721Semaste *
6254721Semaste * This software was developed for the FreeBSD Project by Alan L. Cox,
7254721Semaste * Olivier Crameri, Peter Druschel, Sitaram Iyer, and Juan Navarro.
8254721Semaste *
9254721Semaste * Redistribution and use in source and binary forms, with or without
10254721Semaste * modification, are permitted provided that the following conditions
11254721Semaste * are met:
12254721Semaste * 1. Redistributions of source code must retain the above copyright
13254721Semaste *    notice, this list of conditions and the following disclaimer.
14254721Semaste * 2. Redistributions in binary form must reproduce the above copyright
15254721Semaste *    notice, this list of conditions and the following disclaimer in the
16254721Semaste *    documentation and/or other materials provided with the distribution.
17254721Semaste *
18254721Semaste * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19296417Sdim * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20254721Semaste * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21254721Semaste * A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT
22254721Semaste * HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
23254721Semaste * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
24254721Semaste * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
25254721Semaste * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
26254721Semaste * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27254721Semaste * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
28254721Semaste * WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29254721Semaste * POSSIBILITY OF SUCH DAMAGE.
30254721Semaste *
31254721Semaste * $FreeBSD: head/sys/vm/vm_reserv.h 250577 2013-05-12 16:50:18Z alc $
32254721Semaste */
33254721Semaste
34254721Semaste/*
35254721Semaste *	Superpage reservation management definitions
36254721Semaste */
37254721Semaste
38254721Semaste#ifndef	_VM_RESERV_H_
39254721Semaste#define	_VM_RESERV_H_
40254721Semaste
41254721Semaste#ifdef _KERNEL
42254721Semaste
43254721Semaste#if VM_NRESERVLEVEL > 0
44254721Semaste
45254721Semaste/*
46254721Semaste * The following functions are only to be used by the virtual memory system.
47296417Sdim */
48254721Semastevm_page_t	vm_reserv_alloc_contig(vm_object_t object, vm_pindex_t pindex,
49254721Semaste		    u_long npages, vm_paddr_t low, vm_paddr_t high,
50254721Semaste		    u_long alignment, vm_paddr_t boundary);
51254721Semastevm_page_t	vm_reserv_alloc_page(vm_object_t object, vm_pindex_t pindex,
52254721Semaste		    vm_page_t mpred);
53254721Semastevoid		vm_reserv_break_all(vm_object_t object);
54254721Semasteboolean_t	vm_reserv_free_page(vm_page_t m);
55254721Semastevoid		vm_reserv_init(void);
56254721Semasteint		vm_reserv_level_iffullpop(vm_page_t m);
57254721Semasteboolean_t	vm_reserv_reactivate_page(vm_page_t m);
58254721Semasteboolean_t	vm_reserv_reclaim_contig(u_long npages, vm_paddr_t low,
59254721Semaste		    vm_paddr_t high, u_long alignment, vm_paddr_t boundary);
60254721Semasteboolean_t	vm_reserv_reclaim_inactive(void);
61254721Semastevoid		vm_reserv_rename(vm_page_t m, vm_object_t new_object,
62254721Semaste		    vm_object_t old_object, vm_pindex_t old_object_offset);
63254721Semastevm_paddr_t	vm_reserv_startup(vm_offset_t *vaddr, vm_paddr_t end,
64254721Semaste		    vm_paddr_t high_water);
65296417Sdim
66296417Sdim#endif	/* VM_NRESERVLEVEL > 0 */
67296417Sdim#endif	/* _KERNEL */
68254721Semaste#endif	/* !_VM_RESERV_H_ */
69254721Semaste