target-ppc: Let cpu_ppc_init() return PowerPCCPU

Adapt e500 mpc8544ds machine accordingly.

Turn cpu_init() into a static inline function returning CPUPPCState for
backwards compatibility.

Signed-off-by: Andreas Färber <afaerber@suse.de>
Acked-by: Alexander Graf <agraf@suse.de>
master
Andreas Färber 2012-05-03 05:43:05 +02:00
parent fa156e5127
commit 397b457d86
3 changed files with 17 additions and 6 deletions

View File

@ -254,12 +254,15 @@ static void mpc8544ds_init(ram_addr_t ram_size,
irqs = g_malloc0(smp_cpus * sizeof(qemu_irq *)); irqs = g_malloc0(smp_cpus * sizeof(qemu_irq *));
irqs[0] = g_malloc0(smp_cpus * sizeof(qemu_irq) * OPENPIC_OUTPUT_NB); irqs[0] = g_malloc0(smp_cpus * sizeof(qemu_irq) * OPENPIC_OUTPUT_NB);
for (i = 0; i < smp_cpus; i++) { for (i = 0; i < smp_cpus; i++) {
PowerPCCPU *cpu;
qemu_irq *input; qemu_irq *input;
env = cpu_ppc_init(cpu_model);
if (!env) { cpu = cpu_ppc_init(cpu_model);
if (cpu == NULL) {
fprintf(stderr, "Unable to initialize CPU!\n"); fprintf(stderr, "Unable to initialize CPU!\n");
exit(1); exit(1);
} }
env = &cpu->env;
if (!firstenv) { if (!firstenv) {
firstenv = env; firstenv = env;

View File

@ -1099,7 +1099,7 @@ struct mmu_ctx_t {
#include "cpu-qom.h" #include "cpu-qom.h"
/*****************************************************************************/ /*****************************************************************************/
CPUPPCState *cpu_ppc_init (const char *cpu_model); PowerPCCPU *cpu_ppc_init(const char *cpu_model);
void ppc_translate_init(void); void ppc_translate_init(void);
int cpu_ppc_exec (CPUPPCState *s); int cpu_ppc_exec (CPUPPCState *s);
/* you can call this signal handler from your SIGBUS and SIGSEGV /* you can call this signal handler from your SIGBUS and SIGSEGV
@ -1214,7 +1214,15 @@ static inline uint64_t ppc_dump_gpr(CPUPPCState *env, int gprn)
int ppc_dcr_read (ppc_dcr_t *dcr_env, int dcrn, uint32_t *valp); int ppc_dcr_read (ppc_dcr_t *dcr_env, int dcrn, uint32_t *valp);
int ppc_dcr_write (ppc_dcr_t *dcr_env, int dcrn, uint32_t val); int ppc_dcr_write (ppc_dcr_t *dcr_env, int dcrn, uint32_t val);
#define cpu_init cpu_ppc_init static inline CPUPPCState *cpu_init(const char *cpu_model)
{
PowerPCCPU *cpu = cpu_ppc_init(cpu_model);
if (cpu == NULL) {
return NULL;
}
return &cpu->env;
}
#define cpu_exec cpu_ppc_exec #define cpu_exec cpu_ppc_exec
#define cpu_gen_code cpu_ppc_gen_code #define cpu_gen_code cpu_ppc_gen_code
#define cpu_signal_handler cpu_ppc_signal_handler #define cpu_signal_handler cpu_ppc_signal_handler

View File

@ -3191,7 +3191,7 @@ void cpu_state_reset(CPUPPCState *env)
cpu_reset(ENV_GET_CPU(env)); cpu_reset(ENV_GET_CPU(env));
} }
CPUPPCState *cpu_ppc_init (const char *cpu_model) PowerPCCPU *cpu_ppc_init(const char *cpu_model)
{ {
PowerPCCPU *cpu; PowerPCCPU *cpu;
CPUPPCState *env; CPUPPCState *env;
@ -3213,5 +3213,5 @@ CPUPPCState *cpu_ppc_init (const char *cpu_model)
qemu_init_vcpu(env); qemu_init_vcpu(env);
return env; return cpu;
} }