Deleted Added
full compact
vm_pager.h (76827) vm_pager.h (79224)
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.

--- 22 unchanged lines hidden (view full) ---

31 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
32 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
33 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
34 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
35 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
36 * SUCH DAMAGE.
37 *
38 * @(#)vm_pager.h 8.4 (Berkeley) 1/12/94
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.

--- 22 unchanged lines hidden (view full) ---

31 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
32 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
33 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
34 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
35 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
36 * SUCH DAMAGE.
37 *
38 * @(#)vm_pager.h 8.4 (Berkeley) 1/12/94
39 * $FreeBSD: head/sys/vm/vm_pager.h 76827 2001-05-19 01:28:09Z alfred $
39 * $FreeBSD: head/sys/vm/vm_pager.h 79224 2001-07-04 16:20:28Z dillon $
40 */
41
42/*
43 * Pager routine interface definition.
44 */
45
46#ifndef _VM_PAGER_
47#define _VM_PAGER_

--- 71 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
40 */
41
42/*
43 * Pager routine interface definition.
44 */
45
46#ifndef _VM_PAGER_
47#define _VM_PAGER_

--- 71 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 mtx_assert(&vm_mtx, MA_OWNED);
127 GIANT_REQUIRED;
128
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 }
129 r = (*pagertab[object->type]->pgo_getpages)(object, m, count, reqpage);
130 if (r == VM_PAGER_OK && m[reqpage]->valid != VM_PAGE_BITS_ALL) {
131 vm_page_zero_invalid(m[reqpage], TRUE);
132 }
132 mtx_assert(&vm_mtx, MA_OWNED);
133 return(r);
134}
135
136static __inline void
137vm_pager_put_pages(
138 vm_object_t object,
139 vm_page_t *m,
140 int count,
141 int flags,
142 int *rtvals
143) {
133 return(r);
134}
135
136static __inline void
137vm_pager_put_pages(
138 vm_object_t object,
139 vm_page_t *m,
140 int count,
141 int flags,
142 int *rtvals
143) {
144
145 mtx_assert(&vm_mtx, MA_OWNED);
144 GIANT_REQUIRED;
146 (*pagertab[object->type]->pgo_putpages)
147 (object, m, count, flags, rtvals);
145 (*pagertab[object->type]->pgo_putpages)
146 (object, m, count, flags, rtvals);
148 mtx_assert(&vm_mtx, MA_OWNED);
149}
150
151/*
152 * vm_pager_haspage
153 *
154 * Check to see if an object's pager has the requested page. The
155 * object's pager will also set before and after to give the caller
156 * some idea of the number of pages before and after the requested

--- 6 unchanged lines hidden (view full) ---

163vm_pager_has_page(
164 vm_object_t object,
165 vm_pindex_t offset,
166 int *before,
167 int *after
168) {
169 boolean_t ret;
170
147}
148
149/*
150 * vm_pager_haspage
151 *
152 * Check to see if an object's pager has the requested page. The
153 * object's pager will also set before and after to give the caller
154 * some idea of the number of pages before and after the requested

--- 6 unchanged lines hidden (view full) ---

161vm_pager_has_page(
162 vm_object_t object,
163 vm_pindex_t offset,
164 int *before,
165 int *after
166) {
167 boolean_t ret;
168
171 mtx_assert(&vm_mtx, MA_OWNED);
169 GIANT_REQUIRED;
172 ret = (*pagertab[object->type]->pgo_haspage)
173 (object, offset, before, after);
170 ret = (*pagertab[object->type]->pgo_haspage)
171 (object, offset, before, after);
174 mtx_assert(&vm_mtx, MA_OWNED);
175 return (ret);
176}
177
178/*
179 * vm_pager_page_unswapped
180 *
181 * called at splvm() to destroy swap associated with the page.
182 *
183 * This function may not block.
184 */
185
186static __inline void
187vm_pager_page_unswapped(vm_page_t m)
188{
172 return (ret);
173}
174
175/*
176 * vm_pager_page_unswapped
177 *
178 * called at splvm() to destroy swap associated with the page.
179 *
180 * This function may not block.
181 */
182
183static __inline void
184vm_pager_page_unswapped(vm_page_t m)
185{
189
190 mtx_assert(&vm_mtx, MA_OWNED);
186 GIANT_REQUIRED;
191 if (pagertab[m->object->type]->pgo_pageunswapped)
192 (*pagertab[m->object->type]->pgo_pageunswapped)(m);
187 if (pagertab[m->object->type]->pgo_pageunswapped)
188 (*pagertab[m->object->type]->pgo_pageunswapped)(m);
193 mtx_assert(&vm_mtx, MA_OWNED);
194}
195
196#endif
197
198#endif /* _VM_PAGER_ */
189}
190
191#endif
192
193#endif /* _VM_PAGER_ */