diff mbox series

[v3,24/50] plugin-gen: add plugin_insn_append

Message ID 20190614171200.21078-25-alex.bennee@linaro.org
State New
Headers show
Series tcg plugin support | expand

Commit Message

Alex Bennée June 14, 2019, 5:11 p.m. UTC
From: "Emilio G. Cota" <cota@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 <cota@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(-)

-- 
2.20.1

Comments

Richard Henderson June 17, 2019, 9:03 p.m. UTC | #1
On 6/14/19 10:11 AM, Alex Bennée wrote:
> From: "Emilio G. Cota" <cota@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 <cota@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~
diff mbox series

Patch

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,
-};
-
 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)
+{ }
+
 #endif /* CONFIG_PLUGIN */
 
 #endif /* QEMU_PLUGIN_GEN_H */