freebsd-dev/sys/vm
Konstantin Belousov 286790a7dd Update the device pager interface, while keeping the compatibility
layer for old KPI and KBI.  New interface should be used together with
d_mmap_single cdevsw method.

Device pager can be allocated with the cdev_pager_allocate(9)
function, which takes struct cdev_pager_ops, containing
constructor/destructor and page fault handler methods supplied by
driver.

Constructor and destructor, called at the pager allocation and
deallocation time, allow the driver to handle per-object private data.

The pager handler is called to handle page fault on the vm map entry
backed by the driver pager. Driver shall return either the vm_page_t
which should be mapped, or error code (which does not cause kernel
panic anymore). The page handler interface has a placeholder to
specify the access mode causing the fault, but currently PROT_READ is
always passed there.

Sponsored by:	The FreeBSD Foundation
Reviewed by:	alc
MFC after:	1 month
2011-11-15 14:40:00 +00:00
..
default_pager.c Replace pointer to "struct uidinfo" with pointer to "struct ucred" 2010-12-02 17:37:16 +00:00
device_pager.c Update the device pager interface, while keeping the compatibility 2011-11-15 14:40:00 +00:00
memguard.c Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
memguard.h Make memguard(9) capable to guard uma(9) allocations. 2011-10-12 18:08:28 +00:00
phys_pager.c Remove unneeded includes of <sys/linker_set.h>. Other headers that use 2011-01-11 13:59:06 +00:00
pmap.h Sort function prototypes. 2011-01-16 20:40:50 +00:00
redzone.c Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
redzone.h
sg_pager.c Eliminate duplication of the fake page code and zone by the device and sg 2011-03-11 07:07:48 +00:00
swap_pager.c In order to maximize the re-usability of kernel code in user space this 2011-09-16 13:58:51 +00:00
swap_pager.h Implement the linprocfs swaps file, providing information about the 2011-08-01 19:12:15 +00:00
uma_core.c Make memguard(9) capable to guard uma(9) allocations. 2011-10-12 18:08:28 +00:00
uma_dbg.c - Make the keg abstraction more complete. Permit a zone to have multiple 2009-01-25 09:11:24 +00:00
uma_dbg.h
uma_int.h 1. Prior to r214782, UMA did not support multipage allocations before 2011-05-21 17:43:43 +00:00
uma.h Make memguard(9) capable to guard uma(9) allocations. 2011-10-12 18:08:28 +00:00
vm_contig.c Simplify the implementation of the failure case in kmem_alloc_attr(). 2011-11-04 04:41:58 +00:00
vm_extern.h Eliminate vm_phys_bootstrap_alloc(). It was a failed attempt at 2011-10-30 05:06:14 +00:00
vm_fault.c Use the trick of performing the atomic operation on the contained aligned 2011-09-28 14:57:50 +00:00
vm_glue.c All the racct_*() calls need to happen with the proc locked. Fixing this 2011-07-06 20:06:44 +00:00
vm_init.c Introduce exec_alloc_args(). The objective being to encapsulate the 2010-07-27 17:31:03 +00:00
vm_kern.c Eliminate vestiges of page coloring in VM_ALLOC_NOOBJ calls to 2011-10-27 16:39:17 +00:00
vm_kern.h
vm_map.c All the racct_*() calls need to happen with the proc locked. Fixing this 2011-07-06 20:06:44 +00:00
vm_map.h - Merge changes to the base system to support OFED. These include 2011-03-21 09:40:01 +00:00
vm_meter.c Fix some locking nits with the p_state field of struct proc: 2011-03-24 18:40:11 +00:00
vm_mmap.c In order to maximize the re-usability of kernel code in user space this 2011-09-16 13:58:51 +00:00
vm_object.c Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
vm_object.h Update the device pager interface, while keeping the compatibility 2011-11-15 14:40:00 +00:00
vm_page.c Wake up the page daemon in vm_page_alloc_freelist() if it couldn't 2011-11-06 02:03:27 +00:00
vm_page.h Remove redundand definitions. The chunk was missed from r227102. 2011-11-05 09:03:18 +00:00
vm_pageout.c Split the vm_page flags PG_WRITEABLE and PG_REFERENCED into atomic 2011-09-06 10:30:11 +00:00
vm_pageout.h vm_pageout_flush() might cache the pages that finished write to the 2010-11-18 21:09:02 +00:00
vm_pager.c Remove the condition that is always true. 2011-11-15 14:09:53 +00:00
vm_pager.h Update the device pager interface, while keeping the compatibility 2011-11-15 14:40:00 +00:00
vm_param.h On Alan's advice, rather than do a wholesale conversion on a single 2010-04-30 00:46:43 +00:00
vm_phys.c Eliminate vm_phys_bootstrap_alloc(). It was a failed attempt at 2011-10-30 05:06:14 +00:00
vm_phys.h Eliminate vm_phys_bootstrap_alloc(). It was a failed attempt at 2011-10-30 05:06:14 +00:00
vm_reserv.c Eliminate vm_phys_bootstrap_alloc(). It was a failed attempt at 2011-10-30 05:06:14 +00:00
vm_reserv.h Eliminate vm_phys_bootstrap_alloc(). It was a failed attempt at 2011-10-30 05:06:14 +00:00
vm_unix.c Control the execution permission of the readable segments for 2011-10-15 12:35:18 +00:00
vm_zeroidle.c Split P_NOLOAD into a per-thread flag (TDF_NOLOAD). 2009-11-03 16:46:52 +00:00
vm.h Replace pointer to "struct uidinfo" with pointer to "struct ucred" 2010-12-02 17:37:16 +00:00
vnode_pager.c Provide typedefs for the type of bit mask for the page bits. 2011-11-05 08:20:32 +00:00
vnode_pager.h In the VOP_PUTPAGES() implementations, change the default error from 2011-06-01 21:00:28 +00:00