diff options
author | kib <kib@FreeBSD.org> | 2012-05-12 20:49:58 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2012-05-12 20:49:58 +0000 |
commit | 81841e52c639e6ba0458cee0f1e25b1b2857cb96 (patch) | |
tree | bc20093a4c12f2f5f1f0c7cde134a59736672853 /sys/vm/vm_pager.c | |
parent | 2bbcb90c8497481a621bfdc8f51f8dee788890ca (diff) | |
download | FreeBSD-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.c | 3 |
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]); |