diff options
author | Andreas Färber <afaerber@suse.de> | 2012-05-03 03:12:35 +0200 |
---|---|---|
committer | Andreas Färber <afaerber@suse.de> | 2012-06-04 23:00:45 +0200 |
commit | e59be77a5b88510ceca87335ee9f241ded566ae2 (patch) | |
tree | 5b904fbdaf9ba014c0f37e948f5930d4021f91c2 /target-sparc | |
parent | c356a1bcc0b609125cb540dae3796a3618441300 (diff) | |
download | qemu-e59be77a5b88510ceca87335ee9f241ded566ae2.zip qemu-e59be77a5b88510ceca87335ee9f241ded566ae2.tar.gz qemu-e59be77a5b88510ceca87335ee9f241ded566ae2.tar.bz2 |
target-sparc: Let cpu_sparc_init() return SPARCCPU
Make include paths for cpu-qom.h consistent, so that SPARCCPU can be
used in cpu.h.
Turn cpu_init macro into a static inline function returning
CPUSPARCState for backwards compatibility.
Signed-off-by: Andreas Färber <afaerber@suse.de>
Acked-by: Blue Swirl <blauwirbel@gmail.com>
Diffstat (limited to 'target-sparc')
-rw-r--r-- | target-sparc/cpu.c | 4 | ||||
-rw-r--r-- | target-sparc/cpu.h | 17 |
2 files changed, 16 insertions, 5 deletions
diff --git a/target-sparc/cpu.c b/target-sparc/cpu.c index 7ac6bdb..8ccac23 100644 --- a/target-sparc/cpu.c +++ b/target-sparc/cpu.c @@ -111,7 +111,7 @@ static int cpu_sparc_register(CPUSPARCState *env, const char *cpu_model) return 0; } -CPUSPARCState *cpu_sparc_init(const char *cpu_model) +SPARCCPU *cpu_sparc_init(const char *cpu_model) { SPARCCPU *cpu; CPUSPARCState *env; @@ -129,7 +129,7 @@ CPUSPARCState *cpu_sparc_init(const char *cpu_model) } qemu_init_vcpu(env); - return env; + return cpu; } void cpu_sparc_set_id(CPUSPARCState *env, unsigned int cpu) diff --git a/target-sparc/cpu.h b/target-sparc/cpu.h index 29c63c7..e16b7b3 100644 --- a/target-sparc/cpu.h +++ b/target-sparc/cpu.h @@ -511,9 +511,11 @@ struct CPUSPARCState { uint32_t cache_control; }; +#include "cpu-qom.h" + #ifndef NO_CPU_IO_DEFS /* cpu_init.c */ -CPUSPARCState *cpu_sparc_init(const char *cpu_model); +SPARCCPU *cpu_sparc_init(const char *cpu_model); void cpu_sparc_set_id(CPUSPARCState *env, unsigned int cpu); void sparc_cpu_list(FILE *f, fprintf_function cpu_fprintf); /* mmu_helper.c */ @@ -590,7 +592,17 @@ target_phys_addr_t cpu_get_phys_page_nofault(CPUSPARCState *env, target_ulong ad #endif int cpu_sparc_signal_handler(int host_signum, void *pinfo, void *puc); -#define cpu_init cpu_sparc_init +#ifndef NO_CPU_IO_DEFS +static inline CPUSPARCState *cpu_init(const char *cpu_model) +{ + SPARCCPU *cpu = cpu_sparc_init(cpu_model); + if (cpu == NULL) { + return NULL; + } + return &cpu->env; +} +#endif + #define cpu_exec cpu_sparc_exec #define cpu_gen_code cpu_sparc_gen_code #define cpu_signal_handler cpu_sparc_signal_handler @@ -691,7 +703,6 @@ static inline void cpu_clone_regs(CPUSPARCState *env, target_ulong newsp) #endif #include "cpu-all.h" -#include "cpu-qom.h" #ifdef TARGET_SPARC64 /* sun4u.c */ |