FreeBSD/sys/arm/arm/pmap-v6.c
/*
 *  Extract from the kernel page table the physical address
 *  that is mapped by the given virtual address "va". Also
 *  return L2 page table entry which maps the address.
 *
 *  This is only intended to be used for panic dumps.
 */
Extract from the kernel page table the physical address
that is mapped by the given virtual address "va". Also
return L2 page table entry which maps the address.

This is only intended to be used for panic dumps.
Extract from the kernel page table the physical address that is mapped by the given virtual address " va " . Also return L2 page table entry which maps the address . This is only intended to be used for panic dumps .
vm_paddr_t
pmap_dump_kextract(vm_offset_t va, pt2_entry_t *pte2p)
{
	vm_paddr_t pa;
	pt1_entry_t pte1;
	pt2_entry_t pte2;
	pte1 = pte1_load(kern_pte1(va));
	if (pte1_is_section(pte1)) {
		pa = pte1_pa(pte1) | (va & PTE1_OFFSET);
		pte2 = pa | ATTR_TO_L2(pte1) | PTE2_V;
	} else if (pte1_is_link(pte1)) {
		pte2 = pte2_load(pt2map_entry(va));
		pa = pte2_pa(pte2);
	} else {
		pte2 = 0;
		pa = 0;
	}
	if (pte2p != NULL)
		*pte2p = pte2;
	return (pa);
}
vm_paddr_t pmap_dump_kextract ( vm_offset_t va , pt2_entry_t * pte2p ) { vm_paddr_t pa ; pt1_entry_t pte1 ; pt2_entry_t pte2 ; pte1 = pte1_load ( kern_pte1 ( va ) ) ; if ( pte1_is_section ( pte1 ) ) { pa = pte1_pa ( pte1 ) | ( va & PTE1_OFFSET ) ; pte2 = pa | ATTR_TO_L2 ( pte1 ) | PTE2_V ; } else if ( pte1_is_link ( pte1 ) ) { pte2 = pte2_load ( pt2map_entry ( va ) ) ; pa = pte2_pa ( pte2 ) ; } else { pte2 = 0 ; pa = 0 ; } if ( pte2p != NULL ) * pte2p = pte2 ; return ( pa ) ; }
Extract from the kernel page table the physical address
  that is mapped by the given virtual address "va".
Extract from the kernel page table the physical address that is mapped by the given virtual address " va " .