target: Remove read_memory_imp 19/1219/2
authorAndreas Fritiofson <andreas.fritiofson@gmail.com>
Sun, 10 Mar 2013 13:39:31 +0000 (14:39 +0100)
committerSpencer Oliver <spen@spen-soft.co.uk>
Wed, 13 Mar 2013 12:36:09 +0000 (12:36 +0000)
Change-Id: Idc6ef3b075ccbb5945df8fea746011cb17175d8f
Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
Reviewed-on: http://openocd.zylin.com/1219
Tested-by: jenkins
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
src/rtos/linux.c
src/target/cortex_a.c
src/target/target.c
src/target/target.h
src/target/target_type.h

index e0f71ef..23b1a9e 100644 (file)
@@ -140,9 +140,9 @@ static int linux_read_memory(struct target *target,
                return ERROR_FAIL;
        }
 #ifdef PHYS
                return ERROR_FAIL;
        }
 #ifdef PHYS
-       target->type->read_phys_memory(target, pa, size, count, buffer);
+       target_read_phys_memory(target, pa, size, count, buffer);
 #endif
 #endif
-       target->type->read_memory(target, address, size, count, buffer);
+       target_read_memory(target, address, size, count, buffer);
        return ERROR_OK;
 }
 
        return ERROR_OK;
 }
 
index ead35de..3923b3d 100644 (file)
@@ -1398,7 +1398,7 @@ static int cortex_a8_set_breakpoint(struct target *target,
                        buf_set_u32(code, 0, 32, ARMV5_T_BKPT(0x11));
                else
                        buf_set_u32(code, 0, 32, ARMV5_BKPT(0x11));
                        buf_set_u32(code, 0, 32, ARMV5_T_BKPT(0x11));
                else
                        buf_set_u32(code, 0, 32, ARMV5_BKPT(0x11));
-               retval = target->type->read_memory(target,
+               retval = target_read_memory(target,
                                breakpoint->address & 0xFFFFFFFE,
                                breakpoint->length, 1,
                                breakpoint->orig_instr);
                                breakpoint->address & 0xFFFFFFFE,
                                breakpoint->length, 1,
                                breakpoint->orig_instr);
index 183005e..db676b9 100644 (file)
@@ -657,16 +657,6 @@ const char *target_type_name(struct target *target)
        return target->type->name;
 }
 
        return target->type->name;
 }
 
-static int target_read_memory_imp(struct target *target, uint32_t address,
-               uint32_t size, uint32_t count, uint8_t *buffer)
-{
-       if (!target_was_examined(target)) {
-               LOG_ERROR("Target not examined yet");
-               return ERROR_FAIL;
-       }
-       return target->type->read_memory_imp(target, address, size, count, buffer);
-}
-
 static int target_soft_reset_halt(struct target *target)
 {
        if (!target_was_examined(target)) {
 static int target_soft_reset_halt(struct target *target)
 {
        if (!target_was_examined(target)) {
@@ -941,12 +931,20 @@ int target_run_flash_async_algorithm(struct target *target,
 int target_read_memory(struct target *target,
                uint32_t address, uint32_t size, uint32_t count, uint8_t *buffer)
 {
 int target_read_memory(struct target *target,
                uint32_t address, uint32_t size, uint32_t count, uint8_t *buffer)
 {
+       if (!target_was_examined(target)) {
+               LOG_ERROR("Target not examined yet");
+               return ERROR_FAIL;
+       }
        return target->type->read_memory(target, address, size, count, buffer);
 }
 
        return target->type->read_memory(target, address, size, count, buffer);
 }
 
-static int target_read_phys_memory(struct target *target,
+int target_read_phys_memory(struct target *target,
                uint32_t address, uint32_t size, uint32_t count, uint8_t *buffer)
 {
                uint32_t address, uint32_t size, uint32_t count, uint8_t *buffer)
 {
+       if (!target_was_examined(target)) {
+               LOG_ERROR("Target not examined yet");
+               return ERROR_FAIL;
+       }
        return target->type->read_phys_memory(target, address, size, count, buffer);
 }
 
        return target->type->read_phys_memory(target, address, size, count, buffer);
 }
 
@@ -960,7 +958,7 @@ int target_write_memory(struct target *target,
        return target->type->write_memory(target, address, size, count, buffer);
 }
 
        return target->type->write_memory(target, address, size, count, buffer);
 }
 
-static int target_write_phys_memory(struct target *target,
+int target_write_phys_memory(struct target *target,
                uint32_t address, uint32_t size, uint32_t count, const uint8_t *buffer)
 {
        if (!target_was_examined(target)) {
                uint32_t address, uint32_t size, uint32_t count, const uint8_t *buffer)
 {
        if (!target_was_examined(target)) {
@@ -1083,17 +1081,6 @@ static int target_init_one(struct command_context *cmd_ctx,
                return retval;
        }
 
                return retval;
        }
 
-       /**
-        * @todo get rid of those *memory_imp() methods, now that all
-        * callers are using target_*_memory() accessors ... and make
-        * sure the "physical" paths handle the same issues.
-        */
-       /* a non-invasive way(in terms of patches) to add some code that
-        * runs before the type->write/read_memory implementation
-        */
-       type->read_memory_imp = target->type->read_memory;
-       type->read_memory = target_read_memory_imp;
-
        /* Sanity-check MMU support ... stub in what we must, to help
         * implement it in stages, but warn if we need to do so.
         */
        /* Sanity-check MMU support ... stub in what we must, to help
         * implement it in stages, but warn if we need to do so.
         */
index 3eade51..3baafbe 100644 (file)
@@ -461,6 +461,8 @@ int target_run_flash_async_algorithm(struct target *target,
  */
 int target_read_memory(struct target *target,
                uint32_t address, uint32_t size, uint32_t count, uint8_t *buffer);
  */
 int target_read_memory(struct target *target,
                uint32_t address, uint32_t size, uint32_t count, uint8_t *buffer);
+int target_read_phys_memory(struct target *target,
+               uint32_t address, uint32_t size, uint32_t count, uint8_t *buffer);
 /**
  * Write @a count items of @a size bytes to the memory of @a target at
  * the @a address given. @a address must be aligned to @a size
 /**
  * Write @a count items of @a size bytes to the memory of @a target at
  * the @a address given. @a address must be aligned to @a size
@@ -480,6 +482,8 @@ int target_read_memory(struct target *target,
  */
 int target_write_memory(struct target *target,
                uint32_t address, uint32_t size, uint32_t count, const uint8_t *buffer);
  */
 int target_write_memory(struct target *target,
                uint32_t address, uint32_t size, uint32_t count, const uint8_t *buffer);
+int target_write_phys_memory(struct target *target,
+               uint32_t address, uint32_t size, uint32_t count, const uint8_t *buffer);
 
 /**
  * Write @a count items of 4 bytes to the memory of @a target at
 
 /**
  * Write @a count items of 4 bytes to the memory of @a target at
index 6017e33..5b72d84 100644 (file)
@@ -107,8 +107,7 @@ struct target_type {
        * size: 1 = byte (8bit), 2 = half-word (16bit), 4 = word (32bit)
        * count: number of items of <size>
        */
        * size: 1 = byte (8bit), 2 = half-word (16bit), 4 = word (32bit)
        * count: number of items of <size>
        */
-       int (*read_memory_imp)(struct target *target, uint32_t address,
-                       uint32_t size, uint32_t count, uint8_t *buffer);
+
        /**
         * Target memory read callback.  Do @b not call this function
         * directly, use target_read_memory() instead.
        /**
         * Target memory read callback.  Do @b not call this function
         * directly, use target_read_memory() instead.