diff options
author | Michel JAOUEN <michel.jaouen@stericsson.com> | 2012-01-03 16:18:22 +0100 |
---|---|---|
committer | Øyvind Harboe <oyvindharboe@gmail.com> | 2012-01-15 22:13:03 +0000 |
commit | 2bc51d1abc14ec776da7f52ef344742259dccdcd (patch) | |
tree | c5e266a1f07a55e82ea6d822a06de9ffa0185eb1 | |
parent | ebac7c963a76ba20b4e66b0525d12127295cdccb (diff) | |
download | riscv-openocd-2bc51d1abc14ec776da7f52ef344742259dccdcd.zip riscv-openocd-2bc51d1abc14ec776da7f52ef344742259dccdcd.tar.gz riscv-openocd-2bc51d1abc14ec776da7f52ef344742259dccdcd.tar.bz2 |
rtos : ps command
Change-Id: I1b00b6d72f425826c33b0df7dd63114ce642ce93
Signed-off-by: Michel JAOUEN <michel.jaouen@stericsson.com>
Reviewed-on: http://openocd.zylin.com/345
Tested-by: jenkins
Reviewed-by: Evan Hunter <evan@ozhiker.com>
Reviewed-by: Øyvind Harboe <oyvindharboe@gmail.com>
-rw-r--r-- | src/rtos/rtos.h | 1 | ||||
-rw-r--r-- | src/target/target.c | 29 |
2 files changed, 30 insertions, 0 deletions
diff --git a/src/rtos/rtos.h b/src/rtos/rtos.h index 890a99e..3d23148 100644 --- a/src/rtos/rtos.h +++ b/src/rtos/rtos.h @@ -80,6 +80,7 @@ struct rtos_type int (*get_thread_reg_list) ( struct rtos *rtos, int64_t thread_id, char ** hex_reg_list ); int (*get_symbol_list_to_lookup) (symbol_table_elem_t * symbol_list[] ); int (*clean)(struct target *target); + char * (*ps_command)(struct target *target); }; diff --git a/src/target/target.c b/src/target/target.c index e53d6f8..67876d1 100644 --- a/src/target/target.c +++ b/src/target/target.c @@ -5515,6 +5515,27 @@ COMMAND_HANDLER(handle_target_reset_nag) "performance"); } +COMMAND_HANDLER(handle_ps_command) +{ + struct target *target = get_current_target(CMD_CTX); + char *display; + if (target->state != TARGET_HALTED) { + LOG_INFO("target not halted !!"); + return ERROR_OK; + } + + if ((target->rtos) && (target->rtos->type) + && (target->rtos->type->ps_command)) { + display = target->rtos->type->ps_command(target); + command_print(CMD_CTX, "%s", display); + free(display); + return ERROR_OK; + } else { + LOG_INFO("failed"); + return ERROR_TARGET_FAILURE; + } +} + static const struct command_registration target_exec_command_handlers[] = { { .name = "fast_load_image", @@ -5727,6 +5748,14 @@ static const struct command_registration target_exec_command_handlers[] = { "enabled to improve performance. ", .usage = "['enable'|'disable']", }, + { + .name = "ps", + .handler = handle_ps_command, + .mode = COMMAND_EXEC, + .help = "list all tasks ", + .usage = " ", + }, + COMMAND_REGISTRATION_DONE }; static int target_register_user_commands(struct command_context *cmd_ctx) |