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