MCPcopy Create free account
hub / github.com/F-Stack/f-stack / pmap_pte2_ddb

Function pmap_pte2_ddb

freebsd/arm/arm/pmap-v6.c:6710–6739  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6708
6709#ifdef DDB
6710static pt2_entry_t *
6711pmap_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
6741static void
6742dump_pmap(pmap_t pmap)

Callers 1

dump_linkFunction · 0.85

Calls 10

pte1_loadFunction · 0.85
pmap_pte1Function · 0.85
pte1_is_linkFunction · 0.85
pt2map_entryFunction · 0.85
pte1_link_paFunction · 0.85
pte2_paFunction · 0.85
pte2_loadFunction · 0.85
pte2_storeFunction · 0.85
tlb_flush_localFunction · 0.85
pmap_is_currentFunction · 0.70

Tested by

no test coverage detected