sim: namespace sim_machs

We want to do a single build with all arches in one binary which means
we need to namespace sim_machs on a per-arch basis.  Move it from a
global variable to the sim description structure so it can be setup at
runtime.

Changing the SIM_MODEL->num from an enum to an int is unfortunate, but
we specifically don't want to maintain a centralized list anymore, and
this was never used directly in common code, just passed to per-arch
callbacks.
This commit is contained in:
Mike Frysinger
2021-06-28 21:42:56 -04:00
parent f8261de1b2
commit 1c636da093
35 changed files with 167 additions and 46 deletions

View File

@@ -111,6 +111,8 @@ bpf_free_state (SIM_DESC sd)
sim_state_free (sd);
}
extern const SIM_MACH * const bpf_sim_machs[];
/* Create an instance of the simulator. */
SIM_DESC
@@ -125,6 +127,9 @@ sim_open (SIM_OPEN_KIND kind,
SIM_DESC sd = sim_state_alloc (kind, callback);
/* Set default options before parsing user options. */
STATE_MACHS (sd) = bpf_sim_machs;
if (sim_cpu_alloc_all (sd, 1) != SIM_RC_OK)
goto error;