enumeration of threads for testing purposes.
git-svn-id: svn://svn.berlios.de/openocd/trunk@1035 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This commit is contained in:
parent
a5dd5a45f3
commit
fbdc87effc
|
@ -934,6 +934,72 @@ zylinjtag_Jim_Command_rm(Jim_Interp *interp,
|
|||
return del ? JIM_OK : JIM_ERR;
|
||||
}
|
||||
|
||||
static int zylinjtag_Jim_Command_threads(Jim_Interp *interp, int argc,
|
||||
Jim_Obj * const *argv)
|
||||
{
|
||||
cyg_handle_t thread = 0;
|
||||
cyg_uint16 id = 0;
|
||||
Jim_Obj *threads = Jim_NewListObj(interp, NULL, 0);
|
||||
|
||||
/* Loop over the threads, and generate a table row for
|
||||
* each.
|
||||
*/
|
||||
while (cyg_thread_get_next(&thread, &id))
|
||||
{
|
||||
Jim_Obj *threadObj = Jim_NewListObj(interp, NULL, 0);
|
||||
|
||||
cyg_thread_info info;
|
||||
char *state_string;
|
||||
|
||||
cyg_thread_get_info(thread, id, &info);
|
||||
|
||||
if (info.name == NULL)
|
||||
info.name = "<no name>";
|
||||
|
||||
Jim_ListAppendElement(interp, threadObj, Jim_NewStringObj(interp,
|
||||
info.name, strlen(info.name)));
|
||||
|
||||
/* Translate the state into a string.
|
||||
*/
|
||||
if (info.state == 0)
|
||||
state_string = "RUN";
|
||||
else if (info.state & 0x04)
|
||||
state_string = "SUSP";
|
||||
else
|
||||
switch (info.state & 0x1b)
|
||||
{
|
||||
case 0x01:
|
||||
state_string = "SLEEP";
|
||||
break;
|
||||
case 0x02:
|
||||
state_string = "CNTSLEEP";
|
||||
break;
|
||||
case 0x08:
|
||||
state_string = "CREATE";
|
||||
break;
|
||||
case 0x10:
|
||||
state_string = "EXIT";
|
||||
break;
|
||||
default:
|
||||
state_string = "????";
|
||||
break;
|
||||
}
|
||||
|
||||
Jim_ListAppendElement(interp, threadObj, Jim_NewStringObj(interp,
|
||||
state_string, strlen(state_string)));
|
||||
|
||||
Jim_ListAppendElement (interp, threadObj, Jim_NewIntObj(interp, id));
|
||||
Jim_ListAppendElement(interp, threadObj, Jim_NewIntObj(interp, info.set_pri));
|
||||
Jim_ListAppendElement(interp, threadObj, Jim_NewIntObj(interp, info.cur_pri));
|
||||
|
||||
Jim_ListAppendElement(interp, threads, threadObj);
|
||||
}
|
||||
Jim_SetResult( interp, threads);
|
||||
|
||||
return JIM_OK;
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
zylinjtag_Jim_Command_ls(Jim_Interp *interp,
|
||||
int argc,
|
||||
|
@ -1245,6 +1311,7 @@ static void zylinjtag_startNetwork()
|
|||
Jim_CreateCommand(httpstate.jim_interp, "zy1000_flash", zylinjtag_Jim_Command_flash, NULL, NULL);
|
||||
Jim_CreateCommand(httpstate.jim_interp, "poke", zylinjtag_Jim_Command_poke, NULL, NULL);
|
||||
Jim_CreateCommand(httpstate.jim_interp, "ls", zylinjtag_Jim_Command_ls, NULL, NULL);
|
||||
Jim_CreateCommand(httpstate.jim_interp, "threads", zylinjtag_Jim_Command_threads, NULL, NULL);
|
||||
Jim_CreateCommand(httpstate.jim_interp, "getmem", zylinjtag_Jim_Command_getmem, NULL, NULL);
|
||||
Jim_CreateCommand(httpstate.jim_interp, "mac", zylinjtag_Jim_Command_mac, NULL, NULL);
|
||||
Jim_CreateCommand(httpstate.jim_interp, "ip", zylinjtag_Jim_Command_ip, NULL, NULL);
|
||||
|
|
Loading…
Reference in New Issue