phys_pager.c (63e9755548e4feebf798686ab8bce0cdaaaf7b46) | phys_pager.c (0012f373e43db2341c20329163ed2d5ad3b0f341) |
---|---|
1/*- 2 * SPDX-License-Identifier: BSD-2-Clause-FreeBSD 3 * 4 * Copyright (c) 2000 Peter Wemm 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 131 unchanged lines hidden (view full) --- 140static int 141phys_pager_getpages(vm_object_t object, vm_page_t *m, int count, int *rbehind, 142 int *rahead) 143{ 144 int i; 145 146 VM_OBJECT_ASSERT_WLOCKED(object); 147 for (i = 0; i < count; i++) { | 1/*- 2 * SPDX-License-Identifier: BSD-2-Clause-FreeBSD 3 * 4 * Copyright (c) 2000 Peter Wemm 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 131 unchanged lines hidden (view full) --- 140static int 141phys_pager_getpages(vm_object_t object, vm_page_t *m, int count, int *rbehind, 142 int *rahead) 143{ 144 int i; 145 146 VM_OBJECT_ASSERT_WLOCKED(object); 147 for (i = 0; i < count; i++) { |
148 if (m[i]->valid == 0) { | 148 if (vm_page_none_valid(m[i])) { |
149 if ((m[i]->flags & PG_ZERO) == 0) 150 pmap_zero_page(m[i]); | 149 if ((m[i]->flags & PG_ZERO) == 0) 150 pmap_zero_page(m[i]); |
151 m[i]->valid = VM_PAGE_BITS_ALL; | 151 vm_page_valid(m[i]); |
152 } | 152 } |
153 KASSERT(m[i]->valid == VM_PAGE_BITS_ALL, | 153 KASSERT(vm_page_all_valid(m[i]), |
154 ("phys_pager_getpages: partially valid page %p", m[i])); 155 KASSERT(m[i]->dirty == 0, 156 ("phys_pager_getpages: dirty page %p", m[i])); 157 } 158 if (rbehind) 159 *rbehind = 0; 160 if (rahead) 161 *rahead = 0; --- 42 unchanged lines hidden (view full) --- 204 end = *last; 205 *first = base; 206 *last = end; 207 208 for (i = base; i <= end; i++) { 209 ahead = MIN(end - i, PHYSALLOC); 210 m = vm_page_grab(object, i, 211 VM_ALLOC_NORMAL | VM_ALLOC_COUNT(ahead)); | 154 ("phys_pager_getpages: partially valid page %p", m[i])); 155 KASSERT(m[i]->dirty == 0, 156 ("phys_pager_getpages: dirty page %p", m[i])); 157 } 158 if (rbehind) 159 *rbehind = 0; 160 if (rahead) 161 *rahead = 0; --- 42 unchanged lines hidden (view full) --- 204 end = *last; 205 *first = base; 206 *last = end; 207 208 for (i = base; i <= end; i++) { 209 ahead = MIN(end - i, PHYSALLOC); 210 m = vm_page_grab(object, i, 211 VM_ALLOC_NORMAL | VM_ALLOC_COUNT(ahead)); |
212 if (m->valid != VM_PAGE_BITS_ALL) { | 212 if (!vm_page_all_valid(m)) |
213 vm_page_zero_invalid(m, TRUE); | 213 vm_page_zero_invalid(m, TRUE); |
214 m->valid = VM_PAGE_BITS_ALL; 215 } | |
216 KASSERT(m->dirty == 0, 217 ("phys_pager_populate: dirty page %p", m)); 218 } 219 return (VM_PAGER_OK); 220} 221 222static void 223phys_pager_putpages(vm_object_t object, vm_page_t *m, int count, boolean_t sync, --- 30 unchanged lines hidden --- | 214 KASSERT(m->dirty == 0, 215 ("phys_pager_populate: dirty page %p", m)); 216 } 217 return (VM_PAGER_OK); 218} 219 220static void 221phys_pager_putpages(vm_object_t object, vm_page_t *m, int count, boolean_t sync, --- 30 unchanged lines hidden --- |