staticinlineconstchar *msk2str(unsignedint mask)
{ switch (mask) { case PM_4K: return"4kb"; case PM_16K: return"16kb"; case PM_64K: return"64kb"; case PM_256K: return"256kb"; #ifdef CONFIG_CPU_CAVIUM_OCTEON case PM_8K: return"8kb"; case PM_32K: return"32kb"; case PM_128K: return"128kb"; case PM_512K: return"512kb"; case PM_2M: return"2Mb"; case PM_8M: return"8Mb"; case PM_32M: return"32Mb"; #endif
} return"";
}
if (cpu_has_guestid)
guestctl1 = read_c0_guestctl1();
/* EHINV bit marks entire entry as invalid */ if (cpu_has_tlbinv && entryhi & MIPS_ENTRYHI_EHINV) continue; /* * Prior to tlbinv, unused entries have a virtual address of * CKSEG0.
*/ if ((entryhi & ~0x1ffffUL) == CKSEG0) continue; /* * ASID takes effect in absence of G (global) bit. * We check both G bits, even though architecturally they should * match one another, because some revisions of the SB1 core may * leave only a single G bit set after a machine check exception * due to duplicate TLB entry.
*/ if (!((entrylo0 | entrylo1) & ENTRYLO_G) && (mmid != asid)) continue;
/* * Only print entries in use
*/
printk("Index: %2d pgmask=%s ", i, msk2str(pagemask));
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.