On 6/14/19 10:11 AM, Alex Bennée wrote: > From: "Emilio G. Cota" <c...@braap.org> > > By adding it to plugin-gen's header file, we can export is as > an inline, since tcg.h is included in the header (we need tcg_ctx). > > Signed-off-by: Emilio G. Cota <c...@braap.org> > > --- > v3 > - use g_byte_array > --- > accel/tcg/plugin-gen.c | 10 +++++++++- > include/exec/plugin-gen.h | 23 ++++++++++++++--------- > 2 files changed, 23 insertions(+), 10 deletions(-) > > diff --git a/accel/tcg/plugin-gen.c b/accel/tcg/plugin-gen.c > index 9d9ec29765..758fc5d099 100644 > --- a/accel/tcg/plugin-gen.c > +++ b/accel/tcg/plugin-gen.c > @@ -60,9 +60,17 @@ > /* > * plugin_cb_start TCG op args[]: > * 0: enum plugin_gen_from > - * 1: enum plugin_gen_cb (defined below) > + * 1: enum plugin_gen_cb > * 2: set to 1 if it's a mem callback and it's a write, 0 otherwise. > */ > +enum plugin_gen_from { > + PLUGIN_GEN_FROM_TB, > + PLUGIN_GEN_FROM_INSN, > + PLUGIN_GEN_FROM_MEM, > + PLUGIN_GEN_AFTER_INSN, > + PLUGIN_GEN_N_FROMS, > +}; > + > enum plugin_gen_cb { > PLUGIN_GEN_CB_UDATA, > PLUGIN_GEN_CB_INLINE, > diff --git a/include/exec/plugin-gen.h b/include/exec/plugin-gen.h > index 449ea16034..316638c736 100644 > --- a/include/exec/plugin-gen.h > +++ b/include/exec/plugin-gen.h > @@ -15,15 +15,6 @@ > #include "qemu/plugin.h" > #include "tcg/tcg.h" > > -/* used by plugin_callback_start and plugin_callback_end TCG ops */ > -enum plugin_gen_from { > - PLUGIN_GEN_FROM_TB, > - PLUGIN_GEN_FROM_INSN, > - PLUGIN_GEN_FROM_MEM, > - PLUGIN_GEN_AFTER_INSN, > - PLUGIN_GEN_N_FROMS, > -};
Why is this movement in here, and can it be folded back? It doesn't seem to be used from ... > - > struct DisasContextBase; > > #ifdef CONFIG_PLUGIN > @@ -36,6 +27,17 @@ void plugin_gen_insn_end(void); > void plugin_gen_disable_mem_helpers(void); > void plugin_gen_empty_mem_callback(TCGv addr, uint8_t info); > > +static inline void plugin_insn_append(const void *from, size_t size) > +{ > + struct qemu_plugin_insn *insn = tcg_ctx->plugin_insn; > + > + if (insn == NULL) { > + return; > + } > + > + insn->data = g_byte_array_append(insn->data, from, size); > +} > + > #else /* !CONFIG_PLUGIN */ > > static inline > @@ -60,6 +62,9 @@ static inline void plugin_gen_disable_mem_helpers(void) > static inline void plugin_gen_empty_mem_callback(TCGv addr, uint8_t info) > { } > > +static inline void plugin_insn_append(const void *from, size_t size) > +{ } > + ... here. r~