summaryrefslogtreecommitdiff
path: root/src/target/mips32.h
diff options
context:
space:
mode:
authorntfreak <ntfreak@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2008-11-17 17:56:44 +0000
committerntfreak <ntfreak@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2008-11-17 17:56:44 +0000
commit5711203e20fb11fa6d0f1acac714bca5833f17d8 (patch)
treeb612bfb7976110916b46420c7f72526e52650464 /src/target/mips32.h
parent76b3c6ece6f853daca937652df78b61df11c47f3 (diff)
downloadopenocd+libswd-5711203e20fb11fa6d0f1acac714bca5833f17d8.tar.gz
openocd+libswd-5711203e20fb11fa6d0f1acac714bca5833f17d8.tar.bz2
openocd+libswd-5711203e20fb11fa6d0f1acac714bca5833f17d8.tar.xz
openocd+libswd-5711203e20fb11fa6d0f1acac714bca5833f17d8.zip
- add support for hardware breakpoints to mips32 target
git-svn-id: svn://svn.berlios.de/openocd/trunk@1173 b42882b7-edfa-0310-969c-e2dbd0fdcd60
Diffstat (limited to 'src/target/mips32.h')
-rw-r--r--src/target/mips32.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/target/mips32.h b/src/target/mips32.h
index 9018d85c..8a484487 100644
--- a/src/target/mips32.h
+++ b/src/target/mips32.h
@@ -37,6 +37,14 @@ enum
MIPS32NUMCOREREGS
};
+typedef struct mips32_comparator_s
+{
+ int used;
+ //int type;
+ u32 bp_value;
+ u32 reg_address;
+} mips32_comparator_t;
+
typedef struct mips32_common_s
{
int common_magic;
@@ -45,6 +53,14 @@ typedef struct mips32_common_s
mips_ejtag_t ejtag_info;
u32 core_regs[MIPS32NUMCOREREGS];
+ int bp_scanned;
+ int num_inst_bpoints;
+ int num_data_bpoints;
+ int num_inst_bpoints_avail;
+ int num_data_bpoints_avail;
+ mips32_comparator_t *inst_break_list;
+ mips32_comparator_t *data_break_list;
+
/* register cache to processor synchronization */
int (*read_core_reg)(struct target_s *target, int num);
int (*write_core_reg)(struct target_s *target, int num);
@@ -108,6 +124,8 @@ extern int mips32_restore_context(target_t *target);
extern int mips32_save_context(target_t *target);
extern reg_cache_t *mips32_build_reg_cache(target_t *target);
extern int mips32_run_algorithm(struct target_s *target, int num_mem_params, mem_param_t *mem_params, int num_reg_params, reg_param_t *reg_params, u32 entry_point, u32 exit_point, int timeout_ms, void *arch_info);
+extern int mips32_configure_break_unit(struct target_s *target);
+extern int mips32_examine(struct target_s *target);
extern int mips32_register_commands(struct command_context_s *cmd_ctx);
extern int mips32_invalidate_core_regs(target_t *target);