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 --- |