From: aurel32 Date: Tue, 3 Mar 2009 06:12:22 +0000 (+0000) Subject: SH4: Added monitoring of TLBs X-Git-Tag: release_0_10_0~16 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=7c664e2f4efbf27b1fa47ceed0c4e661fb681238;p=qemu.git SH4: Added monitoring of TLBs This patch might interest some people trying (as I try to do) to fix some tlbs for kernel/user space data sharing. Signed-off-by: Lionel Landwerlin Signed-off-by: Aurelien Jarno git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6670 c046a42c-6fe2-441c-8c8c-71466251a162 --- diff --git a/monitor.c b/monitor.c index 35f014d21..513eca9da 100644 --- a/monitor.c +++ b/monitor.c @@ -1245,6 +1245,35 @@ static void mem_info(void) } #endif +#if defined(TARGET_SH4) + +static void print_tlb(int idx, tlb_t *tlb) +{ + term_printf(" tlb%i:\t" + "asid=%hhu vpn=%x\tppn=%x\tsz=%hhu size=%u\t" + "v=%hhu shared=%hhu cached=%hhu prot=%hhu " + "dirty=%hhu writethrough=%hhu\n", + idx, + tlb->asid, tlb->vpn, tlb->ppn, tlb->sz, tlb->size, + tlb->v, tlb->sh, tlb->c, tlb->pr, + tlb->d, tlb->wt); +} + +static void tlb_info(void) +{ + CPUState *env = mon_get_cpu(); + int i; + + term_printf ("ITLB:\n"); + for (i = 0 ; i < ITLB_SIZE ; i++) + print_tlb (i, &env->itlb[i]); + term_printf ("UTLB:\n"); + for (i = 0 ; i < UTLB_SIZE ; i++) + print_tlb (i, &env->utlb[i]); +} + +#endif + static void do_info_kqemu(void) { #ifdef USE_KQEMU @@ -1556,9 +1585,11 @@ static const term_cmd_t info_cmds[] = { "", "show i8259 (PIC) state", }, { "pci", "", pci_info, "", "show PCI info", }, -#if defined(TARGET_I386) +#if defined(TARGET_I386) || defined(TARGET_SH4) { "tlb", "", tlb_info, "", "show virtual to physical memory mappings", }, +#endif +#if defined(TARGET_I386) { "mem", "", mem_info, "", "show the active virtual memory mappings", }, { "hpet", "", do_info_hpet,