| 6708 | |
| 6709 | #ifdef DDB |
| 6710 | static pt2_entry_t * |
| 6711 | pmap_pte2_ddb(pmap_t pmap, vm_offset_t va) |
| 6712 | { |
| 6713 | pt1_entry_t pte1; |
| 6714 | vm_paddr_t pt2pg_pa; |
| 6715 | |
| 6716 | pte1 = pte1_load(pmap_pte1(pmap, va)); |
| 6717 | if (!pte1_is_link(pte1)) |
| 6718 | return (NULL); |
| 6719 | |
| 6720 | if (pmap_is_current(pmap)) |
| 6721 | return (pt2map_entry(va)); |
| 6722 | |
| 6723 | /* Note that L2 page table size is not equal to PAGE_SIZE. */ |
| 6724 | pt2pg_pa = trunc_page(pte1_link_pa(pte1)); |
| 6725 | if (pte2_pa(pte2_load(PMAP3)) != pt2pg_pa) { |
| 6726 | pte2_store(PMAP3, PTE2_KPT(pt2pg_pa)); |
| 6727 | #ifdef SMP |
| 6728 | PMAP3cpu = PCPU_GET(cpuid); |
| 6729 | #endif |
| 6730 | tlb_flush_local((vm_offset_t)PADDR3); |
| 6731 | } |
| 6732 | #ifdef SMP |
| 6733 | else if (PMAP3cpu != PCPU_GET(cpuid)) { |
| 6734 | PMAP3cpu = PCPU_GET(cpuid); |
| 6735 | tlb_flush_local((vm_offset_t)PADDR3); |
| 6736 | } |
| 6737 | #endif |
| 6738 | return (PADDR3 + (arm32_btop(va) & (NPTE2_IN_PG - 1))); |
| 6739 | } |
| 6740 | |
| 6741 | static void |
| 6742 | dump_pmap(pmap_t pmap) |
no test coverage detected