vm_pager.c (34206) | vm_pager.c (34611) |
---|---|
1/* 2 * Copyright (c) 1991, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * The Mach Operating System project at Carnegie-Mellon University. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 47 unchanged lines hidden (view full) --- 56 * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU 57 * School of Computer Science 58 * Carnegie Mellon University 59 * Pittsburgh PA 15213-3890 60 * 61 * any improvements or extensions that they make and grant Carnegie the 62 * rights to redistribute these changes. 63 * | 1/* 2 * Copyright (c) 1991, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * The Mach Operating System project at Carnegie-Mellon University. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 47 unchanged lines hidden (view full) --- 56 * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU 57 * School of Computer Science 58 * Carnegie Mellon University 59 * Pittsburgh PA 15213-3890 60 * 61 * any improvements or extensions that they make and grant Carnegie the 62 * rights to redistribute these changes. 63 * |
64 * $Id: vm_pager.c,v 1.35 1998/02/23 08:22:40 dyson Exp $ | 64 * $Id: vm_pager.c,v 1.36 1998/03/07 21:37:21 dyson Exp $ |
65 */ 66 67/* 68 * Paging space routine stubs. Emulates a matchmaker-like interface 69 * for builtin pagers. 70 */ 71 72#include <sys/param.h> --- 12 unchanged lines hidden (view full) --- 85 86MALLOC_DEFINE(M_VMPGDATA, "VM pgdata", "XXX: VM pager private data"); 87 88extern struct pagerops defaultpagerops; 89extern struct pagerops swappagerops; 90extern struct pagerops vnodepagerops; 91extern struct pagerops devicepagerops; 92 | 65 */ 66 67/* 68 * Paging space routine stubs. Emulates a matchmaker-like interface 69 * for builtin pagers. 70 */ 71 72#include <sys/param.h> --- 12 unchanged lines hidden (view full) --- 85 86MALLOC_DEFINE(M_VMPGDATA, "VM pgdata", "XXX: VM pager private data"); 87 88extern struct pagerops defaultpagerops; 89extern struct pagerops swappagerops; 90extern struct pagerops vnodepagerops; 91extern struct pagerops devicepagerops; 92 |
93static int dead_pager_getpages __P((vm_object_t, vm_page_t *, int, int)); 94static vm_object_t dead_pager_alloc __P((void *, vm_size_t, vm_prot_t, 95 vm_ooffset_t)); 96static int dead_pager_putpages __P((vm_object_t, vm_page_t *, int, int, int *)); 97static boolean_t dead_pager_haspage __P((vm_object_t, vm_pindex_t, int *, int *)); 98static void dead_pager_dealloc __P((vm_object_t)); 99 100int 101dead_pager_getpages(obj, ma, count, req) 102 vm_object_t obj; 103 vm_page_t *ma; 104 int count; 105 int req; 106{ 107 return VM_PAGER_FAIL; 108} 109 110vm_object_t 111dead_pager_alloc(handle, size, prot, off) 112 void *handle; 113 vm_size_t size; 114 vm_prot_t prot; 115 vm_ooffset_t off; 116{ 117 return NULL; 118} 119 120int 121dead_pager_putpages(object, m, count, flags, rtvals) 122 vm_object_t object; 123 vm_page_t *m; 124 int count; 125 int flags; 126 int *rtvals; 127{ 128 int i; 129 for (i = 0; i < count; i++) { 130 rtvals[i] = VM_PAGER_AGAIN; 131 } 132 return VM_PAGER_AGAIN; 133} 134 135int 136dead_pager_haspage(object, pindex, prev, next) 137 vm_object_t object; 138 vm_pindex_t pindex; 139 int *prev; 140 int *next; 141{ 142 if (prev) 143 *prev = 0; 144 if (next) 145 *next = 0; 146 return FALSE; 147} 148 149void 150dead_pager_dealloc(object) 151 vm_object_t object; 152{ 153 return; 154} 155 156struct pagerops deadpagerops = { 157 NULL, 158 dead_pager_alloc, 159 dead_pager_dealloc, 160 dead_pager_getpages, 161 dead_pager_putpages, 162 dead_pager_haspage, 163 NULL 164}; 165 |
|
93static struct pagerops *pagertab[] = { 94 &defaultpagerops, /* OBJT_DEFAULT */ 95 &swappagerops, /* OBJT_SWAP */ 96 &vnodepagerops, /* OBJT_VNODE */ 97 &devicepagerops, /* OBJT_DEVICE */ | 166static struct pagerops *pagertab[] = { 167 &defaultpagerops, /* OBJT_DEFAULT */ 168 &swappagerops, /* OBJT_SWAP */ 169 &vnodepagerops, /* OBJT_VNODE */ 170 &devicepagerops, /* OBJT_DEVICE */ |
171 &deadpagerops /* OBJT_DEAD */ |
|
98}; 99static int npagers = sizeof(pagertab) / sizeof(pagertab[0]); 100 101/* 102 * Kernel address space for mapping pages. 103 * Used by pagers where KVAs are needed for IO. 104 * 105 * XXX needs to be large enough to support the number of pending async --- 239 unchanged lines hidden --- | 172}; 173static int npagers = sizeof(pagertab) / sizeof(pagertab[0]); 174 175/* 176 * Kernel address space for mapping pages. 177 * Used by pagers where KVAs are needed for IO. 178 * 179 * XXX needs to be large enough to support the number of pending async --- 239 unchanged lines hidden --- |