ARM11: macro cleanup
authorDavid Brownell <dbrownell@users.sourceforge.net>
Sun, 22 Nov 2009 23:50:24 +0000 (15:50 -0800)
committerDavid Brownell <dbrownell@users.sourceforge.net>
Sun, 22 Nov 2009 23:50:24 +0000 (15:50 -0800)
Make this code look more like the rest of the OpenOCD code.

 - Use calloc() directly, not NEW() ... and fix some potential
   memory leaks while we're at it.

 - Remove FNC_INFO ... it's a NOP that just clutters things,
   and it's trivial for developers to add tracing as needed.

 - Replace FNC_INFO_NOTIMPLEMENTED with LOG_WARNING calls;
   ditto.  And stop having those call sites wrongly succeed!

 - Waste less space with the CHECK_RETVAL() macro.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
src/target/arm11.c
src/target/arm11.h

index 1a7b4e0d8b29054a238b20b7f2f2fa552c80bc34..0a54c522071b03bb900da5d8cfef811fc0e75141 100644 (file)
 #define _DEBUG_INSTRUCTION_EXECUTION_
 #endif
 
-#if 0
-#define FNC_INFO       LOG_DEBUG("-")
-#else
-#define FNC_INFO
-#endif
-
-#if 1
-#define FNC_INFO_NOTIMPLEMENTED do { LOG_DEBUG("NOT IMPLEMENTED"); /*exit(-1);*/ } while (0)
-#else
-#define FNC_INFO_NOTIMPLEMENTED
-#endif
-
 static bool arm11_config_memwrite_burst = true;
 static bool arm11_config_memwrite_error_fatal = true;
 static uint32_t arm11_vcr = 0;
@@ -180,8 +168,6 @@ static void arm11_dump_reg_changes(struct arm11_common * arm11);
  */
 static int arm11_check_init(struct arm11_common *arm11, uint32_t *dscr)
 {
-       FNC_INFO;
-
        uint32_t                        dscr_local_tmp_copy;
 
        if (!dscr)
@@ -239,7 +225,6 @@ static int arm11_check_init(struct arm11_common *arm11, uint32_t *dscr)
 static int arm11_on_enter_debug_state(struct arm11_common *arm11)
 {
        int retval;
-       FNC_INFO;
 
        for (size_t i = 0; i < ARRAY_SIZE(arm11->reg_values); i++)
        {
@@ -437,7 +422,6 @@ void arm11_dump_reg_changes(struct arm11_common * arm11)
   */
 static int arm11_leave_debug_state(struct arm11_common *arm11)
 {
-       FNC_INFO;
        int retval;
 
        retval = arm11_run_instr_data_prepare(arm11);
@@ -569,7 +553,6 @@ static void arm11_record_register_history(struct arm11_common *arm11)
 /* poll current target status */
 static int arm11_poll(struct target *target)
 {
-       FNC_INFO;
        int retval;
        struct arm11_common *arm11 = target_to_arm11(target);
        uint32_t        dscr;
@@ -626,15 +609,14 @@ static int arm11_arch_state(struct target *target)
 static int arm11_target_request_data(struct target *target,
                uint32_t size, uint8_t *buffer)
 {
-       FNC_INFO_NOTIMPLEMENTED;
+       LOG_WARNING("Not implemented: %s", __func__);
 
-       return ERROR_OK;
+       return ERROR_FAIL;
 }
 
 /* target execution control */
 static int arm11_halt(struct target *target)
 {
-       FNC_INFO;
        struct arm11_common *arm11 = target_to_arm11(target);
 
        LOG_DEBUG("target->state: %s",
@@ -699,8 +681,6 @@ static int arm11_halt(struct target *target)
 static int arm11_resume(struct target *target, int current,
                uint32_t address, int handle_breakpoints, int debug_execution)
 {
-       FNC_INFO;
-
        //        LOG_DEBUG("current %d  address %08x  handle_breakpoints %d  debug_execution %d",
        //      current, address, handle_breakpoints, debug_execution);
 
@@ -880,7 +860,7 @@ static void arm11_sim_set_state(struct arm_sim_interface *sim,
 //     struct arm11_common * arm11 = (struct arm11_common *)sim->user_data;
 
        /* FIX!!!! we should implement thumb for arm11 */
-       LOG_ERROR("Not implemetned!");
+       LOG_ERROR("Not implemented: %s", __func__);
 }
 
 
@@ -913,8 +893,6 @@ static int arm11_simulate_step(struct target *target, uint32_t *dry_run_pc)
 static int arm11_step(struct target *target, int current,
                uint32_t address, int handle_breakpoints)
 {
-       FNC_INFO;
-
        LOG_DEBUG("target->state: %s",
                target_state_name(target));
 
@@ -1068,7 +1046,6 @@ static int arm11_step(struct target *target, int current,
 
 static int arm11_assert_reset(struct target *target)
 {
-       FNC_INFO;
        int retval;
        struct arm11_common *arm11 = target_to_arm11(target);
 
@@ -1135,16 +1112,15 @@ static int arm11_deassert_reset(struct target *target)
 
 static int arm11_soft_reset_halt(struct target *target)
 {
-       FNC_INFO_NOTIMPLEMENTED;
+       LOG_WARNING("Not implemented: %s", __func__);
 
-       return ERROR_OK;
+       return ERROR_FAIL;
 }
 
 /* target register access for gdb */
 static int arm11_get_gdb_reg_list(struct target *target,
                struct reg **reg_list[], int *reg_list_size)
 {
-       FNC_INFO;
        struct arm11_common *arm11 = target_to_arm11(target);
 
        *reg_list_size  = ARM11_GDB_REGISTER_COUNT;
@@ -1181,8 +1157,6 @@ static int arm11_read_memory_inner(struct target *target,
        /** \todo TODO: check if buffer cast to uint32_t* and uint16_t* might cause alignment problems */
        int retval;
 
-       FNC_INFO;
-
        if (target->state != TARGET_HALTED)
        {
                LOG_WARNING("target was not halted");
@@ -1277,7 +1251,6 @@ static int arm11_write_memory_inner(struct target *target,
                bool arm11_config_memrw_no_increment)
 {
        int retval;
-       FNC_INFO;
 
        if (target->state != TARGET_HALTED)
        {
@@ -1421,8 +1394,6 @@ static int arm11_write_memory(struct target *target,
 static int arm11_bulk_write_memory(struct target *target,
                uint32_t address, uint32_t count, uint8_t *buffer)
 {
-       FNC_INFO;
-
        if (target->state != TARGET_HALTED)
        {
                LOG_WARNING("target was not halted");
@@ -1438,7 +1409,6 @@ static int arm11_bulk_write_memory(struct target *target,
 static int arm11_add_breakpoint(struct target *target,
                struct breakpoint *breakpoint)
 {
-       FNC_INFO;
        struct arm11_common *arm11 = target_to_arm11(target);
 
 #if 0
@@ -1469,7 +1439,6 @@ static int arm11_add_breakpoint(struct target *target,
 static int arm11_remove_breakpoint(struct target *target,
                struct breakpoint *breakpoint)
 {
-       FNC_INFO;
        struct arm11_common *arm11 = target_to_arm11(target);
 
        arm11->free_brps++;
@@ -1480,17 +1449,17 @@ static int arm11_remove_breakpoint(struct target *target,
 static int arm11_add_watchpoint(struct target *target,
                struct watchpoint *watchpoint)
 {
-       FNC_INFO_NOTIMPLEMENTED;
+       LOG_WARNING("Not implemented: %s", __func__);
 
-       return ERROR_OK;
+       return ERROR_FAIL;
 }
 
 static int arm11_remove_watchpoint(struct target *target,
                struct watchpoint *watchpoint)
 {
-       FNC_INFO_NOTIMPLEMENTED;
+       LOG_WARNING("Not implemented: %s", __func__);
 
-       return ERROR_OK;
+       return ERROR_FAIL;
 }
 
 // HACKHACKHACK - FIXME mode/state
@@ -1665,11 +1634,7 @@ restore:
 
 static int arm11_target_create(struct target *target, Jim_Interp *interp)
 {
-       FNC_INFO;
-
-       NEW(struct arm11_common, arm11, 1);
-
-       arm11->target = target;
+       struct arm11_common *arm11;
 
        if (target->tap == NULL)
                return ERROR_FAIL;
@@ -1680,8 +1645,14 @@ static int arm11_target_create(struct target *target, Jim_Interp *interp)
                return ERROR_COMMAND_SYNTAX_ERROR;
        }
 
+       arm11 = calloc(1, sizeof *arm11);
+       if (!arm11)
+               return ERROR_FAIL;
+
        armv4_5_init_arch_info(target, &arm11->arm);
 
+       arm11->target = target;
+
        arm11->jtag_info.tap = target->tap;
        arm11->jtag_info.scann_size = 5;
        arm11->jtag_info.scann_instr = ARM11_SCAN_N;
@@ -1708,7 +1679,6 @@ static int arm11_examine(struct target *target)
 {
        int retval;
        char *type;
-       FNC_INFO;
        struct arm11_common *arm11 = target_to_arm11(target);
 
        /* check IDCODE */
@@ -1801,8 +1771,6 @@ static int arm11_examine(struct target *target)
 /** Load a register that is marked !valid in the register cache */
 static int arm11_get_reg(struct reg *reg)
 {
-       FNC_INFO;
-
        struct target * target = ((struct arm11_reg_state *)reg->arch_info)->target;
 
        if (target->state != TARGET_HALTED)
@@ -1824,8 +1792,6 @@ static int arm11_get_reg(struct reg *reg)
 /** Change a value in the register cache */
 static int arm11_set_reg(struct reg *reg, uint8_t *buf)
 {
-       FNC_INFO;
-
        struct target *target = ((struct arm11_reg_state *)reg->arch_info)->target;
        struct arm11_common *arm11 = target_to_arm11(target);
 //     const struct arm11_reg_defs *arm11_reg_info = arm11_reg_defs + ((struct arm11_reg_state *)reg->arch_info)->def_index;
@@ -1845,10 +1811,20 @@ static const struct reg_arch_type arm11_reg_type = {
 static int arm11_build_reg_cache(struct target *target)
 {
        struct arm11_common *arm11 = target_to_arm11(target);
-
-       NEW(struct reg_cache,           cache,                          1);
-       NEW(struct reg,                         reg_list,                       ARM11_REGCACHE_COUNT);
-       NEW(struct arm11_reg_state,     arm11_reg_states,       ARM11_REGCACHE_COUNT);
+       struct reg_cache *cache;
+       struct reg *reg_list;
+       struct arm11_reg_state *arm11_reg_states;
+
+       cache = calloc(1, sizeof *cache);
+       reg_list = calloc(ARM11_REGCACHE_COUNT, sizeof *reg_list);
+       arm11_reg_states = calloc(ARM11_REGCACHE_COUNT,
+                       sizeof *arm11_reg_states);
+       if (!cache || !reg_list || !arm11_reg_states) {
+               free(cache);
+               free(reg_list);
+               free(arm11_reg_states);
+               return ERROR_FAIL;
+       }
 
        arm11->reg_list = reg_list;
 
@@ -1998,8 +1974,6 @@ static int arm11_mcr(struct target *target, int cpnum,
 
 static int arm11_register_commands(struct command_context *cmd_ctx)
 {
-       FNC_INFO;
-
        struct command *top_cmd, *mw_cmd;
 
        armv4_5_register_commands(cmd_ctx);
index 0b379294225195ab7eb5727f757dcacf258a0ac8..3d7841d5b39b56a27ed0c40d0a6511ec608e7998 100644 (file)
 
 #include "armv4_5.h"
 
-#define NEW(type, variable, items)                     \
-       type * variable = calloc(1, sizeof(type) * items)
-
 /* 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
 {