Deleted Added
full compact
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}