vm_pager.c (4b8365d752ef48c14f0584d21b719bb386a7be82) | vm_pager.c (d474440ab33c683b0e3f55e8e854f055615db6ec) |
---|---|
1/*- 2 * SPDX-License-Identifier: (BSD-3-Clause AND MIT-CMU) 3 * 4 * Copyright (c) 1991, 1993 5 * The Regents of the University of California. All rights reserved. 6 * 7 * This code is derived from software contributed to Berkeley by 8 * The Mach Operating System project at Carnegie-Mellon University. --- 140 unchanged lines hidden (view full) --- 149dead_pager_getvp(vm_object_t object, struct vnode **vpp, bool *vp_heldp) 150{ 151 /* 152 * For OBJT_DEAD objects, v_writecount was handled in 153 * vnode_pager_dealloc(). 154 */ 155} 156 | 1/*- 2 * SPDX-License-Identifier: (BSD-3-Clause AND MIT-CMU) 3 * 4 * Copyright (c) 1991, 1993 5 * The Regents of the University of California. All rights reserved. 6 * 7 * This code is derived from software contributed to Berkeley by 8 * The Mach Operating System project at Carnegie-Mellon University. --- 140 unchanged lines hidden (view full) --- 149dead_pager_getvp(vm_object_t object, struct vnode **vpp, bool *vp_heldp) 150{ 151 /* 152 * For OBJT_DEAD objects, v_writecount was handled in 153 * vnode_pager_dealloc(). 154 */ 155} 156 |
157static struct pagerops deadpagerops = { | 157static const struct pagerops deadpagerops = { |
158 .pgo_alloc = dead_pager_alloc, 159 .pgo_dealloc = dead_pager_dealloc, 160 .pgo_getpages = dead_pager_getpages, 161 .pgo_putpages = dead_pager_putpages, 162 .pgo_haspage = dead_pager_haspage, 163 .pgo_getvp = dead_pager_getvp, 164}; 165 | 158 .pgo_alloc = dead_pager_alloc, 159 .pgo_dealloc = dead_pager_dealloc, 160 .pgo_getpages = dead_pager_getpages, 161 .pgo_putpages = dead_pager_putpages, 162 .pgo_haspage = dead_pager_haspage, 163 .pgo_getvp = dead_pager_getvp, 164}; 165 |
166struct pagerops *pagertab[] = { | 166const struct pagerops *pagertab[] __read_mostly = { |
167 [OBJT_DEFAULT] = &defaultpagerops, 168 [OBJT_SWAP] = &swappagerops, 169 [OBJT_VNODE] = &vnodepagerops, 170 [OBJT_DEVICE] = &devicepagerops, 171 [OBJT_PHYS] = &physpagerops, 172 [OBJT_DEAD] = &deadpagerops, 173 [OBJT_SG] = &sgpagerops, 174 [OBJT_MGTDEVICE] = &mgtdevicepagerops, 175 [OBJT_SWAP_TMPFS] = &swaptmpfspagerops, 176}; 177 178void 179vm_pager_init(void) 180{ | 167 [OBJT_DEFAULT] = &defaultpagerops, 168 [OBJT_SWAP] = &swappagerops, 169 [OBJT_VNODE] = &vnodepagerops, 170 [OBJT_DEVICE] = &devicepagerops, 171 [OBJT_PHYS] = &physpagerops, 172 [OBJT_DEAD] = &deadpagerops, 173 [OBJT_SG] = &sgpagerops, 174 [OBJT_MGTDEVICE] = &mgtdevicepagerops, 175 [OBJT_SWAP_TMPFS] = &swaptmpfspagerops, 176}; 177 178void 179vm_pager_init(void) 180{ |
181 struct pagerops **pgops; | 181 const struct pagerops **pgops; |
182 183 /* 184 * Initialize known pagers 185 */ 186 for (pgops = pagertab; pgops < &pagertab[nitems(pagertab)]; pgops++) 187 if ((*pgops)->pgo_init != NULL) 188 (*(*pgops)->pgo_init)(); 189} --- 49 unchanged lines hidden (view full) --- 239 * Size, protection and offset parameters are passed in for pagers that 240 * need to perform page-level validation (e.g. the device pager). 241 */ 242vm_object_t 243vm_pager_allocate(objtype_t type, void *handle, vm_ooffset_t size, 244 vm_prot_t prot, vm_ooffset_t off, struct ucred *cred) 245{ 246 vm_object_t ret; | 182 183 /* 184 * Initialize known pagers 185 */ 186 for (pgops = pagertab; pgops < &pagertab[nitems(pagertab)]; pgops++) 187 if ((*pgops)->pgo_init != NULL) 188 (*(*pgops)->pgo_init)(); 189} --- 49 unchanged lines hidden (view full) --- 239 * Size, protection and offset parameters are passed in for pagers that 240 * need to perform page-level validation (e.g. the device pager). 241 */ 242vm_object_t 243vm_pager_allocate(objtype_t type, void *handle, vm_ooffset_t size, 244 vm_prot_t prot, vm_ooffset_t off, struct ucred *cred) 245{ 246 vm_object_t ret; |
247 struct pagerops *ops; | 247 const struct pagerops *ops; |
248 249 ops = pagertab[type]; 250 if (ops) 251 ret = (*ops->pgo_alloc)(handle, size, prot, off, cred); 252 else 253 ret = NULL; 254 return (ret); 255} --- 277 unchanged lines hidden --- | 248 249 ops = pagertab[type]; 250 if (ops) 251 ret = (*ops->pgo_alloc)(handle, size, prot, off, cred); 252 else 253 ret = NULL; 254 return (ret); 255} --- 277 unchanged lines hidden --- |