vm_fault.c (10556) | vm_fault.c (10576) |
---|---|
1/* 2 * Copyright (c) 1991, 1993 3 * The Regents of the University of California. All rights reserved. 4 * Copyright (c) 1994 John S. Dyson 5 * All rights reserved. 6 * Copyright (c) 1994 David Greenman 7 * All rights reserved. 8 * --- 52 unchanged lines hidden (view full) --- 61 * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU 62 * School of Computer Science 63 * Carnegie Mellon University 64 * Pittsburgh PA 15213-3890 65 * 66 * any improvements or extensions that they make and grant Carnegie the 67 * rights to redistribute these changes. 68 * | 1/* 2 * Copyright (c) 1991, 1993 3 * The Regents of the University of California. All rights reserved. 4 * Copyright (c) 1994 John S. Dyson 5 * All rights reserved. 6 * Copyright (c) 1994 David Greenman 7 * All rights reserved. 8 * --- 52 unchanged lines hidden (view full) --- 61 * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU 62 * School of Computer Science 63 * Carnegie Mellon University 64 * Pittsburgh PA 15213-3890 65 * 66 * any improvements or extensions that they make and grant Carnegie the 67 * rights to redistribute these changes. 68 * |
69 * $Id: vm_fault.c,v 1.27 1995/09/03 20:40:41 dyson Exp $ | 69 * $Id: vm_fault.c,v 1.28 1995/09/04 04:44:26 dyson Exp $ |
70 */ 71 72/* 73 * Page fault handling module. 74 */ 75 76#include <sys/param.h> 77#include <sys/systm.h> --- 556 unchanged lines hidden (view full) --- 634 * later. 635 */ 636 if (fault_type & VM_PROT_WRITE) { 637 m->dirty = VM_PAGE_BITS_ALL; 638 } 639 } 640 641 m->flags |= PG_MAPPED|PG_REFERENCED; | 70 */ 71 72/* 73 * Page fault handling module. 74 */ 75 76#include <sys/param.h> 77#include <sys/systm.h> --- 556 unchanged lines hidden (view full) --- 634 * later. 635 */ 636 if (fault_type & VM_PROT_WRITE) { 637 m->dirty = VM_PAGE_BITS_ALL; 638 } 639 } 640 641 m->flags |= PG_MAPPED|PG_REFERENCED; |
642 m->flags &= ~PG_ZERO; |
|
642 643 pmap_enter(map->pmap, vaddr, VM_PAGE_TO_PHYS(m), prot, wired); 644#if 0 645 if (change_wiring == 0 && wired == 0) 646 pmap_prefault(map->pmap, vaddr, entry, first_object); 647#endif 648 649 /* --- 190 unchanged lines hidden (view full) --- 840 panic("vm_fault_copy_wired: page missing"); 841 842 vm_page_copy(src_m, dst_m); 843 844 /* 845 * Enter it in the pmap... 846 */ 847 | 643 644 pmap_enter(map->pmap, vaddr, VM_PAGE_TO_PHYS(m), prot, wired); 645#if 0 646 if (change_wiring == 0 && wired == 0) 647 pmap_prefault(map->pmap, vaddr, entry, first_object); 648#endif 649 650 /* --- 190 unchanged lines hidden (view full) --- 841 panic("vm_fault_copy_wired: page missing"); 842 843 vm_page_copy(src_m, dst_m); 844 845 /* 846 * Enter it in the pmap... 847 */ 848 |
848 dst_m->flags |= PG_WRITEABLE; 849 dst_m->flags |= PG_MAPPED; | 849 dst_m->flags |= PG_WRITEABLE|PG_MAPPED; |
850 pmap_enter(dst_map->pmap, vaddr, VM_PAGE_TO_PHYS(dst_m), 851 prot, FALSE); 852 853 /* 854 * Mark it no longer busy, and put it on the active list. 855 */ 856 vm_page_activate(dst_m); 857 PAGE_WAKEUP(dst_m); --- 15 unchanged lines hidden (view full) --- 873{ 874 vm_page_t m; 875 876 *rtm = 0; 877 *rtobject = 0; 878 *rtoffset = 0; 879 880 while (!(m = vm_page_lookup(object, offset))) { | 850 pmap_enter(dst_map->pmap, vaddr, VM_PAGE_TO_PHYS(dst_m), 851 prot, FALSE); 852 853 /* 854 * Mark it no longer busy, and put it on the active list. 855 */ 856 vm_page_activate(dst_m); 857 PAGE_WAKEUP(dst_m); --- 15 unchanged lines hidden (view full) --- 873{ 874 vm_page_t m; 875 876 *rtm = 0; 877 *rtobject = 0; 878 *rtoffset = 0; 879 880 while (!(m = vm_page_lookup(object, offset))) { |
881 if (vm_pager_has_page(object, object->paging_offset + offset, NULL, NULL)) { | 881 if (vm_pager_has_page(object, 882 object->paging_offset + offset, NULL, NULL)) { |
882 *rtobject = object; 883 *rtoffset = offset; 884 return 1; 885 } 886 if (!object->backing_object || (object == *rtobject)) 887 return 0; 888 else { 889 offset += object->backing_object_offset; --- 174 unchanged lines hidden --- | 883 *rtobject = object; 884 *rtoffset = offset; 885 return 1; 886 } 887 if (!object->backing_object || (object == *rtobject)) 888 return 0; 889 else { 890 offset += object->backing_object_offset; --- 174 unchanged lines hidden --- |