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 ---