aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/target/cortex_a.c6
-rw-r--r--src/target/target.c21
-rw-r--r--src/target/target_type.h2
3 files changed, 11 insertions, 18 deletions
diff --git a/src/target/cortex_a.c b/src/target/cortex_a.c
index ee1559dd..ead35deb 100644
--- a/src/target/cortex_a.c
+++ b/src/target/cortex_a.c
@@ -1404,7 +1404,7 @@ static int cortex_a8_set_breakpoint(struct target *target,
breakpoint->orig_instr);
if (retval != ERROR_OK)
return retval;
- retval = target->type->write_memory(target,
+ retval = target_write_memory(target,
breakpoint->address & 0xFFFFFFFE,
breakpoint->length, 1, code);
if (retval != ERROR_OK)
@@ -1630,13 +1630,13 @@ static int cortex_a8_unset_breakpoint(struct target *target, struct breakpoint *
} else {
/* restore original instruction (kept in target endianness) */
if (breakpoint->length == 4) {
- retval = target->type->write_memory(target,
+ retval = target_write_memory(target,
breakpoint->address & 0xFFFFFFFE,
4, 1, breakpoint->orig_instr);
if (retval != ERROR_OK)
return retval;
} else {
- retval = target->type->write_memory(target,
+ retval = target_write_memory(target,
breakpoint->address & 0xFFFFFFFE,
2, 1, breakpoint->orig_instr);
if (retval != ERROR_OK)
diff --git a/src/target/target.c b/src/target/target.c
index 7e397569..183005e4 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_write_memory_imp(struct target *target, uint32_t address,
- uint32_t size, uint32_t count, const uint8_t *buffer)
-{
- if (!target_was_examined(target)) {
- LOG_ERROR("Target not examined yet");
- return ERROR_FAIL;
- }
- return target->type->write_memory_imp(target, address, size, count, buffer);
-}
-
static int target_read_memory_imp(struct target *target, uint32_t address,
uint32_t size, uint32_t count, uint8_t *buffer)
{
@@ -963,12 +953,20 @@ static int target_read_phys_memory(struct target *target,
int target_write_memory(struct target *target,
uint32_t address, uint32_t size, uint32_t count, const uint8_t *buffer)
{
+ if (!target_was_examined(target)) {
+ LOG_ERROR("Target not examined yet");
+ return ERROR_FAIL;
+ }
return target->type->write_memory(target, address, size, count, buffer);
}
static 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)) {
+ LOG_ERROR("Target not examined yet");
+ return ERROR_FAIL;
+ }
return target->type->write_phys_memory(target, address, size, count, buffer);
}
@@ -1093,9 +1091,6 @@ static int target_init_one(struct command_context *cmd_ctx,
/* a non-invasive way(in terms of patches) to add some code that
* runs before the type->write/read_memory implementation
*/
- type->write_memory_imp = target->type->write_memory;
- type->write_memory = target_write_memory_imp;
-
type->read_memory_imp = target->type->read_memory;
type->read_memory = target_read_memory_imp;
diff --git a/src/target/target_type.h b/src/target/target_type.h
index 99c8f513..6017e334 100644
--- a/src/target/target_type.h
+++ b/src/target/target_type.h
@@ -115,8 +115,6 @@ struct target_type {
*/
int (*read_memory)(struct target *target, uint32_t address,
uint32_t size, uint32_t count, uint8_t *buffer);
- int (*write_memory_imp)(struct target *target, uint32_t address,
- uint32_t size, uint32_t count, const uint8_t *buffer);
/**
* Target memory write callback. Do @b not call this function
* directly, use target_write_memory() instead.