diff options
Diffstat (limited to 'src/target/arm.h')
-rw-r--r-- | src/target/arm.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/target/arm.h b/src/target/arm.h index e4f20383..25480387 100644 --- a/src/target/arm.h +++ b/src/target/arm.h @@ -66,6 +66,15 @@ enum arm_mode { ARM_MODE_USER_THREAD = 1, ARM_MODE_HANDLER = 2, + /* shift left 4 bits for armv8 64 */ + ARMV8_64_EL0T = 0x0F, + ARMV8_64_EL1T = 0x4F, + ARMV8_64_EL1H = 0x5F, + ARMV8_64_EL2T = 0x8F, + ARMV8_64_EL2H = 0x9F, + ARMV8_64_EL3T = 0xCF, + ARMV8_64_EL3H = 0xDF, + ARM_MODE_ANY = -1 }; @@ -180,6 +189,18 @@ struct arm { uint32_t CRn, uint32_t CRm, uint32_t value); + /** Read coprocessor register. */ + int (*mrs)(struct target *target, uint32_t op0, + uint32_t op1, uint32_t op2, + uint32_t CRn, uint32_t CRm, + uint32_t *value); + + /** Write coprocessor register. */ + int (*msr)(struct target *target, uint32_t cpnum, + uint32_t op1, uint32_t op2, + uint32_t CRn, uint32_t CRm, + uint32_t value); + void *arch_info; /** For targets conforming to ARM Debug Interface v5, |