Deleted Added
full compact
device_pager.c (15583) device_pager.c (15809)
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 * @(#)device_pager.c 8.1 (Berkeley) 6/11/93
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 * @(#)device_pager.c 8.1 (Berkeley) 6/11/93
39 * $Id: device_pager.c,v 1.21 1996/03/09 06:54:41 dyson Exp $
39 * $Id: device_pager.c,v 1.22 1996/05/03 21:01:45 phk Exp $
40 */
41
42#include <sys/param.h>
43#include <sys/systm.h>
44#include <sys/conf.h>
45#include <sys/mman.h>
46#include <sys/malloc.h>
47#include <sys/proc.h>

--- 129 unchanged lines hidden (view full) ---

177 vm_object_t object;
178{
179 vm_page_t m;
180
181 TAILQ_REMOVE(&dev_pager_object_list, object, pager_object_list);
182 /*
183 * Free up our fake pages.
184 */
40 */
41
42#include <sys/param.h>
43#include <sys/systm.h>
44#include <sys/conf.h>
45#include <sys/mman.h>
46#include <sys/malloc.h>
47#include <sys/proc.h>

--- 129 unchanged lines hidden (view full) ---

177 vm_object_t object;
178{
179 vm_page_t m;
180
181 TAILQ_REMOVE(&dev_pager_object_list, object, pager_object_list);
182 /*
183 * Free up our fake pages.
184 */
185 while ((m = object->un_pager.devp.devp_pglist.tqh_first) != 0) {
185 while ((m = TAILQ_FIRST(&object->un_pager.devp.devp_pglist)) != 0) {
186 TAILQ_REMOVE(&object->un_pager.devp.devp_pglist, m, pageq);
187 dev_pager_putfake(m);
188 }
189}
190
191static int
192dev_pager_getpages(object, m, count, reqpage)
193 vm_object_t object;

--- 66 unchanged lines hidden (view full) ---

260
261static vm_page_t
262dev_pager_getfake(paddr)
263 vm_offset_t paddr;
264{
265 vm_page_t m;
266 int i;
267
186 TAILQ_REMOVE(&object->un_pager.devp.devp_pglist, m, pageq);
187 dev_pager_putfake(m);
188 }
189}
190
191static int
192dev_pager_getpages(object, m, count, reqpage)
193 vm_object_t object;

--- 66 unchanged lines hidden (view full) ---

260
261static vm_page_t
262dev_pager_getfake(paddr)
263 vm_offset_t paddr;
264{
265 vm_page_t m;
266 int i;
267
268 if (dev_pager_fakelist.tqh_first == NULL) {
268 if (TAILQ_FIRST(&dev_pager_fakelist) == NULL) {
269 m = (vm_page_t) malloc(PAGE_SIZE * 2, M_VMPGDATA, M_WAITOK);
270 for (i = (PAGE_SIZE * 2) / sizeof(*m); i > 0; i--) {
271 TAILQ_INSERT_TAIL(&dev_pager_fakelist, m, pageq);
272 m++;
273 }
274 }
269 m = (vm_page_t) malloc(PAGE_SIZE * 2, M_VMPGDATA, M_WAITOK);
270 for (i = (PAGE_SIZE * 2) / sizeof(*m); i > 0; i--) {
271 TAILQ_INSERT_TAIL(&dev_pager_fakelist, m, pageq);
272 m++;
273 }
274 }
275 m = dev_pager_fakelist.tqh_first;
275 m = TAILQ_FIRST(&dev_pager_fakelist);
276 TAILQ_REMOVE(&dev_pager_fakelist, m, pageq);
277
278 m->flags = PG_BUSY | PG_FICTITIOUS;
279 m->valid = VM_PAGE_BITS_ALL;
280 m->dirty = 0;
281 m->busy = 0;
282 m->queue = PQ_NONE;
283

--- 15 unchanged lines hidden ---
276 TAILQ_REMOVE(&dev_pager_fakelist, m, pageq);
277
278 m->flags = PG_BUSY | PG_FICTITIOUS;
279 m->valid = VM_PAGE_BITS_ALL;
280 m->dirty = 0;
281 m->busy = 0;
282 m->queue = PQ_NONE;
283

--- 15 unchanged lines hidden ---