swap_pager.h (8416) | swap_pager.h (9507) |
---|---|
1/* 2 * Copyright (c) 1990 University of Utah. 3 * Copyright (c) 1991 The Regents of the University of California. 4 * 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 * from: @(#)swap_pager.h 7.1 (Berkeley) 12/5/90 | 1/* 2 * Copyright (c) 1990 University of Utah. 3 * Copyright (c) 1991 The Regents of the University of California. 4 * 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 * from: @(#)swap_pager.h 7.1 (Berkeley) 12/5/90 |
39 * $Id: swap_pager.h,v 1.5 1995/02/02 09:08:09 davidg Exp $ | 39 * $Id: swap_pager.h,v 1.6 1995/05/10 18:56:04 davidg Exp $ |
40 */ 41 42/* 43 * Modifications to the block allocation data structure by John S. Dyson 44 * 18 Dec 93. 45 */ 46 47#ifndef _SWAP_PAGER_ --- 14 unchanged lines hidden (view full) --- 62 int swb_block[SWB_NPAGES]; /* unfortunately int instead of daddr_t */ 63}; 64typedef struct swblock *sw_blk_t; 65 66/* 67 * Swap pager private data. 68 */ 69struct swpager { | 40 */ 41 42/* 43 * Modifications to the block allocation data structure by John S. Dyson 44 * 18 Dec 93. 45 */ 46 47#ifndef _SWAP_PAGER_ --- 14 unchanged lines hidden (view full) --- 62 int swb_block[SWB_NPAGES]; /* unfortunately int instead of daddr_t */ 63}; 64typedef struct swblock *sw_blk_t; 65 66/* 67 * Swap pager private data. 68 */ 69struct swpager { |
70 vm_size_t sw_osize; /* size of object we are backing (bytes) */ | |
71 int sw_nblocks; /* number of blocks in list (sw_blk_t units) */ 72 int sw_allocsize; /* amount of space actually allocated */ 73 sw_blk_t sw_blocks; /* pointer to list of swap blocks */ | 70 int sw_nblocks; /* number of blocks in list (sw_blk_t units) */ 71 int sw_allocsize; /* amount of space actually allocated */ 72 sw_blk_t sw_blocks; /* pointer to list of swap blocks */ |
74 short sw_flags; /* flags */ | |
75 short sw_poip; /* pageouts in progress */ 76 short sw_piip; /* pageins in progress */ 77}; 78typedef struct swpager *sw_pager_t; 79 | 73 short sw_poip; /* pageouts in progress */ 74 short sw_piip; /* pageins in progress */ 75}; 76typedef struct swpager *sw_pager_t; 77 |
80#define SW_WANTED 0x01 81#define SW_NAMED 0x02 82 | |
83#ifdef KERNEL | 78#ifdef KERNEL |
84 85void swap_pager_init(void); 86vm_pager_t swap_pager_alloc(void *, vm_size_t, vm_prot_t, vm_offset_t); 87void swap_pager_dealloc(vm_pager_t); 88boolean_t swap_pager_getpage(vm_pager_t, vm_page_t, boolean_t); 89boolean_t swap_pager_putpage(vm_pager_t, vm_page_t, boolean_t); 90boolean_t swap_pager_getmulti(vm_pager_t, vm_page_t *, int, int, boolean_t); 91boolean_t swap_pager_haspage(vm_pager_t, vm_offset_t); 92int swap_pager_io(sw_pager_t, vm_page_t *, int, int, int); 93void swap_pager_iodone(struct buf *); 94boolean_t swap_pager_clean(); 95void swap_pager_copy __P((vm_pager_t, vm_offset_t, vm_pager_t, vm_offset_t, vm_offset_t)); 96void swap_pager_freespace __P((vm_pager_t, vm_offset_t, vm_offset_t)); 97 98extern struct pagerops swappagerops; 99 | 79void swap_pager_init __P((void)); 80vm_object_t swap_pager_alloc __P((void *, vm_size_t, vm_prot_t, vm_offset_t)); 81void swap_pager_dealloc __P((vm_object_t)); 82int swap_pager_getpages __P((vm_object_t, vm_page_t *, int, int)); 83int swap_pager_putpages __P((vm_object_t, vm_page_t *, int, boolean_t, int *)); 84boolean_t swap_pager_haspage __P((vm_object_t, vm_offset_t, int *, int *)); 85void swap_pager_sync __P((void)); 86void swap_pager_iodone __P((struct buf *)); 87int swap_pager_swp_alloc __P((vm_object_t, int)); 88void swap_pager_copy __P((vm_object_t, vm_offset_t, vm_object_t, vm_offset_t, vm_offset_t)); 89void swap_pager_freespace __P((vm_object_t, vm_offset_t, vm_offset_t)); 90void swap_pager_swap_init __P((void)); |
100#endif 101 102#endif /* _SWAP_PAGER_ */ | 91#endif 92 93#endif /* _SWAP_PAGER_ */ |