FreeBSD/sys/powerpc/aim/mmu_oea.c
/*
 * Extract the physical page address associated with the given kernel virtual
 * address.
 */
Extract the physical page address associated with the given kernel virtual
address.
Extract the physical page address associated with the given kernel virtual address .
vm_paddr_t
moea_kextract(mmu_t mmu, vm_offset_t va)
{
	struct		pvo_entry *pvo;
	vm_paddr_t pa;
	if (va < VM_MIN_KERNEL_ADDRESS) {
		return (va);
	}
	PMAP_LOCK(kernel_pmap);
	pvo = moea_pvo_find_va(kernel_pmap, va & ~ADDR_POFF, NULL);
	KASSERT(pvo != NULL, ("moea_kextract: no addr found"));
	pa = (pvo->pvo_pte.pte.pte_lo & PTE_RPGN) | (va & ADDR_POFF);
	PMAP_UNLOCK(kernel_pmap);
	return (pa);
}
vm_paddr_t moea_kextract ( mmu_t mmu , vm_offset_t va ) { struct pvo_entry * pvo ; vm_paddr_t pa ; if ( va < VM_MIN_KERNEL_ADDRESS ) { return ( va ) ; } PMAP_LOCK ( kernel_pmap ) ; pvo = moea_pvo_find_va ( kernel_pmap , va & ~ ADDR_POFF , NULL ) ; KASSERT ( pvo != NULL , ( " " ) ) ; pa = ( pvo -> pvo_pte . pte . pte_lo & PTE_RPGN ) | ( va & ADDR_POFF ) ; PMAP_UNLOCK ( kernel_pmap ) ; return ( pa ) ; }
Extract the physical page address associated with the given kernel virtual
 address.
Extract the physical page address associated with the given kernel virtual address .
/*
	 * Allow direct mappings on 32-bit OEA
	 */