vm_pager.h (b652778e426d00b6a1df29bbd86869db86f36e25) | vm_pager.h (89f6b8632cc94bca2738b4fcc26e1189ef4f5dde) |
---|---|
1/*- 2 * Copyright (c) 1990 University of Utah. 3 * Copyright (c) 1991, 1993 4 * The Regents of the University of California. 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. --- 110 unchanged lines hidden (view full) --- 119vm_pager_get_pages( 120 vm_object_t object, 121 vm_page_t *m, 122 int count, 123 int reqpage 124) { 125 int r; 126 | 1/*- 2 * Copyright (c) 1990 University of Utah. 3 * Copyright (c) 1991, 1993 4 * The Regents of the University of California. 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. --- 110 unchanged lines hidden (view full) --- 119vm_pager_get_pages( 120 vm_object_t object, 121 vm_page_t *m, 122 int count, 123 int reqpage 124) { 125 int r; 126 |
127 VM_OBJECT_LOCK_ASSERT(object, MA_OWNED); | 127 VM_OBJECT_ASSERT_WLOCKED(object); |
128 r = (*pagertab[object->type]->pgo_getpages)(object, m, count, reqpage); 129 if (r == VM_PAGER_OK && m[reqpage]->valid != VM_PAGE_BITS_ALL) { 130 vm_page_zero_invalid(m[reqpage], TRUE); 131 } 132 return (r); 133} 134 135static __inline void 136vm_pager_put_pages( 137 vm_object_t object, 138 vm_page_t *m, 139 int count, 140 int flags, 141 int *rtvals 142) { 143 | 128 r = (*pagertab[object->type]->pgo_getpages)(object, m, count, reqpage); 129 if (r == VM_PAGER_OK && m[reqpage]->valid != VM_PAGE_BITS_ALL) { 130 vm_page_zero_invalid(m[reqpage], TRUE); 131 } 132 return (r); 133} 134 135static __inline void 136vm_pager_put_pages( 137 vm_object_t object, 138 vm_page_t *m, 139 int count, 140 int flags, 141 int *rtvals 142) { 143 |
144 VM_OBJECT_LOCK_ASSERT(object, MA_OWNED); | 144 VM_OBJECT_ASSERT_WLOCKED(object); |
145 (*pagertab[object->type]->pgo_putpages) 146 (object, m, count, flags, rtvals); 147} 148 149/* 150 * vm_pager_haspage 151 * 152 * Check to see if an object's pager has the requested page. The --- 7 unchanged lines hidden (view full) --- 160vm_pager_has_page( 161 vm_object_t object, 162 vm_pindex_t offset, 163 int *before, 164 int *after 165) { 166 boolean_t ret; 167 | 145 (*pagertab[object->type]->pgo_putpages) 146 (object, m, count, flags, rtvals); 147} 148 149/* 150 * vm_pager_haspage 151 * 152 * Check to see if an object's pager has the requested page. The --- 7 unchanged lines hidden (view full) --- 160vm_pager_has_page( 161 vm_object_t object, 162 vm_pindex_t offset, 163 int *before, 164 int *after 165) { 166 boolean_t ret; 167 |
168 VM_OBJECT_LOCK_ASSERT(object, MA_OWNED); | 168 VM_OBJECT_ASSERT_WLOCKED(object); |
169 ret = (*pagertab[object->type]->pgo_haspage) 170 (object, offset, before, after); 171 return (ret); 172} 173 174/* 175 * vm_pager_page_unswapped 176 * --- 6 unchanged lines hidden (view full) --- 183 * XXX: It is not obvious if this could be profitably used by any 184 * XXX: pagers besides the swap_pager or if it should even be a 185 * XXX: generic pager_op in the first place. 186 */ 187static __inline void 188vm_pager_page_unswapped(vm_page_t m) 189{ 190 | 169 ret = (*pagertab[object->type]->pgo_haspage) 170 (object, offset, before, after); 171 return (ret); 172} 173 174/* 175 * vm_pager_page_unswapped 176 * --- 6 unchanged lines hidden (view full) --- 183 * XXX: It is not obvious if this could be profitably used by any 184 * XXX: pagers besides the swap_pager or if it should even be a 185 * XXX: generic pager_op in the first place. 186 */ 187static __inline void 188vm_pager_page_unswapped(vm_page_t m) 189{ 190 |
191 VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED); | 191 VM_OBJECT_ASSERT_WLOCKED(m->object); |
192 if (pagertab[m->object->type]->pgo_pageunswapped) 193 (*pagertab[m->object->type]->pgo_pageunswapped)(m); 194} 195 196struct cdev_pager_ops { 197 int (*cdev_pg_fault)(vm_object_t vm_obj, vm_ooffset_t offset, 198 int prot, vm_page_t *mres); 199 int (*cdev_pg_ctor)(void *handle, vm_ooffset_t size, vm_prot_t prot, --- 12 unchanged lines hidden --- | 192 if (pagertab[m->object->type]->pgo_pageunswapped) 193 (*pagertab[m->object->type]->pgo_pageunswapped)(m); 194} 195 196struct cdev_pager_ops { 197 int (*cdev_pg_fault)(vm_object_t vm_obj, vm_ooffset_t offset, 198 int prot, vm_page_t *mres); 199 int (*cdev_pg_ctor)(void *handle, vm_ooffset_t size, vm_prot_t prot, --- 12 unchanged lines hidden --- |