the problem they were supposed to and their 'correctness' is in question.
Also, removed a NetBSD fix (apparently from Yuval Yarom) to vm_mmap that
conflicts with a much better patch from Guido van Ruuij.
* rights to redistribute these changes.
*/
* rights to redistribute these changes.
*/
-static char rcsid[] = "$Header: /home/cvs/386BSD/src/sys.386bsd/vm/vm_fault.c,v 1.1.1.1 93/06/12 14:57:40 rgrimes Exp $";
+static char rcsid[] = "$Header: /a/cvs/386BSD/src/sys.386bsd/vm/vm_fault.c,v 1.2 1993/06/15 15:07:46 nate Exp $";
/*
* Page fault handling module.
/*
* Page fault handling module.
PAGE_ASSERT_WAIT(m, !change_wiring);
UNLOCK_THINGS;
PAGE_ASSERT_WAIT(m, !change_wiring);
UNLOCK_THINGS;
-thread_wakeup(&vm_pages_needed); /* XXX! -- what does this do? */
thread_block();
wait_result = current_thread()->wait_result;
vm_object_deallocate(first_object);
thread_block();
wait_result = current_thread()->wait_result;
vm_object_deallocate(first_object);
PAGE_ASSERT_WAIT(m, !change_wiring);
UNLOCK_THINGS;
PAGE_ASSERT_WAIT(m, !change_wiring);
UNLOCK_THINGS;
-thread_wakeup(&vm_pages_needed); /* XXX! -- what does this do? */
thread_block();
wait_result = current_thread()->wait_result;
vm_object_deallocate(first_object);
thread_block();
wait_result = current_thread()->wait_result;
vm_object_deallocate(first_object);
*/
vm_page_lock_queues();
*/
vm_page_lock_queues();
pmap_page_protect(VM_PAGE_TO_PHYS(m), VM_PROT_NONE);
vm_page_unlock_queues();
pmap_page_protect(VM_PAGE_TO_PHYS(m), VM_PROT_NONE);
vm_page_unlock_queues();
copy_object->ref_count--;
vm_object_unlock(copy_object);
UNLOCK_THINGS;
copy_object->ref_count--;
vm_object_unlock(copy_object);
UNLOCK_THINGS;
-thread_wakeup(&vm_pages_needed); /* XXX! -- what does this do? */
thread_block();
wait_result = current_thread()->wait_result;
vm_object_deallocate(first_object);
thread_block();
wait_result = current_thread()->wait_result;
vm_object_deallocate(first_object);
((flags & MAP_SHARED) &&
(uap->prot & PROT_WRITE) && (fp->f_flag & FWRITE) == 0))
return(EACCES);
((flags & MAP_SHARED) &&
(uap->prot & PROT_WRITE) && (fp->f_flag & FWRITE) == 0))
return(EACCES);
- if ((flags & MAP_SHARED) && (fp->f_flag & FWRITE) == 0)
- flags = (flags & ~MAP_SHARED) | MAP_PRIVATE;
handle = (caddr_t)vp;
} else if (uap->fd != -1)
handle = (caddr_t)fp;
handle = (caddr_t)vp;
} else if (uap->fd != -1)
handle = (caddr_t)fp;