Index: lib/libc/sys/mmap.2
===================================================================
--- lib/libc/sys/mmap.2	(revision 193526)
+++ lib/libc/sys/mmap.2	(working copy)
@@ -28,7 +28,7 @@
 .\"	@(#)mmap.2	8.4 (Berkeley) 5/11/95
 .\" $FreeBSD$
 .\"
-.Dd October 24, 2008
+.Dd June 4, 2009
 .Dt MMAP 2
 .Os
 .Sh NAME
@@ -207,6 +207,11 @@
 However, it may be
 used to associate dirty VM pages with file system buffers and thus cause
 them to be flushed to physical media sooner rather than later.
+.It Dv MAP_PREFAULT_READ
+Avoid soft faults caused by read accesses to the region by immediately
+updating any machine-dependent virtual address translation structures,
+such as page tables, to map every memory resident page within the
+region with read access.
 .It Dv MAP_PRIVATE
 Modifications are private.
 .It Dv MAP_SHARED

Property changes on: lib/libusb/libusb.3
___________________________________________________________________
Deleted: svn:mergeinfo

Index: sys/vm/vm_mmap.c
===================================================================
--- sys/vm/vm_mmap.c	(revision 193526)
+++ sys/vm/vm_mmap.c	(working copy)
@@ -1414,9 +1414,10 @@
 		 */
 		if (handle == 0)
 			foff = 0;
-	} else {
+	} else if (flags & MAP_PREFAULT_READ)
+		docow = MAP_PREFAULT;
+	else
 		docow = MAP_PREFAULT_PARTIAL;
-	}
 
 	if ((flags & (MAP_ANON|MAP_SHARED)) == 0)
 		docow |= MAP_COPY_ON_WRITE;
Index: sys/sys/mman.h
===================================================================
--- sys/sys/mman.h	(revision 193526)
+++ sys/sys/mman.h	(working copy)
@@ -87,6 +87,7 @@
  * Extended flags
  */
 #define	MAP_NOCORE	 0x00020000 /* dont include these pages in a coredump */
+#define	MAP_PREFAULT_READ 0x00040000 /* prefault mapping for reading */
 #endif /* __BSD_VISIBLE */
 
 #if __POSIX_VISIBLE >= 199309