diff mbox series

[v2,20/21] softmmu: Add qemu_init_arch_modules()

Message ID 20220203191814.45023-21-f4bug@amsat.org (mailing list archive)
State New, archived
Headers show
Series softmmu: Make various objects target agnostic | expand

Commit Message

Philippe Mathieu-Daudé Feb. 3, 2022, 7:18 p.m. UTC
module_allow_arch() is the single target-specific call in the
whole vl.c file. Move the module initialization out to arch_init.c,
that way we'll be able to build vl.o once for all targets (the
next commit).

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 include/sysemu/arch_init.h | 2 ++
 softmmu/arch_init.c        | 9 +++++++++
 softmmu/vl.c               | 5 +----
 3 files changed, 12 insertions(+), 4 deletions(-)

Comments

Richard Henderson Feb. 5, 2022, 11:32 p.m. UTC | #1
On 2/4/22 06:18, Philippe Mathieu-Daudé wrote:
> module_allow_arch() is the single target-specific call in the
> whole vl.c file. Move the module initialization out to arch_init.c,
> that way we'll be able to build vl.o once for all targets (the
> next commit).
> 
> Signed-off-by: Philippe Mathieu-Daudé<f4bug@amsat.org>
> ---
>   include/sysemu/arch_init.h | 2 ++
>   softmmu/arch_init.c        | 9 +++++++++
>   softmmu/vl.c               | 5 +----
>   3 files changed, 12 insertions(+), 4 deletions(-)

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

r~
diff mbox series

Patch

diff --git a/include/sysemu/arch_init.h b/include/sysemu/arch_init.h
index 70c579560a..79c2591425 100644
--- a/include/sysemu/arch_init.h
+++ b/include/sysemu/arch_init.h
@@ -28,4 +28,6 @@  enum {
 
 extern const uint32_t arch_type;
 
+void qemu_init_arch_modules(void);
+
 #endif
diff --git a/softmmu/arch_init.c b/softmmu/arch_init.c
index 8919405c7b..79716f959b 100644
--- a/softmmu/arch_init.c
+++ b/softmmu/arch_init.c
@@ -22,6 +22,7 @@ 
  * THE SOFTWARE.
  */
 #include "qemu/osdep.h"
+#include "qemu/module.h"
 #include "sysemu/arch_init.h"
 
 #ifdef TARGET_SPARC
@@ -39,3 +40,11 @@  int graphic_depth = 32;
 #endif
 
 const uint32_t arch_type = QEMU_ARCH;
+
+void qemu_init_arch_modules(void)
+{
+#ifdef CONFIG_MODULES
+    module_init_info(qemu_modinfo);
+    module_allow_arch(TARGET_NAME);
+#endif
+}
diff --git a/softmmu/vl.c b/softmmu/vl.c
index 5e1b35ba48..08ff97f4e0 100644
--- a/softmmu/vl.c
+++ b/softmmu/vl.c
@@ -2814,10 +2814,7 @@  void qemu_init(int argc, char **argv, char **envp)
     error_init(argv[0]);
     qemu_init_exec_dir(argv[0]);
 
-#ifdef CONFIG_MODULES
-    module_init_info(qemu_modinfo);
-    module_allow_arch(TARGET_NAME);
-#endif
+    qemu_init_arch_modules();
 
     qemu_init_subsystems();