X-Git-Url: https://review.openocd.org/gitweb?a=blobdiff_plain;f=src%2Ftarget%2Farmv4_5.h;h=6c83c3b3152ae3591e1bfe7a183ac7dc17c27e8b;hb=6eee0729d79eab496d1d4368a2bae7e4e2d19876;hp=7a6cb61865d52f98db6304ca955fda4b03b89ddc;hpb=e6dc927e972bb2d91131b0193b676c531377f318;p=openocd.git diff --git a/src/target/armv4_5.h b/src/target/armv4_5.h index 7a6cb61865..6c83c3b315 100644 --- a/src/target/armv4_5.h +++ b/src/target/armv4_5.h @@ -26,7 +26,9 @@ #ifndef ARMV4_5_H #define ARMV4_5_H -#include "target.h" +#include +#include + typedef enum armv4_5_mode { @@ -110,11 +112,26 @@ struct arm /** Handle for the Embedded Trace Module, if one is present. */ struct etm_context *etm; + /* FIXME all these methods should take "struct arm *" not target */ + int (*full_context)(struct target *target); int (*read_core_reg)(struct target *target, struct reg *reg, int num, enum armv4_5_mode mode); int (*write_core_reg)(struct target *target, struct reg *reg, int num, enum armv4_5_mode mode, uint32_t value); + + /** Read coprocessor register. */ + int (*mrc)(struct target *target, int cpnum, + uint32_t op1, uint32_t op2, + uint32_t CRn, uint32_t CRm, + uint32_t *value); + + /* Write coprocessor register. */ + int (*mcr)(struct target *target, int cpnum, + uint32_t op1, uint32_t op2, + uint32_t CRn, uint32_t CRm, + uint32_t value); + void *arch_info; }; @@ -155,7 +172,8 @@ int armv4_5_arch_state(struct target *target); int armv4_5_get_gdb_reg_list(struct target *target, struct reg **reg_list[], int *reg_list_size); -int armv4_5_register_commands(struct command_context *cmd_ctx); +extern const struct command_registration arm_command_handlers[]; + int armv4_5_init_arch_info(struct target *target, struct arm *armv4_5); int armv4_5_run_algorithm(struct target *target,