opnsense-src/lib
John Baldwin 936c09ac0f Add the posix_fadvise(2) system call. It is somewhat similar to
madvise(2) except that it operates on a file descriptor instead of a
memory region.  It is currently only supported on regular files.

Just as with madvise(2), the advice given to posix_fadvise(2) can be
divided into two types.  The first type provide hints about data access
patterns and are used in the file read and write routines to modify the
I/O flags passed down to VOP_READ() and VOP_WRITE().  These modes are
thus filesystem independent.  Note that to ease implementation (and
since this API is only advisory anyway), only a single non-normal
range is allowed per file descriptor.

The second type of hints are used to hint to the OS that data will or
will not be used.  These hints are implemented via a new VOP_ADVISE().
A default implementation is provided which does nothing for the WILLNEED
request and attempts to move any clean pages to the cache page queue for
the DONTNEED request.  This latter case required two other changes.
First, a new V_CLEANONLY flag was added to vinvalbuf().  This requests
vinvalbuf() to only flush clean buffers for the vnode from the buffer
cache and to not remove any backing pages from the vnode.  This is
used to ensure clean pages are not wired into the buffer cache before
attempting to move them to the cache page queue.  The second change adds
a new vm_object_page_cache() method.  This method is somewhat similar to
vm_object_page_remove() except that instead of freeing each page in the
specified range, it attempts to move clean pages to the cache queue if
possible.

To preserve the ABI of struct file, the f_cdevpriv pointer is now reused
in a union to point to the currently active advice region if one is
present for regular files.

Reviewed by:	jilles, kib, arch@
Approved by:	re (kib)
MFC after:	1 month
2011-11-04 04:02:50 +00:00
..
bind Upgrade to BIND version 9.8.1. Release notes at: 2011-09-03 07:13:45 +00:00
clang Upgrade our copy of llvm/clang to r142614, from upstream's release_30 2011-10-22 14:08:43 +00:00
csu Build Scrt.o on powerpc64. Its introduction on other platforms got lost 2011-06-27 16:24:36 +00:00
libalias
libarchive Fix Buildworld WITHOUT_OPENSSL. 2011-10-22 22:22:46 +00:00
libauditd
libbegemot
libblocksruntime Import libcompiler_rt into HEAD and add Makefiles. 2010-11-11 15:13:11 +00:00
libbluetooth Add the following Linux BlueZ compatibility macros: htobs(), htobl(), 2010-09-22 23:41:02 +00:00
libbsm
libbsnmp Bump shared libraries version numbers in preparation for 9.0. 2011-08-28 09:26:48 +00:00
libbz2
libc Add the posix_fadvise(2) system call. It is somewhat similar to 2011-11-04 04:02:50 +00:00
libcalendar
libcam Bump shared libraries version numbers in preparation for 9.0. 2011-08-28 09:26:48 +00:00
libcom_err
libcompat
libcompiler_rt Upgrade libcompiler_rt from revision 117047 to 132478. 2011-06-03 17:49:16 +00:00
libcrypt s/shaN_crypt/crypt_shaN/g to be a more consistent with the existing naming. 2011-05-05 01:09:42 +00:00
libdevinfo sys/rman.h now requires sys/types.h. Include it to make the API match 2011-02-10 04:53:09 +00:00
libdevstat Do not increment num_args if strsep(3) returned an empty field. 2011-04-04 09:25:27 +00:00
libdisk Disconnect sun4v architecture from the three. 2011-05-14 01:53:38 +00:00
libdwarf Bump shared libraries version numbers in preparation for 9.0. 2011-08-28 09:26:48 +00:00
libedit Add $FreeBSD$'s. 2011-04-14 15:42:15 +00:00
libefi
libelf - change "is is" to "is" or "it is" 2011-10-16 14:30:28 +00:00
libexpat
libfetch latin1 -> utf8 2011-10-19 11:43:51 +00:00
libgeom Remove stale link. 2010-12-04 08:44:56 +00:00
libgpib
libgssapi Fix whitespace inconsistencies found in homegrown Symbol.maps. 2011-10-07 15:05:24 +00:00
libiconv Remove redundant assignments to WARNS. 2011-06-06 20:24:17 +00:00
libiconv_modules Add the BSD-licensed Citrus iconv to the base system with default off 2011-02-25 00:04:39 +00:00
libipsec - change "is is" to "is" or "it is" 2011-10-16 14:30:28 +00:00
libipx Fix incorrect usage of 'assure' and 'insure'. 2010-08-28 16:32:01 +00:00
libjail Introduce signed and unsigned version of CTLTYPE_QUAD, renaming 2011-01-19 23:00:25 +00:00
libkiconv
libkse
libkvm Add support for PBVM addresses. In a nutshell this means: 2011-08-06 15:59:54 +00:00
liblzma Update xz to git snapshot of v5.0 branch as of 20110711 (post-5.0.3) 2011-07-11 14:15:27 +00:00
libmagic
libmd Rewrite HISTORY: The SHA256 code first appeared in 6.0, and the SHA512 2011-06-27 02:10:10 +00:00
libmemstat Cosmetic cleanup: remove #define LIBMEMSTAT used to prevent a nested 2011-09-02 14:10:42 +00:00
libmilter
libmp Fix whitespace inconsistencies found in homegrown Symbol.maps. 2011-10-07 15:05:24 +00:00
libncp Change ncp_scan_bindery_object() to pass a constant search string. 2011-10-16 08:44:03 +00:00
libnetgraph
libngatm
libopie Bump shared libraries version numbers in preparation for 9.0. 2011-08-28 09:26:48 +00:00
libpam Note that pam_unix(8) does not respect PAM_CHANGE_EXPIRED_AUTHTOK. 2011-11-02 23:40:21 +00:00
libpcap Bump shared libraries version numbers in preparation for 9.0. 2011-08-28 09:26:48 +00:00
libpmc Add a flush of the current PMC log buffer before displaying the next top. 2011-10-18 15:25:43 +00:00
libproc fix a serious bug in libproc's proc_attach 2011-08-03 09:55:59 +00:00
libprocstat Updates to libprocstat(3) and procstat(1) to allow monitoring Capsicum 2011-08-14 00:42:09 +00:00
libradius Add links for libradius(3) functions. 2010-10-18 12:35:10 +00:00
librpcsec_gss
librpcsvc
librt Fix the 32-bit build stage on amd64 when WITH_CTF is enabled. It seems 2011-02-23 21:17:38 +00:00
librtld_db Bump shared libraries version numbers in preparation for 9.0. 2011-08-28 09:26:48 +00:00
libsbuf Ok, so we use different comment conventions in Symbol.map and Version.def 2011-05-17 19:20:32 +00:00
libsdp Change the SDP_GET* macros to cast to a const buffer. 2011-10-16 08:45:16 +00:00
libsm
libsmb
libsmdb
libsmutil
libstand - Removing some unneeded definitions of NULL(cruft related to 1970's C). 2011-07-10 07:25:34 +00:00
libtacplus Bump shared libraries version numbers in preparation for 9.0. 2011-08-28 09:26:48 +00:00
libtelnet
libthr Do not set thread name to less than informative 'initial thread'. 2011-06-19 13:35:36 +00:00
libthread_db Change lwp to int64_t as thr_pread_long() always uses a 64-bit value 2011-08-07 15:52:13 +00:00
libufs Bump shared libraries version numbers in preparation for 9.0. 2011-08-28 09:26:48 +00:00
libugidfw Quiet clang warnings by using string literal format strings. 2011-01-04 13:02:52 +00:00
libulog Fix whitespace inconsistencies found in homegrown Symbol.maps. 2011-10-07 15:05:24 +00:00
libusb Fix how libusb20_dev_kernel_driver_active() and 2011-10-10 16:13:33 +00:00
libusbhid MFprojects/hid: 2011-09-28 14:52:25 +00:00
libutil In pidfile_open(), if the pidfile is locked, but empty (PID is not stored yet) 2011-10-16 21:30:15 +00:00
libvgl Change libvgl's set4pixels() and set2lines() functions from plain 2010-10-04 18:16:38 +00:00
libwrap
liby
libypclnt
libz Disable gvmat64.S, the assembler version of longest_match for now. 2011-07-18 19:23:50 +00:00
msun Minor corrections and clarifications regarding exceptions. 2011-10-21 14:23:59 +00:00
ncurses
Makefile Vendor import of llvm release_30 branch r142614: 2011-10-20 21:10:27 +00:00
Makefile.inc