aboutsummaryrefslogtreecommitdiff
path: root/src/target
diff options
context:
space:
mode:
Diffstat (limited to 'src/target')
-rw-r--r--src/target/cortex_a.c2
-rw-r--r--src/target/target.c33
-rw-r--r--src/target/target.h4
-rw-r--r--src/target/target_type.h3
4 files changed, 16 insertions, 26 deletions
diff --git a/src/target/cortex_a.c b/src/target/cortex_a.c
index ead35deb..3923b3d1 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 183005e4..db676b97 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 3eade513..3baafbe7 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 6017e334..5b72d841 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 <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.