Changeset View
Changeset View
Standalone View
Standalone View
sys/arm/arm/pmap-v6.c
Show First 20 Lines • Show All 6,571 Lines • ▼ Show 20 Lines | |||||
int | int | ||||
pmap_pid_dump(int pid) | pmap_pid_dump(int pid) | ||||
{ | { | ||||
pmap_t pmap; | pmap_t pmap; | ||||
struct proc *p; | struct proc *p; | ||||
int npte2 = 0; | int npte2 = 0; | ||||
int i, j, index; | int i, j, index; | ||||
sx_slock(&allproc_lock); | sx_slock(&V_allproc_lock); | ||||
FOREACH_PROC_IN_SYSTEM(p) { | FOREACH_PROC_IN_SYSTEM(p) { | ||||
if (p->p_pid != pid || p->p_vmspace == NULL) | if (p->p_pid != pid || p->p_vmspace == NULL) | ||||
continue; | continue; | ||||
index = 0; | index = 0; | ||||
pmap = vmspace_pmap(p->p_vmspace); | pmap = vmspace_pmap(p->p_vmspace); | ||||
for (i = 0; i < NPTE1_IN_PT1; i++) { | for (i = 0; i < NPTE1_IN_PT1; i++) { | ||||
pt1_entry_t pte1; | pt1_entry_t pte1; | ||||
pt2_entry_t *pte2p, pte2; | pt2_entry_t *pte2p, pte2; | ||||
Show All 11 Lines | for (i = 0; i < NPTE1_IN_PT1; i++) { | ||||
} else if (pte1_is_link(pte1)) { | } else if (pte1_is_link(pte1)) { | ||||
for (j = 0; j < NPTE2_IN_PT2; j++) { | for (j = 0; j < NPTE2_IN_PT2; j++) { | ||||
va = base + (j << PAGE_SHIFT); | va = base + (j << PAGE_SHIFT); | ||||
if (va >= VM_MIN_KERNEL_ADDRESS) { | if (va >= VM_MIN_KERNEL_ADDRESS) { | ||||
if (index) { | if (index) { | ||||
index = 0; | index = 0; | ||||
printf("\n"); | printf("\n"); | ||||
} | } | ||||
sx_sunlock(&allproc_lock); | sx_sunlock(&V_allproc_lock); | ||||
return (npte2); | return (npte2); | ||||
} | } | ||||
pte2p = pmap_pte2(pmap, va); | pte2p = pmap_pte2(pmap, va); | ||||
pte2 = pte2_load(pte2p); | pte2 = pte2_load(pte2p); | ||||
pmap_pte2_release(pte2p); | pmap_pte2_release(pte2p); | ||||
if (!pte2_is_valid(pte2)) | if (!pte2_is_valid(pte2)) | ||||
continue; | continue; | ||||
Show All 10 Lines | for (i = 0; i < NPTE1_IN_PT1; i++) { | ||||
printf("\n"); | printf("\n"); | ||||
} else { | } else { | ||||
printf(" "); | printf(" "); | ||||
} | } | ||||
} | } | ||||
} | } | ||||
} | } | ||||
} | } | ||||
sx_sunlock(&allproc_lock); | sx_sunlock(&V_allproc_lock); | ||||
return (npte2); | return (npte2); | ||||
} | } | ||||
#endif | #endif | ||||
#ifdef DDB | #ifdef DDB | ||||
static pt2_entry_t * | static pt2_entry_t * | ||||
pmap_pte2_ddb(pmap_t pmap, vm_offset_t va) | pmap_pte2_ddb(pmap_t pmap, vm_offset_t va) | ||||
▲ Show 20 Lines • Show All 245 Lines • Show Last 20 Lines |