summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_pager.c
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2012-05-12 20:49:58 +0000
committerkib <kib@FreeBSD.org>2012-05-12 20:49:58 +0000
commit81841e52c639e6ba0458cee0f1e25b1b2857cb96 (patch)
treebc20093a4c12f2f5f1f0c7cde134a59736672853 /sys/vm/vm_pager.c
parent2bbcb90c8497481a621bfdc8f51f8dee788890ca (diff)
downloadFreeBSD-src-81841e52c639e6ba0458cee0f1e25b1b2857cb96.zip
FreeBSD-src-81841e52c639e6ba0458cee0f1e25b1b2857cb96.tar.gz
Add new pager type, OBJT_MGTDEVICE. It provides the device pager
which carries fictitous managed pages. In particular, the consumers of the new object type can remove all mappings of the device page with pmap_remove_all(). The range of physical addresses used for fake page allocation shall be registered with vm_phys_fictitious_reg_range() interface to allow the PHYS_TO_VM_PAGE() to work in pmap. Most likely, only i386 and amd64 pmaps can handle fictitious managed pages right now. Sponsored by: The FreeBSD Foundation Reviewed by: alc MFC after: 1 month
Diffstat (limited to 'sys/vm/vm_pager.c')
-rw-r--r--sys/vm/vm_pager.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/vm/vm_pager.c b/sys/vm/vm_pager.c
index eba926e..8c652e2 100644
--- a/sys/vm/vm_pager.c
+++ b/sys/vm/vm_pager.c
@@ -159,7 +159,8 @@ struct pagerops *pagertab[] = {
&devicepagerops, /* OBJT_DEVICE */
&physpagerops, /* OBJT_PHYS */
&deadpagerops, /* OBJT_DEAD */
- &sgpagerops /* OBJT_SG */
+ &sgpagerops, /* OBJT_SG */
+ &mgtdevicepagerops, /* OBJT_MGTDEVICE */
};
static const int npagers = sizeof(pagertab) / sizeof(pagertab[0]);
OpenPOWER on IntegriCloud