Hongtao Zheng - more fixes to single stepping. Better hiding of details and fixes...
[fw/openocd] / src / target / arm7_9_common.h
index b95516e6e5b96f4b6dd13ca808dd580c084bb0bb..73d8f59e4704f7c8ac963d29549b8dbb8e4c5035 100644 (file)
@@ -2,6 +2,12 @@
  *   Copyright (C) 2005 by Dominic Rath                                    *
  *   Dominic.Rath@gmx.de                                                   *
  *                                                                         *
+ *   Copyright (C) 2007,2008 Ã˜yvind Harboe                                 *
+ *   oyvind.harboe@zylin.com                                               *
+ *                                                                         *
+ *   Copyright (C) 2008 by Spencer Oliver                                  *
+ *   spen@spen-soft.co.uk                                                  *
+ *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   it under the terms of the GNU General Public License as published by  *
  *   the Free Software Foundation; either version 2 of the License, or     *
@@ -38,14 +44,17 @@ typedef struct arm7_9_common_s
        
        u32 arm_bkpt;
        u16 thumb_bkpt;
-       int sw_bkpts_use_wp;
+       int sw_breakpoints_added;
+       int breakpoint_count;
        int wp_available;
+       int wp_available_max;
        int wp0_used;
        int wp1_used;
-       int sw_bkpts_enabled;
+       int wp1_used_default;
        int force_hw_bkpts;
        int dbgreq_adjust_pc;
        int use_dbgrq;
+       int need_bypass_before_restart;
        
        etm_context_t *etm_ctx;
        
@@ -53,7 +62,6 @@ typedef struct arm7_9_common_s
        int has_monitor_mode;
        int has_vector_catch;
        
-       int reinit_embeddedice;
        int debug_entry_from_reset;
        
        struct working_area_s *dcc_working_area;
@@ -88,6 +96,8 @@ typedef struct arm7_9_common_s
        void (*enable_single_step)(target_t *target);
        void (*disable_single_step)(target_t *target);
        
+       void (*set_special_dbgrq)(target_t *target);
+
        void (*pre_debug_entry)(target_t *target);
        void (*post_debug_entry)(target_t *target);
        
@@ -105,6 +115,7 @@ int arm7_9_poll(target_t *target);
 
 int arm7_9_target_request_data(target_t *target, u32 size, u8 *buffer);
 
+int arm7_9_setup(target_t *target);
 int arm7_9_assert_reset(target_t *target);
 int arm7_9_deassert_reset(target_t *target);
 int arm7_9_reset_request_halt(target_t *target);
@@ -123,6 +134,7 @@ int arm7_9_read_memory(struct target_s *target, u32 address, u32 size, u32 count
 int arm7_9_write_memory(struct target_s *target, u32 address, u32 size, u32 count, u8 *buffer);
 int arm7_9_bulk_write_memory(target_t *target, u32 address, u32 count, u8 *buffer);
 int arm7_9_checksum_memory(struct target_s *target, u32 address, u32 count, u32* checksum);
+int arm7_9_blank_check_memory(struct target_s *target, u32 address, u32 count, u32* blank);
 
 int arm7_9_run_algorithm(struct target_s *target, int num_mem_params, mem_param_t *mem_params, int num_reg_prams, reg_param_t *reg_param, u32 entry_point, void *arch_info);