提交 b33ab1f7 编写于 作者: A Andreas Färber

target-microblaze: Let cpu_mb_init() return MicroBlazeCPU

Since qemu_init_vcpu() is no-op for CONFIG_USER_ONLY drop the env
variable that is now unused there.

Turn cpu_init macro into a static inline function returning CPUMBState
for backwards compatibility.
Signed-off-by: NAndreas Färber <afaerber@suse.de>
Acked-by: NEdgar E. Iglesias <edgar.iglesias@gmail.com>
上级 1584aafd
......@@ -272,7 +272,7 @@ struct CPUMBState {
#include "cpu-qom.h"
CPUMBState *cpu_mb_init(const char *cpu_model);
MicroBlazeCPU *cpu_mb_init(const char *cpu_model);
int cpu_mb_exec(CPUMBState *s);
void cpu_mb_close(CPUMBState *s);
void do_interrupt(CPUMBState *env);
......@@ -295,7 +295,15 @@ enum {
#define TARGET_PHYS_ADDR_SPACE_BITS 32
#define TARGET_VIRT_ADDR_SPACE_BITS 32
#define cpu_init cpu_mb_init
static inline CPUMBState *cpu_init(const char *cpu_model)
{
MicroBlazeCPU *cpu = cpu_mb_init(cpu_model);
if (cpu == NULL) {
return NULL;
}
return &cpu->env;
}
#define cpu_exec cpu_mb_exec
#define cpu_gen_code cpu_mb_gen_code
#define cpu_signal_handler cpu_mb_signal_handler
......
......@@ -1951,21 +1951,20 @@ void cpu_dump_state (CPUMBState *env, FILE *f, fprintf_function cpu_fprintf,
cpu_fprintf(f, "\n\n");
}
CPUMBState *cpu_mb_init (const char *cpu_model)
MicroBlazeCPU *cpu_mb_init(const char *cpu_model)
{
MicroBlazeCPU *cpu;
CPUMBState *env;
static int tcg_initialized = 0;
int i;
cpu = MICROBLAZE_CPU(object_new(TYPE_MICROBLAZE_CPU));
env = &cpu->env;
cpu_reset(CPU(cpu));
qemu_init_vcpu(env);
qemu_init_vcpu(&cpu->env);
if (tcg_initialized)
return env;
if (tcg_initialized) {
return cpu;
}
tcg_initialized = 1;
......@@ -1999,7 +1998,7 @@ CPUMBState *cpu_mb_init (const char *cpu_model)
#define GEN_HELPER 2
#include "helper.h"
return env;
return cpu;
}
void cpu_state_reset(CPUMBState *env)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册