1cea06682SLaurent Vivier /*
2cea06682SLaurent Vivier * QEMU monitor for m68k
3cea06682SLaurent Vivier *
4cea06682SLaurent Vivier * This work is licensed under the terms of the GNU GPL, version 2 or
5cea06682SLaurent Vivier * later. See the COPYING file in the top-level directory.
6cea06682SLaurent Vivier */
7cea06682SLaurent Vivier
8cea06682SLaurent Vivier #include "qemu/osdep.h"
9cea06682SLaurent Vivier #include "cpu.h"
10cea06682SLaurent Vivier #include "monitor/hmp-target.h"
112097dca6SLaurent Vivier #include "monitor/monitor.h"
122097dca6SLaurent Vivier
hmp_info_tlb(Monitor * mon,const QDict * qdict)132097dca6SLaurent Vivier void hmp_info_tlb(Monitor *mon, const QDict *qdict)
142097dca6SLaurent Vivier {
15*e7cff9c6SKevin Wolf CPUArchState *env1 = mon_get_cpu_env(mon);
162097dca6SLaurent Vivier
172097dca6SLaurent Vivier if (!env1) {
182097dca6SLaurent Vivier monitor_printf(mon, "No CPU available\n");
192097dca6SLaurent Vivier return;
202097dca6SLaurent Vivier }
212097dca6SLaurent Vivier
22fad866daSMarkus Armbruster dump_mmu(env1);
232097dca6SLaurent Vivier }
24cea06682SLaurent Vivier
25cea06682SLaurent Vivier static const MonitorDef monitor_defs[] = {
26cea06682SLaurent Vivier { "d0", offsetof(CPUM68KState, dregs[0]) },
27cea06682SLaurent Vivier { "d1", offsetof(CPUM68KState, dregs[1]) },
28cea06682SLaurent Vivier { "d2", offsetof(CPUM68KState, dregs[2]) },
29cea06682SLaurent Vivier { "d3", offsetof(CPUM68KState, dregs[3]) },
30cea06682SLaurent Vivier { "d4", offsetof(CPUM68KState, dregs[4]) },
31cea06682SLaurent Vivier { "d5", offsetof(CPUM68KState, dregs[5]) },
32cea06682SLaurent Vivier { "d6", offsetof(CPUM68KState, dregs[6]) },
33cea06682SLaurent Vivier { "d7", offsetof(CPUM68KState, dregs[7]) },
34cea06682SLaurent Vivier { "a0", offsetof(CPUM68KState, aregs[0]) },
35cea06682SLaurent Vivier { "a1", offsetof(CPUM68KState, aregs[1]) },
36cea06682SLaurent Vivier { "a2", offsetof(CPUM68KState, aregs[2]) },
37cea06682SLaurent Vivier { "a3", offsetof(CPUM68KState, aregs[3]) },
38cea06682SLaurent Vivier { "a4", offsetof(CPUM68KState, aregs[4]) },
39cea06682SLaurent Vivier { "a5", offsetof(CPUM68KState, aregs[5]) },
40cea06682SLaurent Vivier { "a6", offsetof(CPUM68KState, aregs[6]) },
41cea06682SLaurent Vivier { "a7", offsetof(CPUM68KState, aregs[7]) },
42cea06682SLaurent Vivier { "pc", offsetof(CPUM68KState, pc) },
43cea06682SLaurent Vivier { "sr", offsetof(CPUM68KState, sr) },
44cea06682SLaurent Vivier { "ssp", offsetof(CPUM68KState, sp[0]) },
45cea06682SLaurent Vivier { "usp", offsetof(CPUM68KState, sp[1]) },
466e22b28eSLaurent Vivier { "isp", offsetof(CPUM68KState, sp[2]) },
475fa9f1f2SLaurent Vivier { "sfc", offsetof(CPUM68KState, sfc) },
485fa9f1f2SLaurent Vivier { "dfc", offsetof(CPUM68KState, dfc) },
4988b2fef6SLaurent Vivier { "urp", offsetof(CPUM68KState, mmu.urp) },
5088b2fef6SLaurent Vivier { "srp", offsetof(CPUM68KState, mmu.srp) },
51c05c73b0SLaurent Vivier { "dttr0", offsetof(CPUM68KState, mmu.ttr[M68K_DTTR0]) },
52c05c73b0SLaurent Vivier { "dttr1", offsetof(CPUM68KState, mmu.ttr[M68K_DTTR1]) },
53c05c73b0SLaurent Vivier { "ittr0", offsetof(CPUM68KState, mmu.ttr[M68K_ITTR0]) },
54c05c73b0SLaurent Vivier { "ittr1", offsetof(CPUM68KState, mmu.ttr[M68K_ITTR1]) },
55e55886c3SLaurent Vivier { "mmusr", offsetof(CPUM68KState, mmu.mmusr) },
56cea06682SLaurent Vivier { NULL },
57cea06682SLaurent Vivier };
58cea06682SLaurent Vivier
target_monitor_defs(void)59cea06682SLaurent Vivier const MonitorDef *target_monitor_defs(void)
60cea06682SLaurent Vivier {
61cea06682SLaurent Vivier return monitor_defs;
62cea06682SLaurent Vivier }
63