xref: /original-bsd/sys/vm/device_pager.h (revision e59fb703)
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