From 9b6de72c2ba149ac6f3e11d6d0dd3030bf7b19f9 Mon Sep 17 00:00:00 2001 From: Andreas Fritiofson Date: Sun, 10 Mar 2013 14:39:31 +0100 Subject: [PATCH] target: Remove read_memory_imp Change-Id: Idc6ef3b075ccbb5945df8fea746011cb17175d8f Signed-off-by: Andreas Fritiofson Reviewed-on: http://openocd.zylin.com/1219 Tested-by: jenkins Reviewed-by: Spencer Oliver --- src/rtos/linux.c | 4 ++-- src/target/cortex_a.c | 2 +- src/target/target.c | 33 ++++++++++----------------------- src/target/target.h | 4 ++++ src/target/target_type.h | 3 +-- 5 files changed, 18 insertions(+), 28 deletions(-) diff --git a/src/rtos/linux.c b/src/rtos/linux.c index e0f71ef46..23b1a9e58 100644 --- a/src/rtos/linux.c +++ b/src/rtos/linux.c @@ -140,9 +140,9 @@ static int linux_read_memory(struct target *target, 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 - target->type->read_memory(target, address, size, count, buffer); + target_read_memory(target, address, size, count, buffer); return ERROR_OK; } diff --git a/src/target/cortex_a.c b/src/target/cortex_a.c index ead35deb7..3923b3d10 100644 --- a/src/target/cortex_a.c +++ b/src/target/cortex_a.c @@ -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)); - retval = target->type->read_memory(target, + retval = target_read_memory(target, breakpoint->address & 0xFFFFFFFE, breakpoint->length, 1, breakpoint->orig_instr); diff --git a/src/target/target.c b/src/target/target.c index 183005e4d..db676b970 100644 --- a/src/target/target.c +++ b/src/target/target.c @@ -657,16 +657,6 @@ const char *target_type_name(struct target *target) 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)) { @@ -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) { + if (!target_was_examined(target)) { + LOG_ERROR("Target not examined yet"); + return ERROR_FAIL; + } 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) { + 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); } @@ -960,7 +958,7 @@ int target_write_memory(struct target *target, 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)) { @@ -1083,17 +1081,6 @@ static int target_init_one(struct command_context *cmd_ctx, 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. */ diff --git a/src/target/target.h b/src/target/target.h index 3eade513a..3baafbe70 100644 --- a/src/target/target.h +++ b/src/target/target.h @@ -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_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 @@ -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_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 diff --git a/src/target/target_type.h b/src/target/target_type.h index 6017e334a..5b72d841a 100644 --- a/src/target/target_type.h +++ b/src/target/target_type.h @@ -107,8 +107,7 @@ struct target_type { * size: 1 = byte (8bit), 2 = half-word (16bit), 4 = word (32bit) * count: number of items of */ - 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.