hw/ppc: Avoid using Monitor in icp_pic_print_info()

Replace Monitor API by HumanReadableText one.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Harsh Prateek Bora <harshpb@linux.ibm.com>
Message-Id: <20240610062105.49848-3-philmd@linaro.org>
This commit is contained in:
Philippe Mathieu-Daudé 2024-06-07 13:14:20 +02:00
parent dafec001d6
commit 5242494c05
4 changed files with 19 additions and 7 deletions

View File

@ -42,7 +42,7 @@
#include "sysemu/reset.h"
#include "target/ppc/cpu.h"
void icp_pic_print_info(ICPState *icp, Monitor *mon)
void icp_pic_print_info(ICPState *icp, GString *buf)
{
int cpu_index;
@ -63,9 +63,9 @@ void icp_pic_print_info(ICPState *icp, Monitor *mon)
icp_synchronize_state(icp);
}
monitor_printf(mon, "CPU %d XIRR=%08x (%p) PP=%02x MFRR=%02x\n",
cpu_index, icp->xirr, icp->xirr_owner,
icp->pending_priority, icp->mfrr);
g_string_append_printf(buf, "CPU %d XIRR=%08x (%p) PP=%02x MFRR=%02x\n",
cpu_index, icp->xirr, icp->xirr_owner,
icp->pending_priority, icp->mfrr);
}
void ics_pic_print_info(ICSState *ics, Monitor *mon)

View File

@ -34,6 +34,8 @@
#include "hw/ppc/xics_spapr.h"
#include "hw/ppc/fdt.h"
#include "qapi/visitor.h"
#include "qapi/type-helpers.h"
#include "monitor/monitor.h"
/*
* Guest interfaces
@ -399,12 +401,16 @@ static void xics_spapr_print_info(SpaprInterruptController *intc, Monitor *mon)
{
ICSState *ics = ICS_SPAPR(intc);
CPUState *cs;
g_autoptr(GString) buf = g_string_new("");
g_autoptr(HumanReadableText) info = NULL;
CPU_FOREACH(cs) {
PowerPCCPU *cpu = POWERPC_CPU(cs);
icp_pic_print_info(spapr_cpu_state(cpu)->icp, mon);
icp_pic_print_info(spapr_cpu_state(cpu)->icp, buf);
}
info = human_readable_text_from_str(buf);
monitor_puts(mon, info->human_readable_text);
ics_pic_print_info(ics, mon);
}

View File

@ -1130,7 +1130,13 @@ static void pnv_chip_power8_intc_destroy(PnvChip *chip, PowerPCCPU *cpu)
static void pnv_chip_power8_intc_print_info(PnvChip *chip, PowerPCCPU *cpu,
Monitor *mon)
{
icp_pic_print_info(ICP(pnv_cpu_state(cpu)->intc), mon);
g_autoptr(GString) buf = g_string_new("");
g_autoptr(HumanReadableText) info = NULL;
icp_pic_print_info(ICP(pnv_cpu_state(cpu)->intc), buf);
info = human_readable_text_from_str(buf);
monitor_puts(mon, info->human_readable_text);
}
/*

View File

@ -171,7 +171,7 @@ static inline bool ics_irq_free(ICSState *ics, uint32_t srcno)
}
void ics_set_irq_type(ICSState *ics, int srcno, bool lsi);
void icp_pic_print_info(ICPState *icp, Monitor *mon);
void icp_pic_print_info(ICPState *icp, GString *buf);
void ics_pic_print_info(ICSState *ics, Monitor *mon);
void ics_resend(ICSState *ics);