verify: display up to 128 diff's
[fw/openocd] / src / target / dsp563xx.c
index 9e2f6093986cead169e5124470ff74ad5f156170..b42e7b3ece698a87ddf57bb1f29d694cae49907c 100644 (file)
@@ -246,6 +246,29 @@ static const struct
        /* *INDENT-ON* */
 };
 
+static int dsp563xx_get_gdb_reg_list(struct target *target, struct reg **reg_list[],
+                             int *reg_list_size)
+{
+       struct dsp563xx_common *dsp563xx = target_to_dsp563xx(target);
+       int i;
+
+       if (target->state != TARGET_HALTED)
+       {
+               return ERROR_TARGET_NOT_HALTED;
+       }
+
+       *reg_list_size = DSP563XX_NUMCOREREGS;
+       *reg_list = malloc(sizeof(struct reg *) * (*reg_list_size));
+
+       for (i = 0; i < DSP563XX_NUMCOREREGS; i++)
+       {
+               (*reg_list)[i] = &dsp563xx->core_cache->reg_list[i];
+       }
+
+       return ERROR_OK;
+
+}
+
 int dsp563xx_read_core_reg(struct target *target, int num)
 {
        uint32_t reg_value;
@@ -840,14 +863,7 @@ int dsp563xx_write_ir(struct jtag_tap *tap, uint8_t * ir_in, uint8_t * ir_out,
        }
 
        {
-               struct scan_field field[1];
-
-               field[0].tap = tap;
-               field[0].num_bits = tap->ir_length;
-               field[0].out_value = ir_out;
-               field[0].in_value = ir_in;
-               jtag_add_plain_ir_scan(ARRAY_SIZE(field), field,
-                                      jtag_set_end_state(TAP_IDLE));
+               jtag_add_plain_ir_scan(tap->ir_length, ir_out, ir_in, TAP_IDLE);
        }
 
        return ERROR_OK;
@@ -863,14 +879,7 @@ int dsp563xx_write_dr(struct jtag_tap *tap, uint8_t * dr_in, uint8_t * dr_out,
        }
 
        {
-               struct scan_field field[1];
-
-               field[0].tap = tap;
-               field[0].num_bits = dr_len;
-               field[0].out_value = dr_out;
-               field[0].in_value = dr_in;
-               jtag_add_plain_dr_scan(ARRAY_SIZE(field), field,
-                                      jtag_set_end_state(TAP_IDLE));
+               jtag_add_plain_dr_scan(dr_len, dr_out, dr_in, TAP_IDLE);
        }
 
        return ERROR_OK;
@@ -974,6 +983,8 @@ struct target_type dsp563xx_target = {
 
        .target_request_data = NULL,
 
+       .get_gdb_reg_list = dsp563xx_get_gdb_reg_list,
+
        .halt = dsp563xx_halt,
        .resume = dsp563xx_resume,
        .step = dsp563xx_step,