xref: /openbmc/qemu/include/exec/plugin-gen.h (revision 34cc54fb)
1 /*
2  * Copyright (C) 2017, Emilio G. Cota <cota@braap.org>
3  *
4  * License: GNU GPL, version 2 or later.
5  *   See the COPYING file in the top-level directory.
6  *
7  * plugin-gen.h - TCG-dependent definitions for generating plugin code
8  *
9  * This header should be included only from plugin.c and C files that emit
10  * TCG code.
11  */
12 #ifndef QEMU_PLUGIN_GEN_H
13 #define QEMU_PLUGIN_GEN_H
14 
15 #include "tcg/tcg.h"
16 
17 struct DisasContextBase;
18 
19 #ifdef CONFIG_PLUGIN
20 
21 bool plugin_gen_tb_start(CPUState *cpu, const struct DisasContextBase *db);
22 void plugin_gen_tb_end(CPUState *cpu, size_t num_insns);
23 void plugin_gen_insn_start(CPUState *cpu, const struct DisasContextBase *db);
24 void plugin_gen_insn_end(void);
25 
26 void plugin_gen_disable_mem_helpers(void);
27 
28 #else /* !CONFIG_PLUGIN */
29 
30 static inline
31 bool plugin_gen_tb_start(CPUState *cpu, const struct DisasContextBase *db)
32 {
33     return false;
34 }
35 
36 static inline
37 void plugin_gen_insn_start(CPUState *cpu, const struct DisasContextBase *db)
38 { }
39 
40 static inline void plugin_gen_insn_end(void)
41 { }
42 
43 static inline void plugin_gen_tb_end(CPUState *cpu, size_t num_insns)
44 { }
45 
46 static inline void plugin_gen_disable_mem_helpers(void)
47 { }
48 
49 #endif /* CONFIG_PLUGIN */
50 
51 #endif /* QEMU_PLUGIN_GEN_H */
52 
53