mirror of https://github.com/xemu-project/xemu.git
target/arm: Name CPSecureState type
Give this enum a name and use in ARMCPRegInfo and add_cpreg_to_hashtable. Add the enumerator ARM_CP_SECSTATE_BOTH to clarify how 0 is handled in define_one_arm_cp_reg_with_opaque. Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20220501055028.646596-10-richard.henderson@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
d95101d602
commit
cbe645856f
|
@ -131,10 +131,11 @@ typedef enum {
|
||||||
* registered entry will only have one to identify whether the entry is secure
|
* registered entry will only have one to identify whether the entry is secure
|
||||||
* or non-secure.
|
* or non-secure.
|
||||||
*/
|
*/
|
||||||
enum {
|
typedef enum {
|
||||||
|
ARM_CP_SECSTATE_BOTH = 0, /* define one cpreg for each secstate */
|
||||||
ARM_CP_SECSTATE_S = (1 << 0), /* bit[0]: Secure state register */
|
ARM_CP_SECSTATE_S = (1 << 0), /* bit[0]: Secure state register */
|
||||||
ARM_CP_SECSTATE_NS = (1 << 1), /* bit[1]: Non-secure state register */
|
ARM_CP_SECSTATE_NS = (1 << 1), /* bit[1]: Non-secure state register */
|
||||||
};
|
} CPSecureState;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Access rights:
|
* Access rights:
|
||||||
|
@ -266,7 +267,7 @@ struct ARMCPRegInfo {
|
||||||
/* Access rights: PL*_[RW] */
|
/* Access rights: PL*_[RW] */
|
||||||
CPAccessRights access;
|
CPAccessRights access;
|
||||||
/* Security state: ARM_CP_SECSTATE_* bits/values */
|
/* Security state: ARM_CP_SECSTATE_* bits/values */
|
||||||
int secure;
|
CPSecureState secure;
|
||||||
/*
|
/*
|
||||||
* The opaque pointer passed to define_arm_cp_regs_with_opaque() when
|
* The opaque pointer passed to define_arm_cp_regs_with_opaque() when
|
||||||
* this register was defined: can be used to hand data through to the
|
* this register was defined: can be used to hand data through to the
|
||||||
|
|
|
@ -8502,7 +8502,8 @@ CpuDefinitionInfoList *qmp_query_cpu_definitions(Error **errp)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void add_cpreg_to_hashtable(ARMCPU *cpu, const ARMCPRegInfo *r,
|
static void add_cpreg_to_hashtable(ARMCPU *cpu, const ARMCPRegInfo *r,
|
||||||
void *opaque, CPState state, int secstate,
|
void *opaque, CPState state,
|
||||||
|
CPSecureState secstate,
|
||||||
int crm, int opc1, int opc2,
|
int crm, int opc1, int opc2,
|
||||||
const char *name)
|
const char *name)
|
||||||
{
|
{
|
||||||
|
@ -8785,7 +8786,7 @@ void define_one_arm_cp_reg_with_opaque(ARMCPU *cpu,
|
||||||
r->secure, crm, opc1, opc2,
|
r->secure, crm, opc1, opc2,
|
||||||
r->name);
|
r->name);
|
||||||
break;
|
break;
|
||||||
default:
|
case ARM_CP_SECSTATE_BOTH:
|
||||||
name = g_strdup_printf("%s_S", r->name);
|
name = g_strdup_printf("%s_S", r->name);
|
||||||
add_cpreg_to_hashtable(cpu, r, opaque, state,
|
add_cpreg_to_hashtable(cpu, r, opaque, state,
|
||||||
ARM_CP_SECSTATE_S,
|
ARM_CP_SECSTATE_S,
|
||||||
|
@ -8795,6 +8796,8 @@ void define_one_arm_cp_reg_with_opaque(ARMCPU *cpu,
|
||||||
ARM_CP_SECSTATE_NS,
|
ARM_CP_SECSTATE_NS,
|
||||||
crm, opc1, opc2, r->name);
|
crm, opc1, opc2, r->name);
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
g_assert_not_reached();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
/* AArch64 registers get mapped to non-secure instance
|
/* AArch64 registers get mapped to non-secure instance
|
||||||
|
|
Loading…
Reference in New Issue