default_pager.c (12767) | default_pager.c (12820) |
---|---|
1/* 2 * Copyright (c) 1995, David Greenman 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 14 unchanged lines hidden (view full) --- 23 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 25 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 26 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 29 * SUCH DAMAGE. 30 * | 1/* 2 * Copyright (c) 1995, David Greenman 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 14 unchanged lines hidden (view full) --- 23 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 25 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 26 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 29 * SUCH DAMAGE. 30 * |
31 * $Id: default_pager.c,v 1.3 1995/12/07 12:48:00 davidg Exp $ | 31 * $Id: default_pager.c,v 1.4 1995/12/11 04:57:56 dyson Exp $ |
32 */ 33 34#include <sys/param.h> 35#include <sys/systm.h> 36#include <sys/kernel.h> 37#include <sys/malloc.h> 38#include <sys/queue.h> 39 40#include <vm/vm.h> 41#include <vm/vm_param.h> 42#include <vm/vm_prot.h> 43#include <vm/vm_object.h> 44#include <vm/vm_page.h> 45#include <vm/vm_pager.h> 46#include <vm/default_pager.h> 47#include <vm/swap_pager.h> 48 | 32 */ 33 34#include <sys/param.h> 35#include <sys/systm.h> 36#include <sys/kernel.h> 37#include <sys/malloc.h> 38#include <sys/queue.h> 39 40#include <vm/vm.h> 41#include <vm/vm_param.h> 42#include <vm/vm_prot.h> 43#include <vm/vm_object.h> 44#include <vm/vm_page.h> 45#include <vm/vm_pager.h> 46#include <vm/default_pager.h> 47#include <vm/swap_pager.h> 48 |
49static vm_object_t default_pager_alloc __P((void *, vm_size_t, vm_prot_t, 50 vm_ooffset_t)); 51static void default_pager_dealloc __P((vm_object_t)); 52static int default_pager_getpages __P((vm_object_t, vm_page_t *, int, int)); 53static int default_pager_putpages __P((vm_object_t, vm_page_t *, int, 54 boolean_t, int *)); 55static boolean_t default_pager_haspage __P((vm_object_t, vm_pindex_t, int *, 56 int *)); |
|
49/* 50 * pagerops for OBJT_DEFAULT - "default pager". 51 */ 52struct pagerops defaultpagerops = { 53 NULL, 54 default_pager_alloc, 55 default_pager_dealloc, 56 default_pager_getpages, 57 default_pager_putpages, 58 default_pager_haspage, 59 NULL 60}; 61 62/* 63 * no_pager_alloc just returns an initialized object. 64 */ | 57/* 58 * pagerops for OBJT_DEFAULT - "default pager". 59 */ 60struct pagerops defaultpagerops = { 61 NULL, 62 default_pager_alloc, 63 default_pager_dealloc, 64 default_pager_getpages, 65 default_pager_putpages, 66 default_pager_haspage, 67 NULL 68}; 69 70/* 71 * no_pager_alloc just returns an initialized object. 72 */ |
65vm_object_t | 73static vm_object_t |
66default_pager_alloc(handle, size, prot, offset) 67 void *handle; 68 register vm_size_t size; 69 vm_prot_t prot; 70 vm_ooffset_t offset; 71{ 72 if (handle != NULL) 73 panic("default_pager_alloc: handle specified"); 74 75 return vm_object_allocate(OBJT_DEFAULT, offset + size); 76} 77 | 74default_pager_alloc(handle, size, prot, offset) 75 void *handle; 76 register vm_size_t size; 77 vm_prot_t prot; 78 vm_ooffset_t offset; 79{ 80 if (handle != NULL) 81 panic("default_pager_alloc: handle specified"); 82 83 return vm_object_allocate(OBJT_DEFAULT, offset + size); 84} 85 |
78void | 86static void |
79default_pager_dealloc(object) 80 vm_object_t object; 81{ 82 /* 83 * OBJT_DEFAULT objects have no special resources allocated to them. 84 */ 85} 86 87/* 88 * The default pager has no backing store, so we always return 89 * failure. 90 */ | 87default_pager_dealloc(object) 88 vm_object_t object; 89{ 90 /* 91 * OBJT_DEFAULT objects have no special resources allocated to them. 92 */ 93} 94 95/* 96 * The default pager has no backing store, so we always return 97 * failure. 98 */ |
91int | 99static int |
92default_pager_getpages(object, m, count, reqpage) 93 vm_object_t object; 94 vm_page_t *m; 95 int count; 96 int reqpage; 97{ 98 return VM_PAGER_FAIL; 99} 100 | 100default_pager_getpages(object, m, count, reqpage) 101 vm_object_t object; 102 vm_page_t *m; 103 int count; 104 int reqpage; 105{ 106 return VM_PAGER_FAIL; 107} 108 |
101int | 109static int |
102default_pager_putpages(object, m, c, sync, rtvals) 103 vm_object_t object; 104 vm_page_t *m; 105 int c; 106 boolean_t sync; 107 int *rtvals; 108{ 109 int i; --- 11 unchanged lines hidden (view full) --- 121 for (i = 0; i < c; i++) 122 rtvals[i] = VM_PAGER_FAIL; 123 return VM_PAGER_FAIL; 124 } 125 126 return swap_pager_putpages(object, m, c, sync, rtvals); 127} 128 | 110default_pager_putpages(object, m, c, sync, rtvals) 111 vm_object_t object; 112 vm_page_t *m; 113 int c; 114 boolean_t sync; 115 int *rtvals; 116{ 117 int i; --- 11 unchanged lines hidden (view full) --- 129 for (i = 0; i < c; i++) 130 rtvals[i] = VM_PAGER_FAIL; 131 return VM_PAGER_FAIL; 132 } 133 134 return swap_pager_putpages(object, m, c, sync, rtvals); 135} 136 |
129boolean_t | 137static boolean_t |
130default_pager_haspage(object, pindex, before, after) 131 vm_object_t object; 132 vm_pindex_t pindex; 133 int *before; 134 int *after; 135{ 136 return FALSE; 137} | 138default_pager_haspage(object, pindex, before, after) 139 vm_object_t object; 140 vm_pindex_t pindex; 141 int *before; 142 int *after; 143{ 144 return FALSE; 145} |