diff options
Diffstat (limited to 'sys/vm/swap_pager.c')
-rw-r--r-- | sys/vm/swap_pager.c | 102 |
1 files changed, 50 insertions, 52 deletions
diff --git a/sys/vm/swap_pager.c b/sys/vm/swap_pager.c index 7ace4838f1b..4774428adcb 100644 --- a/sys/vm/swap_pager.c +++ b/sys/vm/swap_pager.c @@ -1,4 +1,4 @@ -/* $OpenBSD: swap_pager.c,v 1.9 1997/03/05 12:49:38 niklas Exp $ */ +/* $OpenBSD: swap_pager.c,v 1.10 1997/04/17 01:25:16 niklas Exp $ */ /* $NetBSD: swap_pager.c,v 1.27 1996/03/16 23:15:20 christos Exp $ */ /* @@ -272,7 +272,7 @@ swap_pager_alloc(handle, size, prot, foff) */ if (vm_object_lookup(pager) == NULL) panic("swap_pager_alloc: bad object"); - return(pager); + return (pager); } } /* @@ -282,7 +282,7 @@ swap_pager_alloc(handle, size, prot, foff) waitok = handle ? M_WAITOK : M_NOWAIT; pager = (vm_pager_t)malloc(sizeof *pager, M_VMPAGER, waitok); if (pager == NULL) - return(NULL); + return (NULL); swp = (sw_pager_t)malloc(sizeof *swp, M_VMPGDATA, waitok); if (swp == NULL) { #ifdef DEBUG @@ -290,7 +290,7 @@ swap_pager_alloc(handle, size, prot, foff) printf("swpg_alloc: swpager malloc failed\n"); #endif free((caddr_t)pager, M_VMPAGER); - return(NULL); + return (NULL); } size = round_page(size); for (swt = swtab; swt->st_osize; swt++) @@ -303,9 +303,8 @@ swap_pager_alloc(handle, size, prot, foff) swp->sw_osize = size; swp->sw_bsize = swt->st_bsize; swp->sw_nblocks = (btodb(size) + swp->sw_bsize - 1) / swp->sw_bsize; - swp->sw_blocks = (sw_blk_t) - malloc(swp->sw_nblocks*sizeof(*swp->sw_blocks), - M_VMPGDATA, M_NOWAIT); + swp->sw_blocks = (sw_blk_t)malloc(swp->sw_nblocks * + sizeof(*swp->sw_blocks), M_VMPGDATA, M_NOWAIT); if (swp->sw_blocks == NULL) { free((caddr_t)swp, M_VMPGDATA); free((caddr_t)pager, M_VMPAGER); @@ -315,10 +314,10 @@ swap_pager_alloc(handle, size, prot, foff) swt->st_inuse--; swt->st_usecnt--; #endif - return(FALSE); + return (FALSE); } bzero((caddr_t)swp->sw_blocks, - swp->sw_nblocks * sizeof(*swp->sw_blocks)); + swp->sw_nblocks * sizeof(*swp->sw_blocks)); swp->sw_poip = swp->sw_cnt = 0; if (handle) { vm_object_t object; @@ -349,7 +348,7 @@ swap_pager_alloc(handle, size, prot, foff) printf("swpg_alloc: pg_data %p, %x of %x at %p\n", swp, swp->sw_nblocks, swp->sw_bsize, swp->sw_blocks); #endif - return(pager); + return (pager); } static void @@ -451,7 +450,7 @@ swap_pager_getpage(pager, mlist, npages, sync) m->flags &= ~PG_FAULTING; } #endif - return(rv); + return (rv); } static int @@ -475,8 +474,8 @@ swap_pager_putpage(pager, mlist, npages, sync) flags = B_WRITE; if (!sync) flags |= B_ASYNC; - return(swap_pager_io((sw_pager_t)pager->pg_data, - mlist, npages, flags)); + return (swap_pager_io((sw_pager_t)pager->pg_data, mlist, npages, + flags)); } static boolean_t @@ -500,7 +499,7 @@ swap_pager_haspage(pager, offset) printf("swpg_haspage: %p bad offset %lx, ix %x\n", swp->sw_blocks, offset, ix); #endif - return(FALSE); + return (FALSE); } swb = &swp->sw_blocks[ix]; if (swb->swb_block) @@ -513,8 +512,8 @@ swap_pager_haspage(pager, offset) "FT"[swb->swb_block && (swb->swb_mask & (1 << ix))]); #endif if (swb->swb_block && (swb->swb_mask & (1 << ix))) - return(TRUE); - return(FALSE); + return (TRUE); + return (FALSE); } static void @@ -603,16 +602,16 @@ swap_pager_io(swp, mlist, npages, flags) #ifdef DEBUG if ((flags & B_READ) == 0 && (swpagerdebug & SDB_ANOM)) { printf("swap_pager_io: no swap block on write\n"); - return(VM_PAGER_BAD); + return (VM_PAGER_BAD); } #endif - return(VM_PAGER_FAIL); + return (VM_PAGER_FAIL); } swb = &swp->sw_blocks[ix]; off = off % dbtob(swp->sw_bsize); if ((flags & B_READ) && (swb->swb_block == 0 || (swb->swb_mask & (1 << atop(off))) == 0)) - return(VM_PAGER_FAIL); + return (VM_PAGER_FAIL); /* * For reads (pageins) and synchronous writes, we clean up @@ -645,7 +644,7 @@ swap_pager_io(swp, mlist, npages, flags) printf("%s: no available io headers\n", "swap_pager_io"); #endif - return(VM_PAGER_AGAIN); + return (VM_PAGER_AGAIN); } } @@ -667,7 +666,7 @@ swap_pager_io(swp, mlist, npages, flags) * trying again (the pageout daemon's current response * to AGAIN) so we just return FAIL. */ - return(VM_PAGER_FAIL); + return (VM_PAGER_FAIL); } #ifdef DEBUG if (swpagerdebug & (SDB_FULL|SDB_ALLOCBLK)) @@ -687,7 +686,7 @@ swap_pager_io(swp, mlist, npages, flags) printf("%s: no KVA space to map pages\n", "swap_pager_io"); #endif - return(VM_PAGER_AGAIN); + return (VM_PAGER_AGAIN); } /* @@ -795,7 +794,7 @@ swap_pager_io(swp, mlist, npages, flags) if (swpagerdebug & SDB_IO) printf("swpg_io: IO started: bp %p\n", bp); #endif - return(VM_PAGER_PEND); + return (VM_PAGER_PEND); } s = splbio(); #ifdef DEBUG @@ -836,7 +835,7 @@ swap_pager_io(swp, mlist, npages, flags) printf("swpg_io: IO error\n"); #endif vm_pager_unmap_pages(kva, npages); - return(rv); + return (rv); } static void @@ -926,8 +925,7 @@ swap_pager_clean(rw) * Done with the object, decrement the paging count * and unlock it. */ - if (--object->paging_in_progress == 0) - wakeup(object); + vm_object_paging_end(object); vm_object_unlock(object); /* @@ -1066,7 +1064,7 @@ swap_pager_remove(pager, from, to) /* Special case stupid ranges. */ if (to > 0 && from >= to) - return(0); + return (0); swp = (sw_pager_t)pager->pg_data; @@ -1079,14 +1077,14 @@ swap_pager_remove(pager, from, to) * be created without any pages put into it? */ if (swp->sw_cnt == 0) - return(0); + return (0); bsize = dbtob(swp->sw_bsize); blk = from / bsize; /* Another fast one.. no blocks in range. */ if (blk >= swp->sw_nblocks) - return(0); + return (0); bit = atop(from % bsize); /* @@ -1149,18 +1147,18 @@ swap_pager_remove(pager, from, to) if (swp->sw_cnt < 0) panic("swap_pager_remove: sw_cnt < 0"); #endif - return(cnt); + return (cnt); } /* - * swap_pager_next: + * swap_pager_next: * - * This is called via the vm_pager_next path and - * will return the offset of the next page (addresswise) - * which this pager is backing. If there are no more - * pages we will return the size of the pager's managed - * space (which by definition is larger than any page's - * offset). + * This is called via the vm_pager_next path and + * will return the offset of the next page (addresswise) + * which this pager is backing. If there are no more + * pages we will return the size of the pager's managed + * space (which by definition is larger than any page's + * offset). */ static vm_offset_t swap_pager_next(pager, offset) @@ -1179,22 +1177,22 @@ swap_pager_next(pager, offset) swp = (sw_pager_t)pager->pg_data; /* - * If we back no pages, just return our size. XXX Can - * this ever be the case? At least all remove calls - * should be through vm_object_remove_from_pager which - * also deallocates the pager when it no longer backs any - * pages. Left is the initial case: can a swap-pager - * be created without any pages put into it? + * If we back no pages, just return our size. XXX Can + * this ever be the case? At least all remove calls + * should be through vm_object_remove_from_pager which + * also deallocates the pager when it no longer backs any + * pages. Left is the initial case: can a swap-pager + * be created without any pages put into it? */ if (swp->sw_cnt == 0) - return(swp->sw_osize); + return (swp->sw_osize); bsize = dbtob(swp->sw_bsize); blk = offset / bsize; - /* Another fast one.. no blocks in range. */ + /* Another fast one.. no blocks in range. */ if (blk >= swp->sw_nblocks) - return(swp->sw_osize); + return (swp->sw_osize); bit = atop(offset % bsize); to_blk = swp->sw_osize / bsize; to_bit = atop(swp->sw_osize % bsize); @@ -1219,7 +1217,7 @@ swap_pager_next(pager, offset) */ mask &= swb->swb_mask; if (mask) - return(blk * bsize + (ffs (mask) - 1) * PAGE_SIZE); + return (blk * bsize + (ffs (mask) - 1) * PAGE_SIZE); /* * If we handled the end of range now, this @@ -1233,7 +1231,7 @@ swap_pager_next(pager, offset) swb++; mask = ~0; } - return swp->sw_osize; + return (swp->sw_osize); } /* @@ -1246,7 +1244,7 @@ swap_pager_count(pager) vm_pager_t pager; { #ifndef notyet - return((sw_pager_t)pager->pg_data)->sw_cnt; + return ((sw_pager_t)pager->pg_data)->sw_cnt; #else sw_pager_t swp; sw_blk_t swb; @@ -1254,10 +1252,10 @@ swap_pager_count(pager) swp = (sw_pager_t)pager->pg_data; if (swp->sw_blocks == NULL) - return 0; + return (0); for (i = 0; i < swp->sw_nblocks; i++) cnt += count_bits(swp->sw_blocks[i].swb_mask); - return cnt; + return (cnt); #endif } @@ -1276,5 +1274,5 @@ count_bits(x) cnt += x & 1; x >>= 1; } - return(cnt); + return (cnt); } |