diff options
author | Megan Wachs <megan@sifive.com> | 2017-02-05 21:06:43 -0800 |
---|---|---|
committer | Megan Wachs <megan@sifive.com> | 2017-02-05 21:06:43 -0800 |
commit | 2ae0078fc723d18822ed50f6f3accd32107acbef (patch) | |
tree | a567bbb3757320da0ac65c1851dc376e3785f84f /src/target/target.c | |
parent | 9bab0782d313679bb0bfb634e6e87c757b8d5503 (diff) | |
download | riscv-openocd-2ae0078fc723d18822ed50f6f3accd32107acbef.zip riscv-openocd-2ae0078fc723d18822ed50f6f3accd32107acbef.tar.gz riscv-openocd-2ae0078fc723d18822ed50f6f3accd32107acbef.tar.bz2 |
Use the set/reg register error return code when registers don't exist.
Diffstat (limited to 'src/target/target.c')
-rw-r--r-- | src/target/target.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/target/target.c b/src/target/target.c index 82ba349..a8be18e 100644 --- a/src/target/target.c +++ b/src/target/target.c @@ -2614,6 +2614,7 @@ COMMAND_HANDLER(handle_reg_command) struct reg *reg = NULL; unsigned count = 0; char *value; + int retval; LOG_DEBUG("-"); @@ -2699,8 +2700,13 @@ COMMAND_HANDLER(handle_reg_command) if ((CMD_ARGC == 2) && (strcmp(CMD_ARGV[1], "force") == 0)) reg->valid = 0; - if (reg->valid == 0) - reg->type->get(reg); + if (reg->valid == 0) { + retval = reg->type->get(reg); + if (retval != ERROR_OK) { + LOG_DEBUG("Couldn't get register."); + return retval; + } + } value = buf_to_str(reg->value, reg->size, 16); command_print(CMD_CTX, "%s (/%i): 0x%s", reg->name, (int)(reg->size), value); free(value); @@ -2714,7 +2720,12 @@ COMMAND_HANDLER(handle_reg_command) return ERROR_FAIL; str_to_buf(CMD_ARGV[1], strlen(CMD_ARGV[1]), buf, reg->size, 0); - reg->type->set(reg, buf); + retval = reg->type->set(reg, buf); + if (retval != ERROR_OK) { + LOG_DEBUG("Couldn't set register."); + free (buf); + return retval; + } value = buf_to_str(reg->value, reg->size, 16); command_print(CMD_CTX, "%s (/%i): 0x%s", reg->name, (int)(reg->size), value); |