diff --git a/src/include/target.h b/src/include/target.h index ee3e5fb3..d052ab15 100644 --- a/src/include/target.h +++ b/src/include/target.h @@ -62,6 +62,8 @@ size_t target_regs_size(target *t); const char *target_tdesc(target *t); void target_regs_read(target *t, void *data); void target_regs_write(target *t, const void *data); +ssize_t target_reg_read(target *t, int reg, void *data, size_t max); +ssize_t target_reg_write(target *t, int reg, const void *data, size_t size); /* Halt/resume functions */ enum target_halt_reason { diff --git a/src/target/target.c b/src/target/target.c index db396a38..85c5198f 100644 --- a/src/target/target.c +++ b/src/target/target.c @@ -337,6 +337,16 @@ int target_mem_write(target *t, target_addr dest, const void *src, size_t len) } /* Register access functions */ +ssize_t target_reg_read(target *t, int reg, void *data, size_t max) +{ + return t->reg_read(t, reg, data, max); +} + +ssize_t target_reg_write(target *t, int reg, const void *data, size_t size) +{ + return t->reg_write(t, reg, data, size); +} + void target_regs_read(target *t, void *data) { t->regs_read(t, data); } void target_regs_write(target *t, const void *data) { t->regs_write(t, data); } diff --git a/src/target/target_internal.h b/src/target/target_internal.h index 5f4e41e7..69981f3f 100644 --- a/src/target/target_internal.h +++ b/src/target/target_internal.h @@ -92,6 +92,8 @@ struct target_s { const char *tdesc; void (*regs_read)(target *t, void *data); void (*regs_write)(target *t, const void *data); + ssize_t (*reg_read)(target *t, int reg, void *data, size_t max); + ssize_t (*reg_write)(target *t, int reg, const void *data, size_t size); /* Halt/resume functions */ void (*reset)(target *t);