mips: fix gaffe when removing dynamic array allocation
[fw/openocd] / src / target / arm11.h
index 6bc1a25133c85cd7f3c8d8a69d2ebf5bb07514e7..d40faa4faa68dd1cedc97fc0fa7b38a0af2a1577 100644 (file)
 #ifndef ARM11_H
 #define ARM11_H
 
-#include "target.h"
-#include "register.h"
-#include "jtag.h"
+#include "armv4_5.h"
 
-#define asizeof(x)     (sizeof(x) / sizeof((x)[0]))
-
-#define NEW(type, variable, items)                     \
-       type * variable = calloc(1, sizeof(type) * items)
-
-/* For MinGW use 'I' prefix to print size_t (instead of 'z') */
-/* Except if __USE_MINGW_ANSI_STDIO is defined with MinGW    */
-
-#if (!defined(__MSVCRT__) || defined(__USE_MINGW_ANSI_STDIO))
-#define ZU             "%zu"
-#else
-#define ZU             "%Iu"
-#endif
-
-#define ARM11_REGCACHE_MODEREGS                0
-#define ARM11_REGCACHE_FREGS           0
-
-#define ARM11_REGCACHE_COUNT           (20 +                                   \
-                                        23 * ARM11_REGCACHE_MODEREGS +                 \
-                                         9 * ARM11_REGCACHE_FREGS)
+/* TEMPORARY -- till we switch to the shared infrastructure */
+#define ARM11_REGCACHE_COUNT           20
 
 #define ARM11_TAP_DEFAULT                      TAP_INVALID
 
-
-#define CHECK_RETVAL(action)                                                           \
-do {                                                                                                           \
-       int __retval = (action);                                                                \
-                                                                                                                       \
-       if (__retval != ERROR_OK)                                                               \
-       {                                                                                                               \
-               LOG_DEBUG("error while calling \"" # action "\"");      \
-               return __retval;                                                                        \
-       }                                                                                                               \
-                                                                                                                       \
-} while (0)
-
+#define CHECK_RETVAL(action)                   \
+       do {                                    \
+               int __retval = (action);        \
+               if (__retval != ERROR_OK) {     \
+                       LOG_DEBUG("error while calling \"%s\"", \
+                               # action );     \
+                       return __retval;        \
+               }                               \
+       } while (0)
 
 struct arm11_register_history
 {
@@ -80,20 +56,15 @@ enum arm11_debug_version
 
 struct arm11_common
 {
-       target_t *      target;         /**< Reference back to the owner */
+       struct arm      arm;
+       struct target * target;         /**< Reference back to the owner */
 
        /** \name Processor type detection */
        /*@{*/
 
-       uint32_t                device_id;              /**< IDCODE readout                             */
-       uint32_t                didr;                   /**< DIDR readout (debug capabilities)  */
-       uint8_t         implementor;    /**< DIDR Implementor readout           */
-
        size_t  brp;                    /**< Number of Breakpoint Register Pairs from DIDR      */
        size_t  wrp;                    /**< Number of Watchpoint Register Pairs from DIDR      */
 
-       enum arm11_debug_version
-               debug_version;          /**< ARM debug architecture from DIDR   */
        /*@}*/
 
        uint32_t                last_dscr;              /**< Last retrieved DSCR value;
@@ -117,8 +88,15 @@ struct arm11_common
 
        // GA
        struct reg_cache *core_cache;
+
+       struct arm_jtag jtag_info;
 };
 
+static inline struct arm11_common *target_to_arm11(struct target *target)
+{
+       return container_of(target->arch_info, struct arm11_common,
+                       arm);
+}
 
 /**
  * ARM11 DBGTAP instructions
@@ -179,14 +157,7 @@ enum arm11_sc7
 struct arm11_reg_state
 {
        uint32_t                                def_index;
-       target_t *                      target;
+       struct target *                 target;
 };
 
-int arm11_register_commands(struct command_context_s *cmd_ctx);
-
-int arm11_read_etm(struct arm11_common * arm11, uint8_t address, uint32_t *value);
-int arm11_write_etm(struct arm11_common * arm11, uint8_t address, uint32_t value);
-
-
-
 #endif /* ARM11_H */