sim: bfin: move option inits to respective modules
authorMike Frysinger <vapier@gentoo.org>
Sat, 2 Jan 2016 15:54:42 +0000 (10:54 -0500)
committerMike Frysinger <vapier@gentoo.org>
Sun, 2 May 2021 03:10:28 +0000 (23:10 -0400)
Now that modules can self declare their own init funcs, change the mmu
and mach logic to use it.  We don't need to export the option symbols
or specifically call this logic from the sim_open function anymore.

sim/bfin/ChangeLog
sim/bfin/dv-bfin_mmu.c
sim/bfin/interp.c
sim/bfin/machs.c

index 9e9c13e7b3ea1379190fe97c45a494a78ac6924d..4fe2a9dd1f5a068a387d93625c0d440411c60477 100644 (file)
@@ -1,3 +1,11 @@
+2021-05-01  Mike Frysinger  <vapier@gentoo.org>
+
+       * dv-bfin_mmu.c (bfin_mmu_options): Mark static.
+       (sim_install_bfin_mmu): New function & prototype.
+       * interp.c (e_sim_add_option_table): Delete.
+       * machs.c (bfin_mach_options): Mark static.
+       (sim_install_bfin_mach): New function & prototype.
+
 2021-05-01  Mike Frysinger  <vapier@gentoo.org>
 
        * config.in, configure: Regenerate.
index 5f28256fad61aeca81357ddcb126eb71e3ecb206..cbaaaa2cae151dc668f50d6f9d88e9ef97e65c52 100644 (file)
@@ -277,7 +277,7 @@ enum {
   OPTION_MMU_SKIP_TABLES = OPTION_START,
 };
 
-const OPTION bfin_mmu_options[] =
+static const OPTION bfin_mmu_options[] =
 {
   { {"mmu-skip-cplbs", no_argument, NULL, OPTION_MMU_SKIP_TABLES },
       '\0', NULL, "Skip parsing of CPLB tables (big speed increase)",
@@ -301,6 +301,16 @@ bfin_mmu_option_handler (SIM_DESC sd, sim_cpu *current_cpu, int opt,
       return SIM_RC_FAIL;
     }
 }
+
+/* Provide a prototype to silence -Wmissing-prototypes.  */
+extern MODULE_INIT_FN sim_install_bfin_mmu;
+
+SIM_RC
+sim_install_bfin_mmu (SIM_DESC sd)
+{
+  SIM_ASSERT (STATE_MAGIC (sd) == SIM_MAGIC_NUMBER);
+  return sim_add_option_table (sd, NULL, bfin_mmu_options);
+}
 \f
 #define MMU_STATE(cpu) DV_STATE_CACHED (cpu, mmu)
 
index 49388e74c54c84776f5aae0e4dbfd766bf6beea9..2aa9279aef8939d1662ddce7b214b7ead1e597fd 100644 (file)
@@ -735,17 +735,6 @@ sim_open (SIM_OPEN_KIND kind, host_callback *callback,
   if (STATE_ENVIRONMENT (sd) == ALL_ENVIRONMENT)
     STATE_ENVIRONMENT (sd) = VIRTUAL_ENVIRONMENT;
 
-  /* These options override any module options.
-     Obviously ambiguity should be avoided, however the caller may wish to
-     augment the meaning of an option.  */
-#define e_sim_add_option_table(sd, options) \
-  do { \
-    extern const OPTION options[]; \
-    sim_add_option_table (sd, NULL, options); \
-  } while (0)
-  e_sim_add_option_table (sd, bfin_mmu_options);
-  e_sim_add_option_table (sd, bfin_mach_options);
-
   /* The parser will print an error message for us, so we silently return.  */
   if (sim_parse_args (sd, argv) != SIM_RC_OK)
     {
index 8b7b1060887bc9452f7d80c190fd9b4171b6c387..a2060e8d8986fbc9b99abded9b779838a8fdc287 100644 (file)
@@ -1976,7 +1976,7 @@ enum {
   OPTION_MACH_HW_BOARD_FILE,
 };
 
-const OPTION bfin_mach_options[] =
+static const OPTION bfin_mach_options[] =
 {
   { {"sirev", required_argument, NULL, OPTION_MACH_SIREV },
       '\0', "NUMBER", "Set CPU silicon revision",
@@ -2019,3 +2019,13 @@ bfin_mach_option_handler (SIM_DESC sd, sim_cpu *current_cpu, int opt,
       return SIM_RC_FAIL;
     }
 }
+
+/* Provide a prototype to silence -Wmissing-prototypes.  */
+extern MODULE_INIT_FN sim_install_bfin_mach;
+
+SIM_RC
+sim_install_bfin_mach (SIM_DESC sd)
+{
+  SIM_ASSERT (STATE_MAGIC (sd) == SIM_MAGIC_NUMBER);
+  return sim_add_option_table (sd, NULL, bfin_mach_options);
+}