/*-1* SPDX-License-Identifier: (BSD-3-Clause AND MIT-CMU)2*3* Copyright (c) 1991, 19934* The Regents of the University of California. All rights reserved.5*6* This code is derived from software contributed to Berkeley by7* The Mach Operating System project at Carnegie-Mellon University.8*9* Redistribution and use in source and binary forms, with or without10* modification, are permitted provided that the following conditions11* are met:12* 1. Redistributions of source code must retain the above copyright13* notice, this list of conditions and the following disclaimer.14* 2. Redistributions in binary form must reproduce the above copyright15* notice, this list of conditions and the following disclaimer in the16* documentation and/or other materials provided with the distribution.17* 3. Neither the name of the University nor the names of its contributors18* may be used to endorse or promote products derived from this software19* without specific prior written permission.20*21* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND22* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE23* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE24* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE25* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL26* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS27* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)28* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT29* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY30* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF31* SUCH DAMAGE.32*33*34* Copyright (c) 1987, 1990 Carnegie-Mellon University.35* All rights reserved.36*37* Author: Avadis Tevanian, Jr.38*39* Permission to use, copy, modify and distribute this software and40* its documentation is hereby granted, provided that both the copyright41* notice and this permission notice appear in all copies of the42* software, derivative works or modified versions, and any portions43* thereof, and that both notices appear in supporting documentation.44*45* CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"46* CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND47* FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.48*49* Carnegie Mellon requests users of this software to return to50*51* Software Distribution Coordinator or [email protected]52* School of Computer Science53* Carnegie Mellon University54* Pittsburgh PA 15213-389055*56* any improvements or extensions that they make and grant Carnegie the57* rights to redistribute these changes.58*/5960#ifndef _VM_VM_PAGEOUT_H_61#define _VM_VM_PAGEOUT_H_6263#ifdef _KERNEL6465/*66* Header file for pageout daemon.67*/6869/*70* Exported data structures.71*/7273extern u_long vm_page_max_user_wired;74extern int vm_pageout_page_count;7576#define VM_OOM_MEM 177#define VM_OOM_MEM_PF 278#define VM_OOM_SWAPZ 37980/*81* vm_lowmem flags.82*/83#define VM_LOW_KMEM 0x0184#define VM_LOW_PAGES 0x0285#define VM_LOW_MBUFS 0x048687/*88* Exported routines.89*/9091/*92* Signal pageout-daemon and wait for it.93*/9495void vm_wait(vm_object_t obj);96int vm_wait_intr(vm_object_t obj);97void vm_waitpfault(struct domainset *, int timo);98void vm_wait_domain(int domain);99void vm_wait_min(void);100void vm_wait_severe(void);101102int vm_pageout_flush(vm_page_t *mc, int count, int flags, bool *eio);103void vm_pageout_oom(int shortage);104105#endif /* _KERNEL */106#endif /* _VM_VM_PAGEOUT_H_ */107108109