aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichel 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
commit2bc51d1abc14ec776da7f52ef344742259dccdcd (patch)
treec5e266a1f07a55e82ea6d822a06de9ffa0185eb1 /src
parentebac7c963a76ba20b4e66b0525d12127295cdccb (diff)
downloadriscv-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>
Diffstat (limited to 'src')
-rw-r--r--src/rtos/rtos.h1
-rw-r--r--src/target/target.c29
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)