vm_pager.h (44739) | vm_pager.h (46349) |
---|---|
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 * $Id: vm_pager.h,v 1.20 1999/01/24 02:32:15 dillon Exp $ | 39 * $Id: vm_pager.h,v 1.21 1999/03/14 09:20:00 julian Exp $ |
40 */ 41 42/* 43 * Pager routine interface definition. 44 */ 45 46#ifndef _VM_PAGER_ 47#define _VM_PAGER_ --- 57 unchanged lines hidden (view full) --- 105void vm_pager_unmap_pages __P((vm_offset_t, int)); 106void vm_pager_unmap_page __P((vm_offset_t)); 107void vm_pager_strategy __P((vm_object_t object, struct buf *bp)); 108struct buf *getchainbuf(struct buf *bp, struct vnode *vp, int flags); 109void flushchainbuf(struct buf *nbp); 110void waitchainbuf(struct buf *bp, int count, int done); 111void autochaindone(struct buf *bp); 112 | 40 */ 41 42/* 43 * Pager routine interface definition. 44 */ 45 46#ifndef _VM_PAGER_ 47#define _VM_PAGER_ --- 57 unchanged lines hidden (view full) --- 105void vm_pager_unmap_pages __P((vm_offset_t, int)); 106void vm_pager_unmap_page __P((vm_offset_t)); 107void vm_pager_strategy __P((vm_object_t object, struct buf *bp)); 108struct buf *getchainbuf(struct buf *bp, struct vnode *vp, int flags); 109void flushchainbuf(struct buf *nbp); 110void waitchainbuf(struct buf *bp, int count, int done); 111void autochaindone(struct buf *bp); 112 |
113/* 114 * vm_page_get_pages: 115 * 116 * Retrieve pages from the VM system in order to map them into an object 117 * ( or into VM space somewhere ). If the pagein was successful, we 118 * must fully validate it. 119 */ 120 |
|
113static __inline int 114vm_pager_get_pages( 115 vm_object_t object, 116 vm_page_t *m, 117 int count, 118 int reqpage 119) { | 121static __inline int 122vm_pager_get_pages( 123 vm_object_t object, 124 vm_page_t *m, 125 int count, 126 int reqpage 127) { |
120 return ((*pagertab[object->type]->pgo_getpages)(object, m, count, reqpage)); | 128 int r; 129 130 r = (*pagertab[object->type]->pgo_getpages)(object, m, count, reqpage); 131 if (r == VM_PAGER_OK && m[reqpage]->valid != VM_PAGE_BITS_ALL) { 132 vm_page_zero_invalid(m[reqpage], TRUE); 133 } 134 return(r); |
121} 122 123static __inline void 124vm_pager_put_pages( 125 vm_object_t object, 126 vm_page_t *m, 127 int count, 128 int flags, --- 34 unchanged lines hidden --- | 135} 136 137static __inline void 138vm_pager_put_pages( 139 vm_object_t object, 140 vm_page_t *m, 141 int count, 142 int flags, --- 34 unchanged lines hidden --- |