diff options
author | Igor Mammedov | 2018-02-07 11:40:26 +0100 |
---|---|---|
committer | Eduardo Habkost | 2018-03-19 18:10:36 +0100 |
commit | 2278b93941d42c30e2950d4b8dff4943d064e7de (patch) | |
tree | c59209f44530a52c4321bd25fd326db683b182a7 /bsd-user | |
parent | cpu: add CPU_RESOLVING_TYPE macro (diff) | |
download | qemu-2278b93941d42c30e2950d4b8dff4943d064e7de.tar.gz qemu-2278b93941d42c30e2950d4b8dff4943d064e7de.tar.xz qemu-2278b93941d42c30e2950d4b8dff4943d064e7de.zip |
Use cpu_create(type) instead of cpu_init(cpu_model)
With all targets defining CPU_RESOLVING_TYPE, refactor
cpu_parse_cpu_model(type, cpu_model) to parse_cpu_model(cpu_model)
so that callers won't have to know internal resolving cpu
type. Place it in exec.c so it could be called from both
target independed vl.c and *-user/main.c.
That allows us to stop abusing cpu type from
MachineClass::default_cpu_type
as resolver class in vl.c which were confusing part of
cpu_parse_cpu_model().
Also with new parse_cpu_model(), the last users of cpu_init()
in null-machine.c and bsd/linux-user targets could be switched
to cpu_create() API and cpu_init() API will be removed by
follow up patch.
With no longer users left remove MachineState::cpu_model field,
new code should use MachineState::cpu_type instead and
leave cpu_model parsing to generic code in vl.c.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>
Message-Id: <1518000027-274608-5-git-send-email-imammedo@redhat.com>
[ehabkost: Fix bsd-user build error]
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Diffstat (limited to 'bsd-user')
-rw-r--r-- | bsd-user/main.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/bsd-user/main.c b/bsd-user/main.c index 05aa5594a9..283dc6fd25 100644 --- a/bsd-user/main.c +++ b/bsd-user/main.c @@ -723,6 +723,7 @@ int main(int argc, char **argv) { const char *filename; const char *cpu_model; + const char *cpu_type; const char *log_file = NULL; const char *log_mask = NULL; struct target_pt_regs regs1, *regs = ®s1; @@ -900,7 +901,8 @@ int main(int argc, char **argv) tcg_exec_init(0); /* NOTE: we need to init the CPU at this stage to get qemu_host_page_size */ - cpu = cpu_init(cpu_model); + cpu_type = parse_cpu_model(cpu_model); + cpu = cpu_create(cpu_type); env = cpu->env_ptr; #if defined(TARGET_SPARC) || defined(TARGET_PPC) cpu_reset(cpu); |