Commit 7506ed90 authored by Richard Henderson's avatar Richard Henderson
Browse files

cpu: Introduce cpu_set_cpustate_pointers



Consolidate some boilerplate from foo_cpu_initfn.

Reviewed-by: default avatarAlistair Francis <alistair.francis@wdc.com>
Reviewed-by: default avatarPeter Maydell <peter.maydell@linaro.org>
Signed-off-by: default avatarRichard Henderson <richard.henderson@linaro.org>
parent 677c4d69
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -371,6 +371,17 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,

int cpu_exec(CPUState *cpu);

/**
 * cpu_set_cpustate_pointers(cpu)
 * @cpu: The cpu object
 *
 * Set the generic pointers in CPUState into the outer object.
 */
static inline void cpu_set_cpustate_pointers(ArchCPU *cpu)
{
    cpu->parent_obj.env_ptr = &cpu->env;
}

/**
 * env_archcpu(env)
 * @env: The architecture environment
+1 −2
Original line number Diff line number Diff line
@@ -191,11 +191,10 @@ static void ev67_cpu_initfn(Object *obj)

static void alpha_cpu_initfn(Object *obj)
{
    CPUState *cs = CPU(obj);
    AlphaCPU *cpu = ALPHA_CPU(obj);
    CPUAlphaState *env = &cpu->env;

    cs->env_ptr = env;
    cpu_set_cpustate_pointers(cpu);

    env->lock_addr = -1;
#if defined(CONFIG_USER_ONLY)
+1 −2
Original line number Diff line number Diff line
@@ -697,10 +697,9 @@ static void cpreg_hashtable_data_destroy(gpointer data)

static void arm_cpu_initfn(Object *obj)
{
    CPUState *cs = CPU(obj);
    ARMCPU *cpu = ARM_CPU(obj);

    cs->env_ptr = &cpu->env;
    cpu_set_cpustate_pointers(cpu);
    cpu->cp_regs = g_hash_table_new_full(g_int_hash, g_int_equal,
                                         g_free, cpreg_hashtable_data_destroy);

+1 −2
Original line number Diff line number Diff line
@@ -172,12 +172,11 @@ static void cris_disas_set_info(CPUState *cpu, disassemble_info *info)

static void cris_cpu_initfn(Object *obj)
{
    CPUState *cs = CPU(obj);
    CRISCPU *cpu = CRIS_CPU(obj);
    CRISCPUClass *ccc = CRIS_CPU_GET_CLASS(obj);
    CPUCRISState *env = &cpu->env;

    cs->env_ptr = env;
    cpu_set_cpustate_pointers(cpu);

    env->pregs[PR_VR] = ccc->vr;

+1 −1
Original line number Diff line number Diff line
@@ -134,7 +134,7 @@ static void hppa_cpu_initfn(Object *obj)
    HPPACPU *cpu = HPPA_CPU(obj);
    CPUHPPAState *env = &cpu->env;

    cs->env_ptr = env;
    cpu_set_cpustate_pointers(cpu);
    cs->exception_index = -1;
    cpu_hppa_loaded_fr0(env);
    cpu_hppa_put_psw(env, PSW_W);
Loading