summary refs log tree commit diff stats
path: root/include/qemu/plugin.h
diff options
context:
space:
mode:
authorRichard Henderson <richard.henderson@linaro.org>2024-03-14 14:09:33 -1000
committerRichard Henderson <richard.henderson@linaro.org>2024-04-30 16:12:05 -0700
commitaff56de576c949880d674d37b82bdc97841107fb (patch)
tree4f1feaef020cbec695caf0c79d5f079c736cc8fe /include/qemu/plugin.h
parent25875fe92eb55e905655dcdf5f06f89ef2c1f404 (diff)
downloadfocaccia-qemu-aff56de576c949880d674d37b82bdc97841107fb.tar.gz
focaccia-qemu-aff56de576c949880d674d37b82bdc97841107fb.zip
plugins: Move function pointer in qemu_plugin_dyn_cb
The out-of-line function pointer is mutually exclusive
with inline expansion, so move it into the union.
Wrap the pointer in a structure named 'regular' to match
PLUGIN_CB_REGULAR.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'include/qemu/plugin.h')
-rw-r--r--include/qemu/plugin.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/include/qemu/plugin.h b/include/qemu/plugin.h
index 41db748eda..5676ab5ef2 100644
--- a/include/qemu/plugin.h
+++ b/include/qemu/plugin.h
@@ -85,7 +85,6 @@ enum plugin_dyn_cb_subtype {
  * instance of a callback to be called upon the execution of a particular TB.
  */
 struct qemu_plugin_dyn_cb {
-    union qemu_plugin_cb_sig f;
     void *userp;
     enum plugin_dyn_cb_subtype type;
     /* @rw applies to mem callbacks only (both regular and inline) */
@@ -93,6 +92,9 @@ struct qemu_plugin_dyn_cb {
     /* fields specific to each dyn_cb type go here */
     union {
         struct {
+            union qemu_plugin_cb_sig f;
+        } regular;
+        struct {
             qemu_plugin_u64 entry;
             enum qemu_plugin_op op;
             uint64_t imm;