Page MenuHomeFreeBSD

D3206.id7373.diff
No OneTemporary

D3206.id7373.diff

Index: sys/mips/mips/pmap.c
===================================================================
--- sys/mips/mips/pmap.c
+++ sys/mips/mips/pmap.c
@@ -3303,7 +3303,11 @@
static void
pads(pmap_t pm)
{
- unsigned va, i, j;
+ int i, j;
+#if defined(__mips_n64)
+ int k;
+#endif
+ vm_offset_t va;
pt_entry_t *ptep;
if (pm == kernel_pmap)
@@ -3311,31 +3315,41 @@
for (i = 0; i < NPTEPG; i++)
if (pm->pm_segtab[i])
for (j = 0; j < NPTEPG; j++) {
- va = (i << SEGSHIFT) + (j << PAGE_SHIFT);
- if (pm == kernel_pmap && va < KERNBASE)
- continue;
- if (pm != kernel_pmap &&
- va >= VM_MAXUSER_ADDRESS)
- continue;
- ptep = pmap_pte(pm, va);
- if (pte_test(ptep, PTE_V))
- printf("%x:%x ", va, *(int *)ptep);
+#if defined(__mips_n64)
+ if (pm->pm_segtab[j])
+ for (k = 0; k < NPTEPG; k++) {
+ va = (i << SEGSHIFT) + (j << PAGE_SHIFT) + (k << PAGE_SHIFT);
+#else
+ va = (i << SEGSHIFT) + (j << PAGE_SHIFT);
+#endif
+ if (pm == kernel_pmap && va < KERNBASE)
+ continue;
+ if (pm != kernel_pmap &&
+ va >= VM_MAXUSER_ADDRESS)
+ continue;
+ ptep = pmap_pte(pm, va);
+ if (pte_test(ptep, PTE_V))
+ printf("%jx:%jx ", (uintmax_t)va, (uintmax_t)*ptep);
+#if defined(__mips_n64)
+ }
+#endif
}
}
void
-pmap_pvdump(vm_offset_t pa)
+pmap_pvdump(vm_paddr_t pa)
{
register pv_entry_t pv;
+ pmap_t pmap;
vm_page_t m;
- printf("pa %x", pa);
+ printf("pa %jx", (uintmax_t)pa);
m = PHYS_TO_VM_PAGE(pa);
- for (pv = TAILQ_FIRST(&m->md.pv_list); pv;
- pv = TAILQ_NEXT(pv, pv_list)) {
- printf(" -> pmap %p, va %x", (void *)pv->pv_pmap, pv->pv_va);
- pads(pv->pv_pmap);
+ TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) {
+ pmap = PV_PMAP(pv);
+ printf(" -> pmap %p, va %jx", pmap, (uintmax_t)pv->pv_va);
+ pads(pmap);
}
printf(" ");
}

File Metadata

Mime Type
text/plain
Expires
Wed, Apr 29, 6:28 PM (15 h, 12 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
32373662
Default Alt Text
D3206.id7373.diff (2 KB)

Event Timeline