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 * @(#)device_pager.h 7.1 (Berkeley) 12/05/90 13 */ 14 15 #ifndef _DEVICE_PAGER_ 16 #define _DEVICE_PAGER_ 1 17 18 /* 19 * Device pager private data. 20 */ 21 struct devpager { 22 queue_head_t devp_list; /* list of managed devices */ 23 dev_t devp_dev; /* devno of device */ 24 vm_page_t devp_pages; /* page structs for device */ 25 int devp_npages; /* size of device in pages */ 26 int devp_count; /* reference count */ 27 vm_object_t devp_object; /* object representing this device */ 28 }; 29 typedef struct devpager *dev_pager_t; 30 31 #define DEV_PAGER_NULL ((dev_pager_t)0) 32 33 #ifdef KERNEL 34 35 void dev_pager_init(); 36 vm_pager_t dev_pager_alloc(); 37 void dev_pager_dealloc(); 38 boolean_t dev_pager_getpage(), dev_pager_putpage(); 39 boolean_t dev_pager_haspage(); 40 41 struct pagerops devicepagerops = { 42 dev_pager_init, 43 dev_pager_alloc, 44 dev_pager_dealloc, 45 dev_pager_getpage, 46 dev_pager_putpage, 47 dev_pager_haspage 48 }; 49 50 #endif 51 52 #endif /* _DEVICE_PAGER_ */ 53