diff mbox series

[07/26] hw/ppc: Avoid using Monitor in spapr_xive_end_pic_print_info()

Message ID 20240610062105.49848-8-philmd@linaro.org
State Superseded
Headers show
Series hw/ppc: Prefer HumanReadableText over Monitor | expand

Commit Message

Philippe Mathieu-Daudé June 10, 2024, 6:20 a.m. UTC
Replace Monitor API by HumanReadableText one.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 hw/intc/spapr_xive.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

Comments

Harsh Prateek Bora June 17, 2024, 12:39 p.m. UTC | #1
On 6/10/24 11:50, Philippe Mathieu-Daudé wrote:
> @@ -198,13 +193,18 @@ static void spapr_xive_pic_print_info(SpaprXive *xive, Monitor *mon)
>           if (!xive_eas_is_masked(eas)) {
>               uint32_t end_idx = xive_get_field64(EAS_END_INDEX, eas->w);
>               XiveEND *end;
> +            g_autoptr(GString) buf = g_string_new("");
> +            g_autoptr(HumanReadableText) info = NULL;
>   
>               assert(end_idx < xive->nr_ends);
>               end = &xive->endt[end_idx];
>   
>               if (xive_end_is_valid(end)) {
> -                spapr_xive_end_pic_print_info(xive, end, mon);
> +                spapr_xive_end_pic_print_info(xive, end, buf);
>               }
> +
> +            info = human_readable_text_from_str(buf);
> +            monitor_puts(mon, info->human_readable_text);
>           }
>           monitor_printf(mon, "\n");

Similarly, this monitor_printf could be g_stringified before doing the 
human_readable logic ?

Thanks
Harsh
>       }
diff mbox series

Patch

diff --git a/hw/intc/spapr_xive.c b/hw/intc/spapr_xive.c
index 3357f6325f..d571645e9e 100644
--- a/hw/intc/spapr_xive.c
+++ b/hw/intc/spapr_xive.c
@@ -133,7 +133,7 @@  static int spapr_xive_target_to_end(uint32_t target, uint8_t prio,
  * structure dumping only the information related to the OS EQ.
  */
 static void spapr_xive_end_pic_print_info(SpaprXive *xive, XiveEND *end,
-                                          Monitor *mon)
+                                          GString *buf)
 {
     uint64_t qaddr_base = xive_end_qaddr(end);
     uint32_t qindex = xive_get_field32(END_W1_PAGE_OFF, end->w1);
@@ -142,17 +142,12 @@  static void spapr_xive_end_pic_print_info(SpaprXive *xive, XiveEND *end,
     uint32_t qentries = 1 << (qsize + 10);
     uint32_t nvt = xive_get_field32(END_W6_NVT_INDEX, end->w6);
     uint8_t priority = xive_get_field32(END_W7_F0_PRIORITY, end->w7);
-    g_autoptr(GString) buf = g_string_new("");
-    g_autoptr(HumanReadableText) info = NULL;
 
-    monitor_printf(mon, "%3d/%d % 6d/%5d @%"PRIx64" ^%d",
-                   spapr_xive_nvt_to_target(0, nvt),
-                   priority, qindex, qentries, qaddr_base, qgen);
+    g_string_append_printf(buf, "%3d/%d % 6d/%5d @%"PRIx64" ^%d",
+                           spapr_xive_nvt_to_target(0, nvt),
+                           priority, qindex, qentries, qaddr_base, qgen);
 
     xive_end_queue_pic_print_info(end, 6, buf);
-
-    info = human_readable_text_from_str(buf);
-    monitor_puts(mon, info->human_readable_text);
 }
 
 /*
@@ -198,13 +193,18 @@  static void spapr_xive_pic_print_info(SpaprXive *xive, Monitor *mon)
         if (!xive_eas_is_masked(eas)) {
             uint32_t end_idx = xive_get_field64(EAS_END_INDEX, eas->w);
             XiveEND *end;
+            g_autoptr(GString) buf = g_string_new("");
+            g_autoptr(HumanReadableText) info = NULL;
 
             assert(end_idx < xive->nr_ends);
             end = &xive->endt[end_idx];
 
             if (xive_end_is_valid(end)) {
-                spapr_xive_end_pic_print_info(xive, end, mon);
+                spapr_xive_end_pic_print_info(xive, end, buf);
             }
+
+            info = human_readable_text_from_str(buf);
+            monitor_puts(mon, info->human_readable_text);
         }
         monitor_printf(mon, "\n");
     }