xref: /f-stack/freebsd/vm/vnode_pager.h (revision 22ce4aff)
1a9643ea8Slogwang /*-
2*22ce4affSfengbojiang  * SPDX-License-Identifier: BSD-3-Clause
3*22ce4affSfengbojiang  *
4a9643ea8Slogwang  * Copyright (c) 1990 University of Utah.
5a9643ea8Slogwang  * Copyright (c) 1991, 1993
6a9643ea8Slogwang  *	The Regents of the University of California.  All rights reserved.
7a9643ea8Slogwang  *
8a9643ea8Slogwang  * This code is derived from software contributed to Berkeley by
9a9643ea8Slogwang  * the Systems Programming Group of the University of Utah Computer
10a9643ea8Slogwang  * Science Department.
11a9643ea8Slogwang  *
12a9643ea8Slogwang  * Redistribution and use in source and binary forms, with or without
13a9643ea8Slogwang  * modification, are permitted provided that the following conditions
14a9643ea8Slogwang  * are met:
15a9643ea8Slogwang  * 1. Redistributions of source code must retain the above copyright
16a9643ea8Slogwang  *    notice, this list of conditions and the following disclaimer.
17a9643ea8Slogwang  * 2. Redistributions in binary form must reproduce the above copyright
18a9643ea8Slogwang  *    notice, this list of conditions and the following disclaimer in the
19a9643ea8Slogwang  *    documentation and/or other materials provided with the distribution.
20*22ce4affSfengbojiang  * 3. Neither the name of the University nor the names of its contributors
21a9643ea8Slogwang  *    may be used to endorse or promote products derived from this software
22a9643ea8Slogwang  *    without specific prior written permission.
23a9643ea8Slogwang  *
24a9643ea8Slogwang  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
25a9643ea8Slogwang  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26a9643ea8Slogwang  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27a9643ea8Slogwang  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
28a9643ea8Slogwang  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29a9643ea8Slogwang  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
30a9643ea8Slogwang  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31a9643ea8Slogwang  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32a9643ea8Slogwang  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33a9643ea8Slogwang  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34a9643ea8Slogwang  * SUCH DAMAGE.
35a9643ea8Slogwang  *
36a9643ea8Slogwang  *	@(#)vnode_pager.h	8.1 (Berkeley) 6/11/93
37a9643ea8Slogwang  * $FreeBSD$
38a9643ea8Slogwang  */
39a9643ea8Slogwang 
40a9643ea8Slogwang #ifndef	_VNODE_PAGER_
41a9643ea8Slogwang #define	_VNODE_PAGER_	1
42a9643ea8Slogwang 
43a9643ea8Slogwang #ifdef _KERNEL
44a9643ea8Slogwang 
45a9643ea8Slogwang int vnode_pager_generic_getpages(struct vnode *vp, vm_page_t *m,
46a9643ea8Slogwang     int count, int *rbehind, int *rahead, vop_getpages_iodone_t iodone,
47a9643ea8Slogwang     void *arg);
48a9643ea8Slogwang int vnode_pager_generic_putpages(struct vnode *vp, vm_page_t *m,
49*22ce4affSfengbojiang     int count, int flags, int *rtvals);
50a9643ea8Slogwang int vnode_pager_local_getpages(struct vop_getpages_args *ap);
51a9643ea8Slogwang int vnode_pager_local_getpages_async(struct vop_getpages_async_args *ap);
52*22ce4affSfengbojiang int vnode_pager_putpages_ioflags(int pager_flags);
53*22ce4affSfengbojiang void vnode_pager_undirty_pages(vm_page_t *ma, int *rtvals, int written,
54*22ce4affSfengbojiang     off_t eof, int lpos);
55a9643ea8Slogwang 
56a9643ea8Slogwang #endif				/* _KERNEL */
57a9643ea8Slogwang #endif				/* _VNODE_PAGER_ */
58