arm: Use different enum for core_type and core_mode

The fields core_type and core_mode use the same enum arm_mode
but encode different information, making the code less immediate
to read.

Use a different enum arm_core_type for the field core_type.
The code behavior is not changed.

Change-Id: I60f2095ea6801dfe22f6da81ec295ca71ef90466
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-on: http://openocd.zylin.com/5258
Tested-by: jenkins
This commit is contained in:
Antonio Borneo
2019-06-24 17:15:33 +02:00
parent f447c31b30
commit fba438fde7
7 changed files with 33 additions and 24 deletions

View File

@@ -40,6 +40,22 @@
* support has not yet been integrated, affecting Cortex-M parts.
*/
/**
* Indicates what registers are in the ARM state core register set.
*
* - ARM_CORE_TYPE_STD indicates the standard set of 37 registers, seen
* on for example ARM7TDMI cores.
* - ARM_CORE_TYPE_SEC_EXT indicates core has security extensions, thus
* three more registers are shadowed for "Secure Monitor" mode.
* - ARM_CORE_TYPE_M_PROFILE indicates a microcontroller profile core,
* which only shadows SP.
*/
enum arm_core_type {
ARM_CORE_TYPE_STD = -1,
ARM_CORE_TYPE_SEC_EXT = 1,
ARM_CORE_TYPE_M_PROFILE,
};
/**
* Represent state of an ARM core.
*
@@ -161,15 +177,8 @@ struct arm {
/** Support for arm_reg_current() */
const int *map;
/**
* Indicates what registers are in the ARM state core register set.
* ARM_MODE_ANY indicates the standard set of 37 registers,
* seen on for example ARM7TDMI cores. ARM_MODE_MON indicates three
* more registers are shadowed, for "Secure Monitor" mode.
* ARM_MODE_THREAD indicates a microcontroller profile core,
* which only shadows SP.
*/
enum arm_mode core_type;
/** Indicates what registers are in the ARM state core register set. */
enum arm_core_type core_type;
/** Record the current core mode: SVC, USR, or some other mode. */
enum arm_mode core_mode;