Commit | Line | Data |
---|---|---|
619edcce KM |
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) %G% | |
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_ */ |