Deleted Added
full compact
vm_pager.h (79224) vm_pager.h (92029)
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 79224 2001-07-04 16:20:28Z dillon $
39 * $FreeBSD: head/sys/vm/vm_pager.h 92029 2002-03-10 21:52:48Z eivind $
40 */
41
42/*
43 * Pager routine interface definition.
44 */
45
46#ifndef _VM_PAGER_
47#define _VM_PAGER_

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

78#define VM_PAGER_PEND 3
79#define VM_PAGER_ERROR 4
80#define VM_PAGER_AGAIN 5
81
82#define VM_PAGER_PUT_SYNC 0x1
83#define VM_PAGER_PUT_INVAL 0x2
84
85#ifdef _KERNEL
40 */
41
42/*
43 * Pager routine interface definition.
44 */
45
46#ifndef _VM_PAGER_
47#define _VM_PAGER_

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

78#define VM_PAGER_PEND 3
79#define VM_PAGER_ERROR 4
80#define VM_PAGER_AGAIN 5
81
82#define VM_PAGER_PUT_SYNC 0x1
83#define VM_PAGER_PUT_INVAL 0x2
84
85#ifdef _KERNEL
86
87#ifdef MALLOC_DECLARE
88MALLOC_DECLARE(M_VMPGDATA);
89#endif
90
91extern vm_map_t pager_map;
92extern int pager_map_size;
93extern struct pagerops *pagertab[];
94extern struct mtx pbuf_mtx;

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

109
110/*
111 * vm_page_get_pages:
112 *
113 * Retrieve pages from the VM system in order to map them into an object
114 * ( or into VM space somewhere ). If the pagein was successful, we
115 * must fully validate it.
116 */
86#ifdef MALLOC_DECLARE
87MALLOC_DECLARE(M_VMPGDATA);
88#endif
89
90extern vm_map_t pager_map;
91extern int pager_map_size;
92extern struct pagerops *pagertab[];
93extern struct mtx pbuf_mtx;

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

108
109/*
110 * vm_page_get_pages:
111 *
112 * Retrieve pages from the VM system in order to map them into an object
113 * ( or into VM space somewhere ). If the pagein was successful, we
114 * must fully validate it.
115 */
117
118static __inline int
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 GIANT_REQUIRED;
128
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 }
116static __inline int
117vm_pager_get_pages(
118 vm_object_t object,
119 vm_page_t *m,
120 int count,
121 int reqpage
122) {
123 int r;
124
125 GIANT_REQUIRED;
126
127 r = (*pagertab[object->type]->pgo_getpages)(object, m, count, reqpage);
128 if (r == VM_PAGER_OK && m[reqpage]->valid != VM_PAGE_BITS_ALL) {
129 vm_page_zero_invalid(m[reqpage], TRUE);
130 }
133 return(r);
131 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,

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

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
155 * page can be I/O'd efficiently.
156 *
157 * This routine does not have to be called at any particular spl.
158 */
132}
133
134static __inline void
135vm_pager_put_pages(
136 vm_object_t object,
137 vm_page_t *m,
138 int count,
139 int flags,

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

149 *
150 * Check to see if an object's pager has the requested page. The
151 * object's pager will also set before and after to give the caller
152 * some idea of the number of pages before and after the requested
153 * page can be I/O'd efficiently.
154 *
155 * This routine does not have to be called at any particular spl.
156 */
159
160static __inline boolean_t
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;

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

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 */
157static __inline boolean_t
158vm_pager_has_page(
159 vm_object_t object,
160 vm_pindex_t offset,
161 int *before,
162 int *after
163) {
164 boolean_t ret;

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

171
172/*
173 * vm_pager_page_unswapped
174 *
175 * called at splvm() to destroy swap associated with the page.
176 *
177 * This function may not block.
178 */
182
183static __inline void
184vm_pager_page_unswapped(vm_page_t m)
185{
186 GIANT_REQUIRED;
187 if (pagertab[m->object->type]->pgo_pageunswapped)
188 (*pagertab[m->object->type]->pgo_pageunswapped)(m);
189}
190
179static __inline void
180vm_pager_page_unswapped(vm_page_t m)
181{
182 GIANT_REQUIRED;
183 if (pagertab[m->object->type]->pgo_pageunswapped)
184 (*pagertab[m->object->type]->pgo_pageunswapped)(m);
185}
186
191#endif
192
187#endif /* _KERNEL */
193#endif /* _VM_PAGER_ */
188#endif /* _VM_PAGER_ */