summaryrefslogtreecommitdiffstats
path: root/sys/sparc64
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2003-07-03 20:18:02 +0000
committeralc <alc@FreeBSD.org>2003-07-03 20:18:02 +0000
commit0699f7e17ff39a213cf2dd24b601d9d8e73271b9 (patch)
treed866e6a21d7e58ecc726f0d4972a8006256cf55d /sys/sparc64
parent6f4ee681fdadfbb7008a43761f43ef8fe7d4f5c1 (diff)
downloadFreeBSD-src-0699f7e17ff39a213cf2dd24b601d9d8e73271b9.zip
FreeBSD-src-0699f7e17ff39a213cf2dd24b601d9d8e73271b9.tar.gz
Background: pmap_object_init_pt() premaps the pages of a object in
order to avoid the overhead of later page faults. In general, it implements two cases: one for vnode-backed objects and one for device-backed objects. Only the device-backed case is really machine-dependent, belonging in the pmap. This commit moves the vnode-backed case into the (relatively) new function vm_map_pmap_enter(). On amd64 and i386, this commit only amounts to code rearrangement. On alpha and ia64, the new machine independent (MI) implementation of the vnode case is smaller and more efficient than their pmap-based implementations. (The MI implementation takes advantage of the fact that objects in -CURRENT are ordered collections of pages.) On sparc64, pmap_object_init_pt() hadn't (yet) been implemented.
Diffstat (limited to 'sys/sparc64')
-rw-r--r--sys/sparc64/sparc64/pmap.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/sparc64/sparc64/pmap.c b/sys/sparc64/sparc64/pmap.c
index 947fd92..337982c 100644
--- a/sys/sparc64/sparc64/pmap.c
+++ b/sys/sparc64/sparc64/pmap.c
@@ -1341,9 +1341,12 @@ pmap_enter_quick(pmap_t pm, vm_offset_t va, vm_page_t m, vm_page_t mpte)
void
pmap_object_init_pt(pmap_t pm, vm_offset_t addr, vm_object_t object,
- vm_pindex_t pindex, vm_size_t size, int limit)
+ vm_pindex_t pindex, vm_size_t size)
{
- /* XXX */
+
+ VM_OBJECT_LOCK_ASSERT(object, MA_OWNED);
+ KASSERT(object->type == OBJT_DEVICE,
+ ("pmap_object_init_pt: non-device object"));
}
void
OpenPOWER on IntegriCloud