Deleted Added
sdiff udiff text old ( 270439 ) new ( 270920 )
full compact
1/* From: $NetBSD: pmap.c,v 1.148 2004/04/03 04:35:48 bsh Exp $ */
2/*-
3 * Copyright 2004 Olivier Houchard.
4 * Copyright 2003 Wasabi Systems, Inc.
5 * All rights reserved.
6 *
7 * Written by Steve C. Woodford for Wasabi Systems, Inc.
8 *

--- 128 unchanged lines hidden (view full) ---

137 *
138 * Note that pmap_mapdev() and pmap_unmapdev() are implemented in arm/devmap.c
139 */
140/* Include header files */
141
142#include "opt_vm.h"
143
144#include <sys/cdefs.h>
145__FBSDID("$FreeBSD: stable/10/sys/arm/arm/pmap.c 270439 2014-08-24 07:53:15Z kib $");
146#include <sys/param.h>
147#include <sys/systm.h>
148#include <sys/kernel.h>
149#include <sys/ktr.h>
150#include <sys/lock.h>
151#include <sys/proc.h>
152#include <sys/malloc.h>
153#include <sys/msgbuf.h>

--- 3383 unchanged lines hidden (view full) ---

3537 PMAP_LOCK(pmap);
3538 pmap_enter_locked(pmap, va, m, prot & (VM_PROT_READ | VM_PROT_EXECUTE),
3539 PMAP_ENTER_NOSLEEP);
3540 rw_wunlock(&pvh_global_lock);
3541 PMAP_UNLOCK(pmap);
3542}
3543
3544/*
3545 * Routine: pmap_change_wiring
3546 * Function: Change the wiring attribute for a map/virtual-address
3547 * pair.
3548 * In/out conditions:
3549 * The mapping must already exist in the pmap.
3550 */
3551void
3552pmap_change_wiring(pmap_t pmap, vm_offset_t va, boolean_t wired)
3553{
3554 struct l2_bucket *l2b;
3555 pt_entry_t *ptep, pte;
3556 vm_page_t pg;
3557
3558 rw_wlock(&pvh_global_lock);
3559 PMAP_LOCK(pmap);
3560 l2b = pmap_get_l2_bucket(pmap, va);
3561 KASSERT(l2b, ("No l2b bucket in pmap_change_wiring"));
3562 ptep = &l2b->l2b_kva[l2pte_index(va)];
3563 pte = *ptep;
3564 pg = PHYS_TO_VM_PAGE(l2pte_pa(pte));
3565 if (pg)
3566 pmap_modify_pv(pg, pmap, va, PVF_WIRED, wired ? PVF_WIRED : 0);
3567 rw_wunlock(&pvh_global_lock);
3568 PMAP_UNLOCK(pmap);
3569}
3570
3571
3572/*
3573 * Copy the range specified by src_addr/len
3574 * from the source map to the range dst_addr/len

--- 1228 unchanged lines hidden ---