]> git.sur5r.net Git - openocd/blobdiff - src/target/arm9tdmi.c
First step in hiding target_type_s from public interface:
[openocd] / src / target / arm9tdmi.c
index 0a262490c0c67371e6124c2177bb1e035af79eb5..2edeea546c0c8c4e5635d934a2f3673511909838 100644 (file)
@@ -27,6 +27,7 @@
 #include "config.h"
 #endif
 
+#define DEFINE_TARGET_TYPE_S
 #include "arm9tdmi.h"
 
 
@@ -291,9 +292,9 @@ int arm9tdmi_clock_data_in(arm_jtag_t *jtag_info, u32 *in)
 
 extern void arm_endianness(u8 *tmp, void *in, int size, int be, int flip);
 
-static int arm9endianness(u8 *in, jtag_callback_data_t size, jtag_callback_data_t be)
+static int arm9endianness(u8 *in, jtag_callback_data_t size, jtag_callback_data_t be, jtag_callback_data_t captured)
 {
-       arm_endianness(in, in, (int)size, (int)be, 0);
+       arm_endianness((u8 *)captured, in, (int)size, (int)be, 0);
        return ERROR_OK;
 }
 
@@ -317,7 +318,7 @@ int arm9tdmi_clock_data_in_endianness(arm_jtag_t *jtag_info, void *in, int size,
        fields[0].tap = jtag_info->tap;
        fields[0].num_bits = 32;
        fields[0].out_value = NULL;
-       fields[0].in_value = (u8 *)in;
+       jtag_alloc_in_value32(&fields[0]);
 
        fields[1].tap = jtag_info->tap;
        fields[1].num_bits = 3;
@@ -331,7 +332,7 @@ int arm9tdmi_clock_data_in_endianness(arm_jtag_t *jtag_info, void *in, int size,
 
        jtag_add_dr_scan(3, fields, TAP_INVALID);
 
-       jtag_add_callback3(arm9endianness, in, (jtag_callback_data_t)size, (jtag_callback_data_t)be);
+       jtag_add_callback4(arm9endianness, in, (jtag_callback_data_t)size, (jtag_callback_data_t)be, (jtag_callback_data_t)fields[0].in_value);
 
        jtag_add_runtest(0, TAP_INVALID);
 
@@ -810,7 +811,7 @@ int arm9tdmi_examine(struct target_s *target)
        int retval;
        armv4_5_common_t *armv4_5 = target->arch_info;
        arm7_9_common_t *arm7_9 = armv4_5->arch_info;
-       if (!target->type->examined)
+       if (!target_was_examined(target))
        {
                reg_cache_t **cache_p = register_get_last_cache_p(&target->reg_cache);
                reg_cache_t *t;
@@ -827,7 +828,7 @@ int arm9tdmi_examine(struct target_s *target)
                        (*cache_p)->next = etm_build_reg_cache(target, jtag_info, arm7_9->etm_ctx);
                        arm7_9->etm_ctx->reg_cache = (*cache_p)->next;
                }
-               target->type->examined = 1;
+               target_set_examined(target);
        }
        if ((retval=embeddedice_setup(target))!=ERROR_OK)
                return retval;