Bugfixes in mips32_pracc.c
[fw/openocd] / src / target / arm.h
index 6b304e9f30a5702875ee76f0612ca13135ac35be..30e2c76eabb2fcea9e040461277a12be91dda13f 100644 (file)
@@ -23,6 +23,7 @@
  * Free Software Foundation, Inc.,
  * 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  */
+
 #ifndef ARM_H
 #define ARM_H
 
@@ -80,8 +81,6 @@ enum arm_state {
        ARM_STATE_THUMB_EE,
 };
 
-extern const char *arm_state_strings[];
-
 #define ARM_COMMON_MAGIC 0x0A450A45
 
 /**
@@ -126,12 +125,17 @@ struct arm {
        /** Flag reporting unavailability of the BKPT instruction. */
        bool is_armv4;
 
+       /** Flag reporting armv6m based core. */
+       bool is_armv6m;
+
        /** Flag reporting whether semihosting is active. */
        bool is_semihosting;
 
        /** Value to be returned by semihosting SYS_ERRNO request. */
        int semihosting_errno;
 
+       int (*setup_semihosting)(struct target *target, int enable);
+
        /** Backpointer to the target. */
        struct target *target;
 
@@ -165,17 +169,25 @@ struct arm {
                        uint32_t value);
 
        void *arch_info;
+
+       /** For targets conforming to ARM Debug Interface v5,
+        * this handle references the Debug Access Port (DAP)
+        * used to make requests to the target.
+        */
+       struct adiv5_dap *dap;
 };
 
 /** Convert target handle to generic ARM target state handle. */
 static inline struct arm *target_to_arm(struct target *target)
 {
+       assert(target != NULL);
        return target->arch_info;
 }
 
 static inline bool is_arm(struct arm *arm)
 {
-       return arm && arm->common_magic == ARM_COMMON_MAGIC;
+       assert(arm != NULL);
+       return arm->common_magic == ARM_COMMON_MAGIC;
 }
 
 struct arm_algorithm {
@@ -189,7 +201,7 @@ struct arm_reg {
        int num;
        enum arm_mode mode;
        struct target *target;
-       struct arm *armv4_5_common;
+       struct arm *arm;
        uint32_t value;
 };