On Wed, Jun 3, 2026 at 11:52 PM Pierrick Bouvier
<[email protected]> wrote:
>
> We can now rely on userdata being always available to pass down this id
> if needed.
>
> In our plugins, only tests/tcg/plugins/reset.c was using it.
>
> Signed-off-by: Pierrick Bouvier <[email protected]>
> ---

Reviewed-by: Manos Pitsidianakis <[email protected]>

>  contrib/plugins/bbv.c         | 2 +-
>  contrib/plugins/cache.c       | 2 +-
>  contrib/plugins/cflow.c       | 2 +-
>  contrib/plugins/drcov.c       | 2 +-
>  contrib/plugins/execlog.c     | 2 +-
>  contrib/plugins/hotblocks.c   | 2 +-
>  contrib/plugins/hotpages.c    | 2 +-
>  contrib/plugins/howvec.c      | 2 +-
>  contrib/plugins/hwprofile.c   | 2 +-
>  contrib/plugins/ips.c         | 2 +-
>  contrib/plugins/lockstep.c    | 8 ++++----
>  contrib/plugins/stoptrigger.c | 2 +-
>  contrib/plugins/traps.c       | 2 +-
>  contrib/plugins/uftrace.c     | 2 +-
>  include/plugins/qemu-plugin.h | 3 +--
>  plugins/core.c                | 2 +-
>  plugins/loader.c              | 4 ++--
>  tests/tcg/plugins/bb.c        | 2 +-
>  tests/tcg/plugins/inline.c    | 2 +-
>  tests/tcg/plugins/insn.c      | 2 +-
>  tests/tcg/plugins/mem.c       | 2 +-
>  tests/tcg/plugins/reset.c     | 7 ++++---
>  tests/tcg/plugins/syscall.c   | 2 +-
>  23 files changed, 30 insertions(+), 30 deletions(-)
>
> diff --git a/contrib/plugins/bbv.c b/contrib/plugins/bbv.c
> index 5913cc6c637..f2b1b258a90 100644
> --- a/contrib/plugins/bbv.c
> +++ b/contrib/plugins/bbv.c
> @@ -28,7 +28,7 @@ static char *filename;
>  static struct qemu_plugin_scoreboard *vcpus;
>  static uint64_t interval = 100000000;
>
> -static void plugin_exit(qemu_plugin_id_t id, void *p)
> +static void plugin_exit(void *p)
>  {
>      Vcpu *vcpu;
>
> diff --git a/contrib/plugins/cache.c b/contrib/plugins/cache.c
> index 56508587d3a..f41ddb0aa43 100644
> --- a/contrib/plugins/cache.c
> +++ b/contrib/plugins/cache.c
> @@ -694,7 +694,7 @@ finish:
>      g_list_free(miss_insns);
>  }
>
> -static void plugin_exit(qemu_plugin_id_t id, void *p)
> +static void plugin_exit(void *p)
>  {
>      log_stats();
>      log_top_insns();
> diff --git a/contrib/plugins/cflow.c b/contrib/plugins/cflow.c
> index b5e33f25f9b..4d00879ccad 100644
> --- a/contrib/plugins/cflow.c
> +++ b/contrib/plugins/cflow.c
> @@ -134,7 +134,7 @@ static gboolean filter_non_branches(gpointer key, 
> gpointer value,
>      return node->dest_count == 0;
>  }
>
> -static void plugin_exit(qemu_plugin_id_t id, void *p)
> +static void plugin_exit(void *p)
>  {
>      g_autoptr(GString) result = g_string_new("collected ");
>      GList *data;
> diff --git a/contrib/plugins/drcov.c b/contrib/plugins/drcov.c
> index 5edc94dcaf6..458c0d2084d 100644
> --- a/contrib/plugins/drcov.c
> +++ b/contrib/plugins/drcov.c
> @@ -86,7 +86,7 @@ static void count_block(gpointer data, gpointer user_data)
>      }
>  }
>
> -static void plugin_exit(qemu_plugin_id_t id, void *p)
> +static void plugin_exit(void *p)
>  {
>      unsigned long count = 0;
>      g_mutex_lock(&lock);
> diff --git a/contrib/plugins/execlog.c b/contrib/plugins/execlog.c
> index d00d9c4ff39..d347ac25b6f 100644
> --- a/contrib/plugins/execlog.c
> +++ b/contrib/plugins/execlog.c
> @@ -400,7 +400,7 @@ static void vcpu_init(qemu_plugin_id_t id, unsigned int 
> vcpu_index)
>  /**
>   * On plugin exit, print last instruction in cache
>   */
> -static void plugin_exit(qemu_plugin_id_t id, void *p)
> +static void plugin_exit(void *p)
>  {
>      guint i;
>      g_rw_lock_reader_lock(&expand_array_lock);
> diff --git a/contrib/plugins/hotblocks.c b/contrib/plugins/hotblocks.c
> index 8ecf0339974..92859872ac9 100644
> --- a/contrib/plugins/hotblocks.c
> +++ b/contrib/plugins/hotblocks.c
> @@ -70,7 +70,7 @@ static void exec_count_free(gpointer key, gpointer value, 
> gpointer user_data)
>      qemu_plugin_scoreboard_free(cnt->exec_count);
>  }
>
> -static void plugin_exit(qemu_plugin_id_t id, void *p)
> +static void plugin_exit(void *p)
>  {
>      g_autoptr(GString) report = g_string_new("collected ");
>      GList *counts, *sorted_counts, *it;
> diff --git a/contrib/plugins/hotpages.c b/contrib/plugins/hotpages.c
> index 9d48ac969eb..a6d83b06c75 100644
> --- a/contrib/plugins/hotpages.c
> +++ b/contrib/plugins/hotpages.c
> @@ -73,7 +73,7 @@ static gint cmp_access_count(gconstpointer a, gconstpointer 
> b, gpointer d)
>  }
>
>
> -static void plugin_exit(qemu_plugin_id_t id, void *p)
> +static void plugin_exit(void *p)
>  {
>      g_autoptr(GString) report = g_string_new("Addr, RCPUs, Reads, WCPUs, 
> Writes\n");
>      int i;
> diff --git a/contrib/plugins/howvec.c b/contrib/plugins/howvec.c
> index 42bddb6566d..75728896198 100644
> --- a/contrib/plugins/howvec.c
> +++ b/contrib/plugins/howvec.c
> @@ -172,7 +172,7 @@ static void free_record(gpointer data)
>      g_free(rec);
>  }
>
> -static void plugin_exit(qemu_plugin_id_t id, void *p)
> +static void plugin_exit(void *p)
>  {
>      g_autoptr(GString) report = g_string_new("Instruction Classes:\n");
>      int i;
> diff --git a/contrib/plugins/hwprofile.c b/contrib/plugins/hwprofile.c
> index a9838ccc879..b7f96117e94 100644
> --- a/contrib/plugins/hwprofile.c
> +++ b/contrib/plugins/hwprofile.c
> @@ -106,7 +106,7 @@ static void fmt_dev_record(GString *s, DeviceCounts *rec)
>      g_string_append_c(s, '\n');
>  }
>
> -static void plugin_exit(qemu_plugin_id_t id, void *p)
> +static void plugin_exit(void *p)
>  {
>      g_autoptr(GString) report = g_string_new("");
>      GList *counts;
> diff --git a/contrib/plugins/ips.c b/contrib/plugins/ips.c
> index f110c565bc4..7614ae1eafd 100644
> --- a/contrib/plugins/ips.c
> +++ b/contrib/plugins/ips.c
> @@ -124,7 +124,7 @@ static void vcpu_tb_trans(qemu_plugin_id_t id, struct 
> qemu_plugin_tb *tb)
>          quantum_insn, max_insn_per_quantum, NULL);
>  }
>
> -static void plugin_exit(qemu_plugin_id_t id, void *udata)
> +static void plugin_exit(void *udata)
>  {
>      qemu_plugin_scoreboard_free(vcpus);
>  }
> diff --git a/contrib/plugins/lockstep.c b/contrib/plugins/lockstep.c
> index 36b003ead2d..c1c2b0aca8e 100644
> --- a/contrib/plugins/lockstep.c
> +++ b/contrib/plugins/lockstep.c
> @@ -77,7 +77,7 @@ static char *path_to_unlink;
>
>  static bool verbose;
>
> -static void plugin_cleanup(qemu_plugin_id_t id, void *userdata)
> +static void plugin_cleanup(void *userdata)
>  {
>      /* Free our block data */
>      g_slist_free_full(blocks, &g_free);
> @@ -90,7 +90,7 @@ static void plugin_cleanup(qemu_plugin_id_t id, void 
> *userdata)
>      }
>  }
>
> -static void plugin_exit(qemu_plugin_id_t id, void *p)
> +static void plugin_exit(void *p)
>  {
>      g_autoptr(GString) out = g_string_new("No divergence :-)\n");
>      g_string_append_printf(out, "Executed %ld/%d blocks\n",
> @@ -98,7 +98,7 @@ static void plugin_exit(qemu_plugin_id_t id, void *p)
>      g_string_append_printf(out, "Executed ~%ld instructions\n", insn_count);
>      qemu_plugin_outs(out->str);
>
> -    plugin_cleanup(id, NULL);
> +    plugin_cleanup(NULL);
>  }
>
>  /*
> @@ -393,6 +393,6 @@ QEMU_PLUGIN_EXPORT int 
> qemu_plugin_install(qemu_plugin_id_t id,
>      our_id = id;
>
>      qemu_plugin_register_vcpu_tb_trans_cb(id, vcpu_tb_trans);
> -    qemu_plugin_register_atexit_cb(id, plugin_exit, NULL);
> +    qemu_plugin_register_atexit_cb(id, plugin_exit, (void *)id);
>      return 0;
>  }
> diff --git a/contrib/plugins/stoptrigger.c b/contrib/plugins/stoptrigger.c
> index b3a6ed66a7b..40f8fd313d7 100644
> --- a/contrib/plugins/stoptrigger.c
> +++ b/contrib/plugins/stoptrigger.c
> @@ -93,7 +93,7 @@ static void vcpu_tb_trans(qemu_plugin_id_t id, struct 
> qemu_plugin_tb *tb)
>      }
>  }
>
> -static void plugin_exit(qemu_plugin_id_t id, void *p)
> +static void plugin_exit(void *p)
>  {
>      g_hash_table_destroy(addrs_ht);
>      qemu_plugin_scoreboard_free(insn_count_sb);
> diff --git a/contrib/plugins/traps.c b/contrib/plugins/traps.c
> index a741580fbf8..4b879a8212a 100644
> --- a/contrib/plugins/traps.c
> +++ b/contrib/plugins/traps.c
> @@ -44,7 +44,7 @@ static void vcpu_discon(qemu_plugin_id_t id, unsigned int 
> vcpu_index,
>      }
>  }
>
> -static void plugin_exit(qemu_plugin_id_t id, void *p)
> +static void plugin_exit(void *p)
>  {
>      g_autoptr(GString) report;
>      report = g_string_new("VCPU, interrupts, exceptions, hostcalls\n");
> diff --git a/contrib/plugins/uftrace.c b/contrib/plugins/uftrace.c
> index f974090e23e..a071a34ea75 100644
> --- a/contrib/plugins/uftrace.c
> +++ b/contrib/plugins/uftrace.c
> @@ -928,7 +928,7 @@ static void vcpu_end(unsigned int vcpu_index)
>      memset(cpu, 0, sizeof(Cpu));
>  }
>
> -static void at_exit(qemu_plugin_id_t id, void *data)
> +static void at_exit(void *data)
>  {
>      bool system_emulation = (bool) data;
>      g_autoptr(GArray) traces = g_array_new(0, 0, sizeof(Trace *));
> diff --git a/include/plugins/qemu-plugin.h b/include/plugins/qemu-plugin.h
> index 3c6f32bacfe..d7d972103cb 100644
> --- a/include/plugins/qemu-plugin.h
> +++ b/include/plugins/qemu-plugin.h
> @@ -142,11 +142,10 @@ QEMU_PLUGIN_EXPORT int 
> qemu_plugin_install(qemu_plugin_id_t id,
>
>  /**
>   * typedef qemu_plugin_udata_cb_t - callback with user data
> - * @id: the unique qemu_plugin_id_t
>   * @userdata: a pointer to some user data supplied when the callback
>   * was registered.
>   */
> -typedef void (*qemu_plugin_udata_cb_t)(qemu_plugin_id_t id, void *userdata);
> +typedef void (*qemu_plugin_udata_cb_t)(void *userdata);
>
>  /**
>   * typedef qemu_plugin_vcpu_simple_cb_t - vcpu callback
> diff --git a/plugins/core.c b/plugins/core.c
> index 21a3c5b15cf..b0532e8d0de 100644
> --- a/plugins/core.c
> +++ b/plugins/core.c
> @@ -147,7 +147,7 @@ static void plugin_cb__udata(enum qemu_plugin_event ev)
>          QLIST_FOREACH_SAFE_RCU(cb, &plugin.cb_lists[ev], entry, next) {
>              qemu_plugin_udata_cb_t func = cb->f.udata;
>
> -            func(cb->ctx->id, cb->udata);
> +            func(cb->udata);
>          }
>          break;
>      default:
> diff --git a/plugins/loader.c b/plugins/loader.c
> index 0d587c344c4..b10ebe8cc05 100644
> --- a/plugins/loader.c
> +++ b/plugins/loader.c
> @@ -339,7 +339,7 @@ static void plugin_reset_destroy__locked(struct 
> qemu_plugin_reset_data *data)
>      if (data->reset) {
>          g_assert(ctx->resetting);
>          if (data->cb) {
> -            data->cb(ctx->id, data->userdata);
> +            data->cb(data->userdata);
>          }
>          ctx->resetting = false;
>          g_free(data);
> @@ -358,7 +358,7 @@ static void plugin_reset_destroy__locked(struct 
> qemu_plugin_reset_data *data)
>      g_assert(success);
>      QTAILQ_REMOVE(&plugin.ctxs, ctx, entry);
>      if (data->cb) {
> -        data->cb(ctx->id, data->userdata);
> +        data->cb(data->userdata);
>      }
>      if (!g_module_close(ctx->handle)) {
>          warn_report("%s: %s", __func__, g_module_error());
> diff --git a/tests/tcg/plugins/bb.c b/tests/tcg/plugins/bb.c
> index 36776dee1e1..8a854408aaa 100644
> --- a/tests/tcg/plugins/bb.c
> +++ b/tests/tcg/plugins/bb.c
> @@ -40,7 +40,7 @@ static void gen_one_cpu_report(CPUCount *count, GString 
> *report,
>      }
>  }
>
> -static void plugin_exit(qemu_plugin_id_t id, void *p)
> +static void plugin_exit(void *p)
>  {
>      g_autoptr(GString) report = g_string_new("");
>
> diff --git a/tests/tcg/plugins/inline.c b/tests/tcg/plugins/inline.c
> index 73dde995781..1d17884b40b 100644
> --- a/tests/tcg/plugins/inline.c
> +++ b/tests/tcg/plugins/inline.c
> @@ -121,7 +121,7 @@ static void stats_mem(void)
>      g_assert(inl_per_vcpu == expected);
>  }
>
> -static void plugin_exit(qemu_plugin_id_t id, void *udata)
> +static void plugin_exit(void *udata)
>  {
>      const unsigned int num_cpus = qemu_plugin_num_vcpus();
>      g_autoptr(GString) stats = g_string_new("");
> diff --git a/tests/tcg/plugins/insn.c b/tests/tcg/plugins/insn.c
> index e6c5207cd69..12421054f67 100644
> --- a/tests/tcg/plugins/insn.c
> +++ b/tests/tcg/plugins/insn.c
> @@ -190,7 +190,7 @@ static void vcpu_tb_trans(qemu_plugin_id_t id, struct 
> qemu_plugin_tb *tb)
>      }
>  }
>
> -static void plugin_exit(qemu_plugin_id_t id, void *p)
> +static void plugin_exit(void *p)
>  {
>      g_autoptr(GString) out = g_string_new(NULL);
>      int i;
> diff --git a/tests/tcg/plugins/mem.c b/tests/tcg/plugins/mem.c
> index 6b0732dc0fd..5cdf71c7e49 100644
> --- a/tests/tcg/plugins/mem.c
> +++ b/tests/tcg/plugins/mem.c
> @@ -68,7 +68,7 @@ static gint addr_order(gconstpointer a, gconstpointer b, 
> gpointer d)
>  }
>
>
> -static void plugin_exit(qemu_plugin_id_t id, void *p)
> +static void plugin_exit(void *p)
>  {
>      g_autoptr(GString) out = g_string_new("");
>
> diff --git a/tests/tcg/plugins/reset.c b/tests/tcg/plugins/reset.c
> index 6ea675b8095..ef5a32781b2 100644
> --- a/tests/tcg/plugins/reset.c
> +++ b/tests/tcg/plugins/reset.c
> @@ -14,7 +14,7 @@ static qemu_plugin_id_t plugin_id;
>  static bool was_reset;
>  static bool was_uninstalled;
>
> -static void after_uninstall(qemu_plugin_id_t id, void *userdata)
> +static void after_uninstall(void *userdata)
>  {
>      g_assert(was_reset && !was_uninstalled);
>      qemu_plugin_outs("uninstall done\n");
> @@ -34,8 +34,9 @@ static void tb_trans_after_reset(qemu_plugin_id_t id, 
> struct qemu_plugin_tb *tb)
>                                           QEMU_PLUGIN_CB_NO_REGS, NULL);
>  }
>
> -static void after_reset(qemu_plugin_id_t id, void *userdata)
> +static void after_reset(void *userdata)
>  {
> +    qemu_plugin_id_t id = (qemu_plugin_id_t) userdata;
>      g_assert(!was_reset && !was_uninstalled);
>      qemu_plugin_outs("reset done\n");
>      was_reset = true;
> @@ -45,7 +46,7 @@ static void after_reset(qemu_plugin_id_t id, void *userdata)
>  static void tb_exec_before_reset(unsigned int vcpu_index, void *userdata)
>  {
>      g_assert(!was_reset && !was_uninstalled);
> -    qemu_plugin_reset(plugin_id, after_reset, NULL);
> +    qemu_plugin_reset(plugin_id, after_reset, (void *) plugin_id);
>  }
>
>  static void tb_trans_before_reset(qemu_plugin_id_t id, struct qemu_plugin_tb 
> *tb)
> diff --git a/tests/tcg/plugins/syscall.c b/tests/tcg/plugins/syscall.c
> index 5658f830879..938646f9359 100644
> --- a/tests/tcg/plugins/syscall.c
> +++ b/tests/tcg/plugins/syscall.c
> @@ -207,7 +207,7 @@ static gint comp_func(gconstpointer ea, gconstpointer eb, 
> gpointer d)
>  }
>
>  /* ************************************************************************* 
> */
> -static void plugin_exit(qemu_plugin_id_t id, void *p)
> +static void plugin_exit(void *p)
>  {
>      if (!statistics) {
>          return;
> --
> 2.43.0
>
>

Reply via email to