1 /* 2 * Copyright (c) 1990 University of Utah. 3 * Copyright (c) 1991 The Regents of the University of California. 4 * All rights reserved. 5 * 6 * This code is derived from software contributed to Berkeley by 7 * the Systems Programming Group of the University of Utah Computer 8 * Science Department. 9 * 10 * %sccs.include.redist.c% 11 * 12 * @(#)vnode_pager.h 7.1 (Berkeley) 12/05/90 13 */ 14 15 #ifndef _VNODE_PAGER_ 16 #define _VNODE_PAGER_ 1 17 18 /* 19 * VNODE pager private data. 20 */ 21 struct vnpager { 22 int vnp_flags; /* flags */ 23 struct vnode *vnp_vp; /* vnode */ 24 vm_size_t vnp_size; /* vnode current size */ 25 }; 26 typedef struct vnpager *vn_pager_t; 27 28 #define VN_PAGER_NULL ((vn_pager_t)0) 29 30 #define VNP_PAGING 0x01 /* vnode used for pageout */ 31 #define VNP_CACHED 0x02 /* vnode is cached */ 32 33 #ifdef KERNEL 34 35 void vnode_pager_init(); 36 vm_pager_t vnode_pager_alloc(); 37 void vnode_pager_dealloc(); 38 int vnode_pager_getpage(), vnode_pager_putpage(); 39 boolean_t vnode_pager_haspage(); 40 41 struct pagerops vnodepagerops = { 42 vnode_pager_init, 43 vnode_pager_alloc, 44 vnode_pager_dealloc, 45 vnode_pager_getpage, 46 vnode_pager_putpage, 47 vnode_pager_haspage 48 }; 49 50 #endif 51 52 #endif /* _VNODE_PAGER_ */ 53