forked from Imagelibrary/rtems
Update from Tony Bennett (tbennett@divnc.com)
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* @(#)dname.c 1.3 - 95/07/31
|
* @(#)dname.c 1.5 - 96/01/03
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* RTEMS monitor driver names support.
|
* RTEMS monitor driver names support.
|
||||||
@@ -54,7 +54,7 @@ rtems_monitor_dname_next(
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
int n = rtems_get_index(*next_id);
|
int n = rtems_get_index(*next_id);
|
||||||
rtems_driver_name_t *table = object_information;
|
rtems_driver_name_t *table = _IO_Driver_name_table;
|
||||||
rtems_driver_name_t *np = 0;
|
rtems_driver_name_t *np = 0;
|
||||||
|
|
||||||
/* XXX should we be using _IO_Number_of_devices */
|
/* XXX should we be using _IO_Number_of_devices */
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* @(#)itask.c 1.4 - 95/08/02
|
* @(#)itask.c 1.6 - 96/01/03
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* RTEMS Monitor init task support
|
* RTEMS Monitor init task support
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* @(#)manager.c 1.2 - 95/07/31
|
* @(#)manager.c 1.4 - 96/01/03
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* RTEMS Monitor "manager" support.
|
* RTEMS Monitor "manager" support.
|
||||||
* Used to traverse object (chain) lists and print them out.
|
* Used to traverse object (chain) lists and print them out.
|
||||||
|
*
|
||||||
* $Id$
|
* $Id$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -43,7 +44,7 @@ rtems_monitor_manager_next(
|
|||||||
{
|
{
|
||||||
copy = (rtems_monitor_generic_t *) canonical;
|
copy = (rtems_monitor_generic_t *) canonical;
|
||||||
copy->id = object->id;
|
copy->id = object->id;
|
||||||
copy->name = table->name_table[rtems_get_index(copy->id)];
|
_Objects_Copy_name_raw(object->name, ©->name, sizeof(copy->name));
|
||||||
}
|
}
|
||||||
|
|
||||||
done:
|
done:
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* @(#)monitor.c 1.22 - 95/11/02
|
* @(#)monitor.c 1.23 - 96/01/03
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
@@ -80,6 +80,7 @@ rtems_monitor_command_entry_t rtems_monitor_commands[] = {
|
|||||||
" queue -- show message queue information\n"
|
" queue -- show message queue information\n"
|
||||||
" extension -- user extensions\n"
|
" extension -- user extensions\n"
|
||||||
" driver -- show information about named drivers\n"
|
" driver -- show information about named drivers\n"
|
||||||
|
" dname -- show information about named drivers\n"
|
||||||
" object -- generic object information\n"
|
" object -- generic object information\n"
|
||||||
" node -- specify default node for commands that take id's\n"
|
" node -- specify default node for commands that take id's\n"
|
||||||
#ifdef CPU_INVOKE_DEBUGGER
|
#ifdef CPU_INVOKE_DEBUGGER
|
||||||
@@ -95,21 +96,21 @@ rtems_monitor_command_entry_t rtems_monitor_commands[] = {
|
|||||||
" Show the system configuration.\n",
|
" Show the system configuration.\n",
|
||||||
0,
|
0,
|
||||||
rtems_monitor_object_cmd,
|
rtems_monitor_object_cmd,
|
||||||
RTEMS_OBJECT_CONFIG,
|
RTEMS_MONITOR_OBJECT_CONFIG,
|
||||||
},
|
},
|
||||||
{ "itask",
|
{ "itask",
|
||||||
"itask\n"
|
"itask\n"
|
||||||
" List init tasks for the system\n",
|
" List init tasks for the system\n",
|
||||||
0,
|
0,
|
||||||
rtems_monitor_object_cmd,
|
rtems_monitor_object_cmd,
|
||||||
RTEMS_OBJECT_INIT_TASK,
|
RTEMS_MONITOR_OBJECT_INIT_TASK,
|
||||||
},
|
},
|
||||||
{ "mpci",
|
{ "mpci",
|
||||||
"mpci\n"
|
"mpci\n"
|
||||||
" Show the MPCI system configuration, if configured.\n",
|
" Show the MPCI system configuration, if configured.\n",
|
||||||
0,
|
0,
|
||||||
rtems_monitor_object_cmd,
|
rtems_monitor_object_cmd,
|
||||||
RTEMS_OBJECT_MPCI,
|
RTEMS_MONITOR_OBJECT_MPCI,
|
||||||
},
|
},
|
||||||
{ "pause",
|
{ "pause",
|
||||||
"pause [ticks]\n"
|
"pause [ticks]\n"
|
||||||
@@ -155,7 +156,7 @@ rtems_monitor_command_entry_t rtems_monitor_commands[] = {
|
|||||||
" Default is to display information about all extensions on this node\n",
|
" Default is to display information about all extensions on this node\n",
|
||||||
0,
|
0,
|
||||||
rtems_monitor_object_cmd,
|
rtems_monitor_object_cmd,
|
||||||
RTEMS_OBJECT_EXTENSION,
|
RTEMS_MONITOR_OBJECT_EXTENSION,
|
||||||
},
|
},
|
||||||
{ "task",
|
{ "task",
|
||||||
"task [id [id ...] ]\n"
|
"task [id [id ...] ]\n"
|
||||||
@@ -163,7 +164,7 @@ rtems_monitor_command_entry_t rtems_monitor_commands[] = {
|
|||||||
" Default is to display information about all tasks on this node\n",
|
" Default is to display information about all tasks on this node\n",
|
||||||
0,
|
0,
|
||||||
rtems_monitor_object_cmd,
|
rtems_monitor_object_cmd,
|
||||||
RTEMS_OBJECT_TASK,
|
RTEMS_MONITOR_OBJECT_TASK,
|
||||||
},
|
},
|
||||||
{ "queue",
|
{ "queue",
|
||||||
"queue [id [id ... ] ]\n"
|
"queue [id [id ... ] ]\n"
|
||||||
@@ -171,7 +172,7 @@ rtems_monitor_command_entry_t rtems_monitor_commands[] = {
|
|||||||
" Default is to display information about all queues on this node\n",
|
" Default is to display information about all queues on this node\n",
|
||||||
0,
|
0,
|
||||||
rtems_monitor_object_cmd,
|
rtems_monitor_object_cmd,
|
||||||
RTEMS_OBJECT_QUEUE,
|
RTEMS_MONITOR_OBJECT_QUEUE,
|
||||||
},
|
},
|
||||||
{ "object",
|
{ "object",
|
||||||
"object [id [id ...] ]\n"
|
"object [id [id ...] ]\n"
|
||||||
@@ -180,21 +181,21 @@ rtems_monitor_command_entry_t rtems_monitor_commands[] = {
|
|||||||
" (which may normally be defaulted)\n",
|
" (which may normally be defaulted)\n",
|
||||||
0,
|
0,
|
||||||
rtems_monitor_object_cmd,
|
rtems_monitor_object_cmd,
|
||||||
RTEMS_OBJECT_INVALID,
|
RTEMS_MONITOR_OBJECT_INVALID,
|
||||||
},
|
},
|
||||||
{ "driver",
|
{ "driver",
|
||||||
"driver [ major [ major ... ] ]\n"
|
"driver [ major [ major ... ] ]\n"
|
||||||
" Display the RTEMS device driver table.\n",
|
" Display the RTEMS device driver table.\n",
|
||||||
0,
|
0,
|
||||||
rtems_monitor_object_cmd,
|
rtems_monitor_object_cmd,
|
||||||
RTEMS_OBJECT_DRIVER,
|
RTEMS_MONITOR_OBJECT_DRIVER,
|
||||||
},
|
},
|
||||||
{ "dname",
|
{ "dname",
|
||||||
"dname\n"
|
"dname\n"
|
||||||
" Displays information about named drivers.\n",
|
" Displays information about named drivers.\n",
|
||||||
0,
|
0,
|
||||||
rtems_monitor_object_cmd,
|
rtems_monitor_object_cmd,
|
||||||
RTEMS_OBJECT_DNAME,
|
RTEMS_MONITOR_OBJECT_DNAME,
|
||||||
},
|
},
|
||||||
{ "exit",
|
{ "exit",
|
||||||
"exit [status]\n"
|
"exit [status]\n"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* @(#)object.c 1.7 - 95/08/02
|
* @(#)object.c 1.9 - 96/01/03
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* RTEMS Monitor "object" support.
|
* RTEMS Monitor "object" support.
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
|
|
||||||
rtems_monitor_object_info_t rtems_monitor_object_info[] =
|
rtems_monitor_object_info_t rtems_monitor_object_info[] =
|
||||||
{
|
{
|
||||||
{ RTEMS_OBJECT_CONFIG,
|
{ RTEMS_MONITOR_OBJECT_CONFIG,
|
||||||
(void *) 0,
|
(void *) 0,
|
||||||
sizeof(rtems_monitor_config_t),
|
sizeof(rtems_monitor_config_t),
|
||||||
(rtems_monitor_object_next_fn) rtems_monitor_config_next,
|
(rtems_monitor_object_next_fn) rtems_monitor_config_next,
|
||||||
@@ -43,7 +43,7 @@ rtems_monitor_object_info_t rtems_monitor_object_info[] =
|
|||||||
(rtems_monitor_object_dump_header_fn) rtems_monitor_config_dump_header,
|
(rtems_monitor_object_dump_header_fn) rtems_monitor_config_dump_header,
|
||||||
(rtems_monitor_object_dump_fn) rtems_monitor_config_dump,
|
(rtems_monitor_object_dump_fn) rtems_monitor_config_dump,
|
||||||
},
|
},
|
||||||
{ RTEMS_OBJECT_MPCI,
|
{ RTEMS_MONITOR_OBJECT_MPCI,
|
||||||
(void *) 0,
|
(void *) 0,
|
||||||
sizeof(rtems_monitor_mpci_t),
|
sizeof(rtems_monitor_mpci_t),
|
||||||
(rtems_monitor_object_next_fn) rtems_monitor_mpci_next,
|
(rtems_monitor_object_next_fn) rtems_monitor_mpci_next,
|
||||||
@@ -51,7 +51,7 @@ rtems_monitor_object_info_t rtems_monitor_object_info[] =
|
|||||||
(rtems_monitor_object_dump_header_fn) rtems_monitor_mpci_dump_header,
|
(rtems_monitor_object_dump_header_fn) rtems_monitor_mpci_dump_header,
|
||||||
(rtems_monitor_object_dump_fn) rtems_monitor_mpci_dump,
|
(rtems_monitor_object_dump_fn) rtems_monitor_mpci_dump,
|
||||||
},
|
},
|
||||||
{ RTEMS_OBJECT_INIT_TASK,
|
{ RTEMS_MONITOR_OBJECT_INIT_TASK,
|
||||||
(void *) 0,
|
(void *) 0,
|
||||||
sizeof(rtems_monitor_init_task_t),
|
sizeof(rtems_monitor_init_task_t),
|
||||||
(rtems_monitor_object_next_fn) rtems_monitor_init_task_next,
|
(rtems_monitor_object_next_fn) rtems_monitor_init_task_next,
|
||||||
@@ -59,7 +59,7 @@ rtems_monitor_object_info_t rtems_monitor_object_info[] =
|
|||||||
(rtems_monitor_object_dump_header_fn) rtems_monitor_init_task_dump_header,
|
(rtems_monitor_object_dump_header_fn) rtems_monitor_init_task_dump_header,
|
||||||
(rtems_monitor_object_dump_fn) rtems_monitor_init_task_dump,
|
(rtems_monitor_object_dump_fn) rtems_monitor_init_task_dump,
|
||||||
},
|
},
|
||||||
{ RTEMS_OBJECT_TASK,
|
{ RTEMS_MONITOR_OBJECT_TASK,
|
||||||
(void *) &_RTEMS_tasks_Information,
|
(void *) &_RTEMS_tasks_Information,
|
||||||
sizeof(rtems_monitor_task_t),
|
sizeof(rtems_monitor_task_t),
|
||||||
(rtems_monitor_object_next_fn) rtems_monitor_manager_next,
|
(rtems_monitor_object_next_fn) rtems_monitor_manager_next,
|
||||||
@@ -67,7 +67,7 @@ rtems_monitor_object_info_t rtems_monitor_object_info[] =
|
|||||||
(rtems_monitor_object_dump_header_fn) rtems_monitor_task_dump_header,
|
(rtems_monitor_object_dump_header_fn) rtems_monitor_task_dump_header,
|
||||||
(rtems_monitor_object_dump_fn) rtems_monitor_task_dump,
|
(rtems_monitor_object_dump_fn) rtems_monitor_task_dump,
|
||||||
},
|
},
|
||||||
{ RTEMS_OBJECT_QUEUE,
|
{ RTEMS_MONITOR_OBJECT_QUEUE,
|
||||||
(void *) &_Message_queue_Information,
|
(void *) &_Message_queue_Information,
|
||||||
sizeof(rtems_monitor_queue_t),
|
sizeof(rtems_monitor_queue_t),
|
||||||
(rtems_monitor_object_next_fn) rtems_monitor_manager_next,
|
(rtems_monitor_object_next_fn) rtems_monitor_manager_next,
|
||||||
@@ -75,7 +75,7 @@ rtems_monitor_object_info_t rtems_monitor_object_info[] =
|
|||||||
(rtems_monitor_object_dump_header_fn) rtems_monitor_queue_dump_header,
|
(rtems_monitor_object_dump_header_fn) rtems_monitor_queue_dump_header,
|
||||||
(rtems_monitor_object_dump_fn) rtems_monitor_queue_dump,
|
(rtems_monitor_object_dump_fn) rtems_monitor_queue_dump,
|
||||||
},
|
},
|
||||||
{ RTEMS_OBJECT_EXTENSION,
|
{ RTEMS_MONITOR_OBJECT_EXTENSION,
|
||||||
(void *) &_Extension_Information,
|
(void *) &_Extension_Information,
|
||||||
sizeof(rtems_monitor_extension_t),
|
sizeof(rtems_monitor_extension_t),
|
||||||
(rtems_monitor_object_next_fn) rtems_monitor_manager_next,
|
(rtems_monitor_object_next_fn) rtems_monitor_manager_next,
|
||||||
@@ -83,7 +83,7 @@ rtems_monitor_object_info_t rtems_monitor_object_info[] =
|
|||||||
(rtems_monitor_object_dump_header_fn) rtems_monitor_extension_dump_header,
|
(rtems_monitor_object_dump_header_fn) rtems_monitor_extension_dump_header,
|
||||||
(rtems_monitor_object_dump_fn) rtems_monitor_extension_dump,
|
(rtems_monitor_object_dump_fn) rtems_monitor_extension_dump,
|
||||||
},
|
},
|
||||||
{ RTEMS_OBJECT_DRIVER,
|
{ RTEMS_MONITOR_OBJECT_DRIVER,
|
||||||
(void *) 0,
|
(void *) 0,
|
||||||
sizeof(rtems_monitor_driver_t),
|
sizeof(rtems_monitor_driver_t),
|
||||||
(rtems_monitor_object_next_fn) rtems_monitor_driver_next,
|
(rtems_monitor_object_next_fn) rtems_monitor_driver_next,
|
||||||
@@ -91,7 +91,7 @@ rtems_monitor_object_info_t rtems_monitor_object_info[] =
|
|||||||
(rtems_monitor_object_dump_header_fn) rtems_monitor_driver_dump_header,
|
(rtems_monitor_object_dump_header_fn) rtems_monitor_driver_dump_header,
|
||||||
(rtems_monitor_object_dump_fn) rtems_monitor_driver_dump,
|
(rtems_monitor_object_dump_fn) rtems_monitor_driver_dump,
|
||||||
},
|
},
|
||||||
{ RTEMS_OBJECT_DNAME,
|
{ RTEMS_MONITOR_OBJECT_DNAME,
|
||||||
/* XXX now that the driver name table is allocated from the */
|
/* XXX now that the driver name table is allocated from the */
|
||||||
/* XXX Workspace, this does not work */
|
/* XXX Workspace, this does not work */
|
||||||
(void *) 0,
|
(void *) 0,
|
||||||
@@ -113,7 +113,7 @@ rtems_id
|
|||||||
rtems_monitor_id_fixup(
|
rtems_monitor_id_fixup(
|
||||||
rtems_id id,
|
rtems_id id,
|
||||||
unsigned32 default_node,
|
unsigned32 default_node,
|
||||||
rtems_object_type_t type
|
rtems_monitor_object_type_t type
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
unsigned32 node;
|
unsigned32 node;
|
||||||
@@ -121,19 +121,10 @@ rtems_monitor_id_fixup(
|
|||||||
node = rtems_get_node(id);
|
node = rtems_get_node(id);
|
||||||
if (node == 0)
|
if (node == 0)
|
||||||
{
|
{
|
||||||
#if 0
|
|
||||||
/* XXX Uncomment this when types are added to id's */
|
|
||||||
if (rtems_get_class(id) != OBJECTS_NO_CLASS)
|
if (rtems_get_class(id) != OBJECTS_NO_CLASS)
|
||||||
type = rtems_get_class(id);
|
type = rtems_get_class(id);
|
||||||
|
|
||||||
id = _Objects_Build_id(type, default_node, rtems_get_index(id));
|
id = _Objects_Build_id(type, default_node, rtems_get_index(id));
|
||||||
#else
|
|
||||||
#warning "TONY... FIX ME!!!!!"
|
|
||||||
#if defined(hppa1_1)
|
|
||||||
#warning "TONY... I SAID TO FIX ME!!!!! <HAHAHAHAHA>"
|
|
||||||
#endif
|
|
||||||
id = _Objects_Build_id(0, default_node, rtems_get_index(id));
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
@@ -141,7 +132,7 @@ rtems_monitor_id_fixup(
|
|||||||
|
|
||||||
rtems_monitor_object_info_t *
|
rtems_monitor_object_info_t *
|
||||||
rtems_monitor_object_lookup(
|
rtems_monitor_object_lookup(
|
||||||
rtems_object_type_t type
|
rtems_monitor_object_type_t type
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
rtems_monitor_object_info_t *p;
|
rtems_monitor_object_info_t *p;
|
||||||
@@ -157,7 +148,7 @@ rtems_monitor_object_lookup(
|
|||||||
|
|
||||||
rtems_id
|
rtems_id
|
||||||
rtems_monitor_object_canonical_next_remote(
|
rtems_monitor_object_canonical_next_remote(
|
||||||
rtems_object_type_t type,
|
rtems_monitor_object_type_t type,
|
||||||
rtems_id id,
|
rtems_id id,
|
||||||
void *canonical
|
void *canonical
|
||||||
)
|
)
|
||||||
@@ -233,7 +224,7 @@ rtems_monitor_object_canonical_next(
|
|||||||
|
|
||||||
rtems_id
|
rtems_id
|
||||||
rtems_monitor_object_canonical_get(
|
rtems_monitor_object_canonical_get(
|
||||||
rtems_object_type_t type,
|
rtems_monitor_object_type_t type,
|
||||||
rtems_id id,
|
rtems_id id,
|
||||||
void *canonical,
|
void *canonical,
|
||||||
unsigned32 *size_p
|
unsigned32 *size_p
|
||||||
@@ -299,7 +290,7 @@ rtems_monitor_object_dump_all(
|
|||||||
rtems_id next_id;
|
rtems_id next_id;
|
||||||
rtems_monitor_union_t canonical;
|
rtems_monitor_union_t canonical;
|
||||||
|
|
||||||
next_id = RTEMS_OBJECT_ID_INITIAL(rtems_monitor_default_node);
|
next_id = RTEMS_OBJECT_ID_INITIAL(info->type, rtems_monitor_default_node);
|
||||||
|
|
||||||
while ((next_id = rtems_monitor_object_canonical_next(
|
while ((next_id = rtems_monitor_object_canonical_next(
|
||||||
info,
|
info,
|
||||||
@@ -320,14 +311,14 @@ rtems_monitor_object_cmd(
|
|||||||
{
|
{
|
||||||
int arg;
|
int arg;
|
||||||
rtems_monitor_object_info_t *info = 0;
|
rtems_monitor_object_info_t *info = 0;
|
||||||
rtems_object_type_t type = (rtems_object_type_t) command_arg;
|
rtems_monitor_object_type_t type = (rtems_monitor_object_type_t) command_arg;
|
||||||
|
|
||||||
/* what is the default type? */
|
/* what is the default type? */
|
||||||
type = (rtems_object_type_t) command_arg;
|
type = (rtems_monitor_object_type_t) command_arg;
|
||||||
|
|
||||||
if (argc == 1)
|
if (argc == 1)
|
||||||
{
|
{
|
||||||
if (type == RTEMS_OBJECT_INVALID)
|
if (type == RTEMS_MONITOR_OBJECT_INVALID)
|
||||||
{
|
{
|
||||||
printf("A type must be specified to \"dump all\"\n");
|
printf("A type must be specified to \"dump all\"\n");
|
||||||
goto done;
|
goto done;
|
||||||
@@ -344,16 +335,15 @@ rtems_monitor_object_cmd(
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
unsigned32 default_node = rtems_monitor_default_node;
|
unsigned32 default_node = rtems_monitor_default_node;
|
||||||
rtems_object_type_t last_type = RTEMS_OBJECT_INVALID;
|
rtems_monitor_object_type_t last_type = RTEMS_MONITOR_OBJECT_INVALID;
|
||||||
rtems_id id;
|
rtems_id id;
|
||||||
|
|
||||||
for (arg=1; argv[arg]; arg++)
|
for (arg=1; argv[arg]; arg++)
|
||||||
{
|
{
|
||||||
id = (rtems_id) strtoul(argv[arg], 0, 0);
|
id = (rtems_id) strtoul(argv[arg], 0, 0);
|
||||||
id = rtems_monitor_id_fixup(id, default_node, type);
|
id = rtems_monitor_id_fixup(id, default_node, type);
|
||||||
#if 0
|
type = (rtems_monitor_object_type_t) rtems_get_class(id);
|
||||||
type = rtems_get_type(id);
|
|
||||||
#endif
|
|
||||||
/*
|
/*
|
||||||
* Allow the item type to change in the middle
|
* Allow the item type to change in the middle
|
||||||
* of the command. If the type changes, then
|
* of the command. If the type changes, then
|
||||||
@@ -363,15 +353,18 @@ rtems_monitor_object_cmd(
|
|||||||
{
|
{
|
||||||
info = rtems_monitor_object_lookup(type);
|
info = rtems_monitor_object_lookup(type);
|
||||||
if (info == 0)
|
if (info == 0)
|
||||||
{
|
goto not_found;
|
||||||
not_found: printf("Invalid or unsupported type %d\n", type);
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (info->dump_header)
|
if (info->dump_header)
|
||||||
info->dump_header(verbose);
|
info->dump_header(verbose);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (info == 0)
|
||||||
|
{
|
||||||
|
not_found: printf("Invalid or unsupported type %d\n", type);
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
rtems_monitor_object_dump_1(info, id, verbose);
|
rtems_monitor_object_dump_1(info, id, verbose);
|
||||||
|
|
||||||
default_node = rtems_get_node(id);
|
default_node = rtems_get_node(id);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* @(#)server.c 1.3 - 95/08/02
|
* @(#)server.c 1.5 - 96/01/03
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* RTEMS monitor server (handles requests for info from RTEMS monitors
|
* RTEMS monitor server (handles requests for info from RTEMS monitors
|
||||||
@@ -144,11 +144,11 @@ rtems_monitor_server_task(
|
|||||||
{
|
{
|
||||||
case RTEMS_MONITOR_SERVER_CANONICAL:
|
case RTEMS_MONITOR_SERVER_CANONICAL:
|
||||||
{
|
{
|
||||||
rtems_object_type_t object_type;
|
rtems_monitor_object_type_t object_type;
|
||||||
rtems_id id;
|
rtems_id id;
|
||||||
rtems_id next_id;
|
rtems_id next_id;
|
||||||
|
|
||||||
object_type = (rtems_object_type_t) request.argument0;
|
object_type = (rtems_monitor_object_type_t) request.argument0;
|
||||||
id = (rtems_id) request.argument1;
|
id = (rtems_id) request.argument1;
|
||||||
next_id = rtems_monitor_object_canonical_get(object_type,
|
next_id = rtems_monitor_object_canonical_get(object_type,
|
||||||
id,
|
id,
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
/*
|
/*
|
||||||
* @(#)monitor.h 1.20 - 95/12/12
|
* @(#)monitor.h 1.21 - 96/01/03
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* $Id$
|
* monitor.h,v 1.3 1995/09/29 17:19:02 joel Exp
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -29,21 +29,25 @@ extern "C" {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
RTEMS_OBJECT_INVALID = 0,
|
RTEMS_MONITOR_OBJECT_INVALID = OBJECTS_NO_CLASS,
|
||||||
RTEMS_OBJECT_TASK = 1,
|
RTEMS_MONITOR_OBJECT_TASK = OBJECTS_RTEMS_TASKS,
|
||||||
RTEMS_OBJECT_EXTENSION = 2,
|
RTEMS_MONITOR_OBJECT_EXTENSION = OBJECTS_RTEMS_EXTENSIONS,
|
||||||
RTEMS_OBJECT_QUEUE = 3,
|
RTEMS_MONITOR_OBJECT_QUEUE = OBJECTS_RTEMS_MESSAGE_QUEUES,
|
||||||
RTEMS_OBJECT_SEMAPHORE = 4,
|
RTEMS_MONITOR_OBJECT_SEMAPHORE = OBJECTS_RTEMS_SEMAPHORES,
|
||||||
RTEMS_OBJECT_DRIVER = 5,
|
RTEMS_MONITOR_OBJECT_PARTITION = OBJECTS_RTEMS_PARTITIONS,
|
||||||
RTEMS_OBJECT_DNAME = 6,
|
RTEMS_MONITOR_OBJECT_REGION = OBJECTS_RTEMS_REGIONS,
|
||||||
RTEMS_OBJECT_CONFIG = 7,
|
RTEMS_MONITOR_OBJECT_PORT = OBJECTS_RTEMS_PORTS,
|
||||||
RTEMS_OBJECT_INIT_TASK = 8,
|
|
||||||
RTEMS_OBJECT_MPCI = 9,
|
/* following monitor objects are not known to RTEMS, but
|
||||||
RTEMS_OBJECT_PARTITION = 10,
|
* we like to have "types" for them anyway */
|
||||||
RTEMS_OBJECT_REGION = 11,
|
|
||||||
RTEMS_OBJECT_PORT = 12,
|
RTEMS_MONITOR_OBJECT_DRIVER = OBJECTS_CLASSES_LAST+1,
|
||||||
RTEMS_OBJECT_SYMBOL = 13,
|
RTEMS_MONITOR_OBJECT_DNAME,
|
||||||
} rtems_object_type_t;
|
RTEMS_MONITOR_OBJECT_CONFIG,
|
||||||
|
RTEMS_MONITOR_OBJECT_INIT_TASK,
|
||||||
|
RTEMS_MONITOR_OBJECT_MPCI,
|
||||||
|
RTEMS_MONITOR_OBJECT_SYMBOL,
|
||||||
|
} rtems_monitor_object_type_t;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* rtems_monitor_init() flags
|
* rtems_monitor_init() flags
|
||||||
@@ -302,7 +306,7 @@ typedef void (*rtems_monitor_object_dump_header_fn)(boolean);
|
|||||||
typedef void (*rtems_monitor_object_dump_fn)(void *, boolean);
|
typedef void (*rtems_monitor_object_dump_fn)(void *, boolean);
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
rtems_object_type_t type;
|
rtems_monitor_object_type_t type;
|
||||||
void *object_information;
|
void *object_information;
|
||||||
int size; /* of canonical object */
|
int size; /* of canonical object */
|
||||||
rtems_monitor_object_next_fn next;
|
rtems_monitor_object_next_fn next;
|
||||||
@@ -354,8 +358,8 @@ unsigned32 rtems_monitor_dump_events(rtems_event_set events);
|
|||||||
unsigned32 rtems_monitor_dump_notepad(unsigned32 *notepad);
|
unsigned32 rtems_monitor_dump_notepad(unsigned32 *notepad);
|
||||||
|
|
||||||
/* object.c */
|
/* object.c */
|
||||||
rtems_id rtems_monitor_id_fixup(rtems_id, unsigned32, rtems_object_type_t);
|
rtems_id rtems_monitor_id_fixup(rtems_id, unsigned32, rtems_monitor_object_type_t);
|
||||||
rtems_id rtems_monitor_object_canonical_get(rtems_object_type_t, rtems_id, void *, unsigned32 *size_p);
|
rtems_id rtems_monitor_object_canonical_get(rtems_monitor_object_type_t, rtems_id, void *, unsigned32 *size_p);
|
||||||
rtems_id rtems_monitor_object_canonical_next(rtems_monitor_object_info_t *, rtems_id, void *);
|
rtems_id rtems_monitor_object_canonical_next(rtems_monitor_object_info_t *, rtems_id, void *);
|
||||||
void *rtems_monitor_object_next(void *, void *, rtems_id, rtems_id *);
|
void *rtems_monitor_object_next(void *, void *, rtems_id, rtems_id *);
|
||||||
rtems_id rtems_monitor_object_canonical(rtems_id, void *);
|
rtems_id rtems_monitor_object_canonical(rtems_id, void *);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* @(#)dname.c 1.3 - 95/07/31
|
* @(#)dname.c 1.5 - 96/01/03
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* RTEMS monitor driver names support.
|
* RTEMS monitor driver names support.
|
||||||
@@ -54,7 +54,7 @@ rtems_monitor_dname_next(
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
int n = rtems_get_index(*next_id);
|
int n = rtems_get_index(*next_id);
|
||||||
rtems_driver_name_t *table = object_information;
|
rtems_driver_name_t *table = _IO_Driver_name_table;
|
||||||
rtems_driver_name_t *np = 0;
|
rtems_driver_name_t *np = 0;
|
||||||
|
|
||||||
/* XXX should we be using _IO_Number_of_devices */
|
/* XXX should we be using _IO_Number_of_devices */
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* @(#)itask.c 1.4 - 95/08/02
|
* @(#)itask.c 1.6 - 96/01/03
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* RTEMS Monitor init task support
|
* RTEMS Monitor init task support
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* @(#)manager.c 1.2 - 95/07/31
|
* @(#)manager.c 1.4 - 96/01/03
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* RTEMS Monitor "manager" support.
|
* RTEMS Monitor "manager" support.
|
||||||
* Used to traverse object (chain) lists and print them out.
|
* Used to traverse object (chain) lists and print them out.
|
||||||
|
*
|
||||||
* $Id$
|
* $Id$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -43,7 +44,7 @@ rtems_monitor_manager_next(
|
|||||||
{
|
{
|
||||||
copy = (rtems_monitor_generic_t *) canonical;
|
copy = (rtems_monitor_generic_t *) canonical;
|
||||||
copy->id = object->id;
|
copy->id = object->id;
|
||||||
copy->name = table->name_table[rtems_get_index(copy->id)];
|
_Objects_Copy_name_raw(object->name, ©->name, sizeof(copy->name));
|
||||||
}
|
}
|
||||||
|
|
||||||
done:
|
done:
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* @(#)monitor.c 1.22 - 95/11/02
|
* @(#)monitor.c 1.23 - 96/01/03
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
@@ -80,6 +80,7 @@ rtems_monitor_command_entry_t rtems_monitor_commands[] = {
|
|||||||
" queue -- show message queue information\n"
|
" queue -- show message queue information\n"
|
||||||
" extension -- user extensions\n"
|
" extension -- user extensions\n"
|
||||||
" driver -- show information about named drivers\n"
|
" driver -- show information about named drivers\n"
|
||||||
|
" dname -- show information about named drivers\n"
|
||||||
" object -- generic object information\n"
|
" object -- generic object information\n"
|
||||||
" node -- specify default node for commands that take id's\n"
|
" node -- specify default node for commands that take id's\n"
|
||||||
#ifdef CPU_INVOKE_DEBUGGER
|
#ifdef CPU_INVOKE_DEBUGGER
|
||||||
@@ -95,21 +96,21 @@ rtems_monitor_command_entry_t rtems_monitor_commands[] = {
|
|||||||
" Show the system configuration.\n",
|
" Show the system configuration.\n",
|
||||||
0,
|
0,
|
||||||
rtems_monitor_object_cmd,
|
rtems_monitor_object_cmd,
|
||||||
RTEMS_OBJECT_CONFIG,
|
RTEMS_MONITOR_OBJECT_CONFIG,
|
||||||
},
|
},
|
||||||
{ "itask",
|
{ "itask",
|
||||||
"itask\n"
|
"itask\n"
|
||||||
" List init tasks for the system\n",
|
" List init tasks for the system\n",
|
||||||
0,
|
0,
|
||||||
rtems_monitor_object_cmd,
|
rtems_monitor_object_cmd,
|
||||||
RTEMS_OBJECT_INIT_TASK,
|
RTEMS_MONITOR_OBJECT_INIT_TASK,
|
||||||
},
|
},
|
||||||
{ "mpci",
|
{ "mpci",
|
||||||
"mpci\n"
|
"mpci\n"
|
||||||
" Show the MPCI system configuration, if configured.\n",
|
" Show the MPCI system configuration, if configured.\n",
|
||||||
0,
|
0,
|
||||||
rtems_monitor_object_cmd,
|
rtems_monitor_object_cmd,
|
||||||
RTEMS_OBJECT_MPCI,
|
RTEMS_MONITOR_OBJECT_MPCI,
|
||||||
},
|
},
|
||||||
{ "pause",
|
{ "pause",
|
||||||
"pause [ticks]\n"
|
"pause [ticks]\n"
|
||||||
@@ -155,7 +156,7 @@ rtems_monitor_command_entry_t rtems_monitor_commands[] = {
|
|||||||
" Default is to display information about all extensions on this node\n",
|
" Default is to display information about all extensions on this node\n",
|
||||||
0,
|
0,
|
||||||
rtems_monitor_object_cmd,
|
rtems_monitor_object_cmd,
|
||||||
RTEMS_OBJECT_EXTENSION,
|
RTEMS_MONITOR_OBJECT_EXTENSION,
|
||||||
},
|
},
|
||||||
{ "task",
|
{ "task",
|
||||||
"task [id [id ...] ]\n"
|
"task [id [id ...] ]\n"
|
||||||
@@ -163,7 +164,7 @@ rtems_monitor_command_entry_t rtems_monitor_commands[] = {
|
|||||||
" Default is to display information about all tasks on this node\n",
|
" Default is to display information about all tasks on this node\n",
|
||||||
0,
|
0,
|
||||||
rtems_monitor_object_cmd,
|
rtems_monitor_object_cmd,
|
||||||
RTEMS_OBJECT_TASK,
|
RTEMS_MONITOR_OBJECT_TASK,
|
||||||
},
|
},
|
||||||
{ "queue",
|
{ "queue",
|
||||||
"queue [id [id ... ] ]\n"
|
"queue [id [id ... ] ]\n"
|
||||||
@@ -171,7 +172,7 @@ rtems_monitor_command_entry_t rtems_monitor_commands[] = {
|
|||||||
" Default is to display information about all queues on this node\n",
|
" Default is to display information about all queues on this node\n",
|
||||||
0,
|
0,
|
||||||
rtems_monitor_object_cmd,
|
rtems_monitor_object_cmd,
|
||||||
RTEMS_OBJECT_QUEUE,
|
RTEMS_MONITOR_OBJECT_QUEUE,
|
||||||
},
|
},
|
||||||
{ "object",
|
{ "object",
|
||||||
"object [id [id ...] ]\n"
|
"object [id [id ...] ]\n"
|
||||||
@@ -180,21 +181,21 @@ rtems_monitor_command_entry_t rtems_monitor_commands[] = {
|
|||||||
" (which may normally be defaulted)\n",
|
" (which may normally be defaulted)\n",
|
||||||
0,
|
0,
|
||||||
rtems_monitor_object_cmd,
|
rtems_monitor_object_cmd,
|
||||||
RTEMS_OBJECT_INVALID,
|
RTEMS_MONITOR_OBJECT_INVALID,
|
||||||
},
|
},
|
||||||
{ "driver",
|
{ "driver",
|
||||||
"driver [ major [ major ... ] ]\n"
|
"driver [ major [ major ... ] ]\n"
|
||||||
" Display the RTEMS device driver table.\n",
|
" Display the RTEMS device driver table.\n",
|
||||||
0,
|
0,
|
||||||
rtems_monitor_object_cmd,
|
rtems_monitor_object_cmd,
|
||||||
RTEMS_OBJECT_DRIVER,
|
RTEMS_MONITOR_OBJECT_DRIVER,
|
||||||
},
|
},
|
||||||
{ "dname",
|
{ "dname",
|
||||||
"dname\n"
|
"dname\n"
|
||||||
" Displays information about named drivers.\n",
|
" Displays information about named drivers.\n",
|
||||||
0,
|
0,
|
||||||
rtems_monitor_object_cmd,
|
rtems_monitor_object_cmd,
|
||||||
RTEMS_OBJECT_DNAME,
|
RTEMS_MONITOR_OBJECT_DNAME,
|
||||||
},
|
},
|
||||||
{ "exit",
|
{ "exit",
|
||||||
"exit [status]\n"
|
"exit [status]\n"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* @(#)object.c 1.7 - 95/08/02
|
* @(#)object.c 1.9 - 96/01/03
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* RTEMS Monitor "object" support.
|
* RTEMS Monitor "object" support.
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
|
|
||||||
rtems_monitor_object_info_t rtems_monitor_object_info[] =
|
rtems_monitor_object_info_t rtems_monitor_object_info[] =
|
||||||
{
|
{
|
||||||
{ RTEMS_OBJECT_CONFIG,
|
{ RTEMS_MONITOR_OBJECT_CONFIG,
|
||||||
(void *) 0,
|
(void *) 0,
|
||||||
sizeof(rtems_monitor_config_t),
|
sizeof(rtems_monitor_config_t),
|
||||||
(rtems_monitor_object_next_fn) rtems_monitor_config_next,
|
(rtems_monitor_object_next_fn) rtems_monitor_config_next,
|
||||||
@@ -43,7 +43,7 @@ rtems_monitor_object_info_t rtems_monitor_object_info[] =
|
|||||||
(rtems_monitor_object_dump_header_fn) rtems_monitor_config_dump_header,
|
(rtems_monitor_object_dump_header_fn) rtems_monitor_config_dump_header,
|
||||||
(rtems_monitor_object_dump_fn) rtems_monitor_config_dump,
|
(rtems_monitor_object_dump_fn) rtems_monitor_config_dump,
|
||||||
},
|
},
|
||||||
{ RTEMS_OBJECT_MPCI,
|
{ RTEMS_MONITOR_OBJECT_MPCI,
|
||||||
(void *) 0,
|
(void *) 0,
|
||||||
sizeof(rtems_monitor_mpci_t),
|
sizeof(rtems_monitor_mpci_t),
|
||||||
(rtems_monitor_object_next_fn) rtems_monitor_mpci_next,
|
(rtems_monitor_object_next_fn) rtems_monitor_mpci_next,
|
||||||
@@ -51,7 +51,7 @@ rtems_monitor_object_info_t rtems_monitor_object_info[] =
|
|||||||
(rtems_monitor_object_dump_header_fn) rtems_monitor_mpci_dump_header,
|
(rtems_monitor_object_dump_header_fn) rtems_monitor_mpci_dump_header,
|
||||||
(rtems_monitor_object_dump_fn) rtems_monitor_mpci_dump,
|
(rtems_monitor_object_dump_fn) rtems_monitor_mpci_dump,
|
||||||
},
|
},
|
||||||
{ RTEMS_OBJECT_INIT_TASK,
|
{ RTEMS_MONITOR_OBJECT_INIT_TASK,
|
||||||
(void *) 0,
|
(void *) 0,
|
||||||
sizeof(rtems_monitor_init_task_t),
|
sizeof(rtems_monitor_init_task_t),
|
||||||
(rtems_monitor_object_next_fn) rtems_monitor_init_task_next,
|
(rtems_monitor_object_next_fn) rtems_monitor_init_task_next,
|
||||||
@@ -59,7 +59,7 @@ rtems_monitor_object_info_t rtems_monitor_object_info[] =
|
|||||||
(rtems_monitor_object_dump_header_fn) rtems_monitor_init_task_dump_header,
|
(rtems_monitor_object_dump_header_fn) rtems_monitor_init_task_dump_header,
|
||||||
(rtems_monitor_object_dump_fn) rtems_monitor_init_task_dump,
|
(rtems_monitor_object_dump_fn) rtems_monitor_init_task_dump,
|
||||||
},
|
},
|
||||||
{ RTEMS_OBJECT_TASK,
|
{ RTEMS_MONITOR_OBJECT_TASK,
|
||||||
(void *) &_RTEMS_tasks_Information,
|
(void *) &_RTEMS_tasks_Information,
|
||||||
sizeof(rtems_monitor_task_t),
|
sizeof(rtems_monitor_task_t),
|
||||||
(rtems_monitor_object_next_fn) rtems_monitor_manager_next,
|
(rtems_monitor_object_next_fn) rtems_monitor_manager_next,
|
||||||
@@ -67,7 +67,7 @@ rtems_monitor_object_info_t rtems_monitor_object_info[] =
|
|||||||
(rtems_monitor_object_dump_header_fn) rtems_monitor_task_dump_header,
|
(rtems_monitor_object_dump_header_fn) rtems_monitor_task_dump_header,
|
||||||
(rtems_monitor_object_dump_fn) rtems_monitor_task_dump,
|
(rtems_monitor_object_dump_fn) rtems_monitor_task_dump,
|
||||||
},
|
},
|
||||||
{ RTEMS_OBJECT_QUEUE,
|
{ RTEMS_MONITOR_OBJECT_QUEUE,
|
||||||
(void *) &_Message_queue_Information,
|
(void *) &_Message_queue_Information,
|
||||||
sizeof(rtems_monitor_queue_t),
|
sizeof(rtems_monitor_queue_t),
|
||||||
(rtems_monitor_object_next_fn) rtems_monitor_manager_next,
|
(rtems_monitor_object_next_fn) rtems_monitor_manager_next,
|
||||||
@@ -75,7 +75,7 @@ rtems_monitor_object_info_t rtems_monitor_object_info[] =
|
|||||||
(rtems_monitor_object_dump_header_fn) rtems_monitor_queue_dump_header,
|
(rtems_monitor_object_dump_header_fn) rtems_monitor_queue_dump_header,
|
||||||
(rtems_monitor_object_dump_fn) rtems_monitor_queue_dump,
|
(rtems_monitor_object_dump_fn) rtems_monitor_queue_dump,
|
||||||
},
|
},
|
||||||
{ RTEMS_OBJECT_EXTENSION,
|
{ RTEMS_MONITOR_OBJECT_EXTENSION,
|
||||||
(void *) &_Extension_Information,
|
(void *) &_Extension_Information,
|
||||||
sizeof(rtems_monitor_extension_t),
|
sizeof(rtems_monitor_extension_t),
|
||||||
(rtems_monitor_object_next_fn) rtems_monitor_manager_next,
|
(rtems_monitor_object_next_fn) rtems_monitor_manager_next,
|
||||||
@@ -83,7 +83,7 @@ rtems_monitor_object_info_t rtems_monitor_object_info[] =
|
|||||||
(rtems_monitor_object_dump_header_fn) rtems_monitor_extension_dump_header,
|
(rtems_monitor_object_dump_header_fn) rtems_monitor_extension_dump_header,
|
||||||
(rtems_monitor_object_dump_fn) rtems_monitor_extension_dump,
|
(rtems_monitor_object_dump_fn) rtems_monitor_extension_dump,
|
||||||
},
|
},
|
||||||
{ RTEMS_OBJECT_DRIVER,
|
{ RTEMS_MONITOR_OBJECT_DRIVER,
|
||||||
(void *) 0,
|
(void *) 0,
|
||||||
sizeof(rtems_monitor_driver_t),
|
sizeof(rtems_monitor_driver_t),
|
||||||
(rtems_monitor_object_next_fn) rtems_monitor_driver_next,
|
(rtems_monitor_object_next_fn) rtems_monitor_driver_next,
|
||||||
@@ -91,7 +91,7 @@ rtems_monitor_object_info_t rtems_monitor_object_info[] =
|
|||||||
(rtems_monitor_object_dump_header_fn) rtems_monitor_driver_dump_header,
|
(rtems_monitor_object_dump_header_fn) rtems_monitor_driver_dump_header,
|
||||||
(rtems_monitor_object_dump_fn) rtems_monitor_driver_dump,
|
(rtems_monitor_object_dump_fn) rtems_monitor_driver_dump,
|
||||||
},
|
},
|
||||||
{ RTEMS_OBJECT_DNAME,
|
{ RTEMS_MONITOR_OBJECT_DNAME,
|
||||||
/* XXX now that the driver name table is allocated from the */
|
/* XXX now that the driver name table is allocated from the */
|
||||||
/* XXX Workspace, this does not work */
|
/* XXX Workspace, this does not work */
|
||||||
(void *) 0,
|
(void *) 0,
|
||||||
@@ -113,7 +113,7 @@ rtems_id
|
|||||||
rtems_monitor_id_fixup(
|
rtems_monitor_id_fixup(
|
||||||
rtems_id id,
|
rtems_id id,
|
||||||
unsigned32 default_node,
|
unsigned32 default_node,
|
||||||
rtems_object_type_t type
|
rtems_monitor_object_type_t type
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
unsigned32 node;
|
unsigned32 node;
|
||||||
@@ -121,19 +121,10 @@ rtems_monitor_id_fixup(
|
|||||||
node = rtems_get_node(id);
|
node = rtems_get_node(id);
|
||||||
if (node == 0)
|
if (node == 0)
|
||||||
{
|
{
|
||||||
#if 0
|
|
||||||
/* XXX Uncomment this when types are added to id's */
|
|
||||||
if (rtems_get_class(id) != OBJECTS_NO_CLASS)
|
if (rtems_get_class(id) != OBJECTS_NO_CLASS)
|
||||||
type = rtems_get_class(id);
|
type = rtems_get_class(id);
|
||||||
|
|
||||||
id = _Objects_Build_id(type, default_node, rtems_get_index(id));
|
id = _Objects_Build_id(type, default_node, rtems_get_index(id));
|
||||||
#else
|
|
||||||
#warning "TONY... FIX ME!!!!!"
|
|
||||||
#if defined(hppa1_1)
|
|
||||||
#warning "TONY... I SAID TO FIX ME!!!!! <HAHAHAHAHA>"
|
|
||||||
#endif
|
|
||||||
id = _Objects_Build_id(0, default_node, rtems_get_index(id));
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
@@ -141,7 +132,7 @@ rtems_monitor_id_fixup(
|
|||||||
|
|
||||||
rtems_monitor_object_info_t *
|
rtems_monitor_object_info_t *
|
||||||
rtems_monitor_object_lookup(
|
rtems_monitor_object_lookup(
|
||||||
rtems_object_type_t type
|
rtems_monitor_object_type_t type
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
rtems_monitor_object_info_t *p;
|
rtems_monitor_object_info_t *p;
|
||||||
@@ -157,7 +148,7 @@ rtems_monitor_object_lookup(
|
|||||||
|
|
||||||
rtems_id
|
rtems_id
|
||||||
rtems_monitor_object_canonical_next_remote(
|
rtems_monitor_object_canonical_next_remote(
|
||||||
rtems_object_type_t type,
|
rtems_monitor_object_type_t type,
|
||||||
rtems_id id,
|
rtems_id id,
|
||||||
void *canonical
|
void *canonical
|
||||||
)
|
)
|
||||||
@@ -233,7 +224,7 @@ rtems_monitor_object_canonical_next(
|
|||||||
|
|
||||||
rtems_id
|
rtems_id
|
||||||
rtems_monitor_object_canonical_get(
|
rtems_monitor_object_canonical_get(
|
||||||
rtems_object_type_t type,
|
rtems_monitor_object_type_t type,
|
||||||
rtems_id id,
|
rtems_id id,
|
||||||
void *canonical,
|
void *canonical,
|
||||||
unsigned32 *size_p
|
unsigned32 *size_p
|
||||||
@@ -299,7 +290,7 @@ rtems_monitor_object_dump_all(
|
|||||||
rtems_id next_id;
|
rtems_id next_id;
|
||||||
rtems_monitor_union_t canonical;
|
rtems_monitor_union_t canonical;
|
||||||
|
|
||||||
next_id = RTEMS_OBJECT_ID_INITIAL(rtems_monitor_default_node);
|
next_id = RTEMS_OBJECT_ID_INITIAL(info->type, rtems_monitor_default_node);
|
||||||
|
|
||||||
while ((next_id = rtems_monitor_object_canonical_next(
|
while ((next_id = rtems_monitor_object_canonical_next(
|
||||||
info,
|
info,
|
||||||
@@ -320,14 +311,14 @@ rtems_monitor_object_cmd(
|
|||||||
{
|
{
|
||||||
int arg;
|
int arg;
|
||||||
rtems_monitor_object_info_t *info = 0;
|
rtems_monitor_object_info_t *info = 0;
|
||||||
rtems_object_type_t type = (rtems_object_type_t) command_arg;
|
rtems_monitor_object_type_t type = (rtems_monitor_object_type_t) command_arg;
|
||||||
|
|
||||||
/* what is the default type? */
|
/* what is the default type? */
|
||||||
type = (rtems_object_type_t) command_arg;
|
type = (rtems_monitor_object_type_t) command_arg;
|
||||||
|
|
||||||
if (argc == 1)
|
if (argc == 1)
|
||||||
{
|
{
|
||||||
if (type == RTEMS_OBJECT_INVALID)
|
if (type == RTEMS_MONITOR_OBJECT_INVALID)
|
||||||
{
|
{
|
||||||
printf("A type must be specified to \"dump all\"\n");
|
printf("A type must be specified to \"dump all\"\n");
|
||||||
goto done;
|
goto done;
|
||||||
@@ -344,16 +335,15 @@ rtems_monitor_object_cmd(
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
unsigned32 default_node = rtems_monitor_default_node;
|
unsigned32 default_node = rtems_monitor_default_node;
|
||||||
rtems_object_type_t last_type = RTEMS_OBJECT_INVALID;
|
rtems_monitor_object_type_t last_type = RTEMS_MONITOR_OBJECT_INVALID;
|
||||||
rtems_id id;
|
rtems_id id;
|
||||||
|
|
||||||
for (arg=1; argv[arg]; arg++)
|
for (arg=1; argv[arg]; arg++)
|
||||||
{
|
{
|
||||||
id = (rtems_id) strtoul(argv[arg], 0, 0);
|
id = (rtems_id) strtoul(argv[arg], 0, 0);
|
||||||
id = rtems_monitor_id_fixup(id, default_node, type);
|
id = rtems_monitor_id_fixup(id, default_node, type);
|
||||||
#if 0
|
type = (rtems_monitor_object_type_t) rtems_get_class(id);
|
||||||
type = rtems_get_type(id);
|
|
||||||
#endif
|
|
||||||
/*
|
/*
|
||||||
* Allow the item type to change in the middle
|
* Allow the item type to change in the middle
|
||||||
* of the command. If the type changes, then
|
* of the command. If the type changes, then
|
||||||
@@ -363,15 +353,18 @@ rtems_monitor_object_cmd(
|
|||||||
{
|
{
|
||||||
info = rtems_monitor_object_lookup(type);
|
info = rtems_monitor_object_lookup(type);
|
||||||
if (info == 0)
|
if (info == 0)
|
||||||
{
|
goto not_found;
|
||||||
not_found: printf("Invalid or unsupported type %d\n", type);
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (info->dump_header)
|
if (info->dump_header)
|
||||||
info->dump_header(verbose);
|
info->dump_header(verbose);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (info == 0)
|
||||||
|
{
|
||||||
|
not_found: printf("Invalid or unsupported type %d\n", type);
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
rtems_monitor_object_dump_1(info, id, verbose);
|
rtems_monitor_object_dump_1(info, id, verbose);
|
||||||
|
|
||||||
default_node = rtems_get_node(id);
|
default_node = rtems_get_node(id);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* @(#)server.c 1.3 - 95/08/02
|
* @(#)server.c 1.5 - 96/01/03
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* RTEMS monitor server (handles requests for info from RTEMS monitors
|
* RTEMS monitor server (handles requests for info from RTEMS monitors
|
||||||
@@ -144,11 +144,11 @@ rtems_monitor_server_task(
|
|||||||
{
|
{
|
||||||
case RTEMS_MONITOR_SERVER_CANONICAL:
|
case RTEMS_MONITOR_SERVER_CANONICAL:
|
||||||
{
|
{
|
||||||
rtems_object_type_t object_type;
|
rtems_monitor_object_type_t object_type;
|
||||||
rtems_id id;
|
rtems_id id;
|
||||||
rtems_id next_id;
|
rtems_id next_id;
|
||||||
|
|
||||||
object_type = (rtems_object_type_t) request.argument0;
|
object_type = (rtems_monitor_object_type_t) request.argument0;
|
||||||
id = (rtems_id) request.argument1;
|
id = (rtems_id) request.argument1;
|
||||||
next_id = rtems_monitor_object_canonical_get(object_type,
|
next_id = rtems_monitor_object_canonical_get(object_type,
|
||||||
id,
|
id,
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
/*
|
/*
|
||||||
* @(#)monitor.h 1.20 - 95/12/12
|
* @(#)monitor.h 1.21 - 96/01/03
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* $Id$
|
* monitor.h,v 1.3 1995/09/29 17:19:02 joel Exp
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -29,21 +29,25 @@ extern "C" {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
RTEMS_OBJECT_INVALID = 0,
|
RTEMS_MONITOR_OBJECT_INVALID = OBJECTS_NO_CLASS,
|
||||||
RTEMS_OBJECT_TASK = 1,
|
RTEMS_MONITOR_OBJECT_TASK = OBJECTS_RTEMS_TASKS,
|
||||||
RTEMS_OBJECT_EXTENSION = 2,
|
RTEMS_MONITOR_OBJECT_EXTENSION = OBJECTS_RTEMS_EXTENSIONS,
|
||||||
RTEMS_OBJECT_QUEUE = 3,
|
RTEMS_MONITOR_OBJECT_QUEUE = OBJECTS_RTEMS_MESSAGE_QUEUES,
|
||||||
RTEMS_OBJECT_SEMAPHORE = 4,
|
RTEMS_MONITOR_OBJECT_SEMAPHORE = OBJECTS_RTEMS_SEMAPHORES,
|
||||||
RTEMS_OBJECT_DRIVER = 5,
|
RTEMS_MONITOR_OBJECT_PARTITION = OBJECTS_RTEMS_PARTITIONS,
|
||||||
RTEMS_OBJECT_DNAME = 6,
|
RTEMS_MONITOR_OBJECT_REGION = OBJECTS_RTEMS_REGIONS,
|
||||||
RTEMS_OBJECT_CONFIG = 7,
|
RTEMS_MONITOR_OBJECT_PORT = OBJECTS_RTEMS_PORTS,
|
||||||
RTEMS_OBJECT_INIT_TASK = 8,
|
|
||||||
RTEMS_OBJECT_MPCI = 9,
|
/* following monitor objects are not known to RTEMS, but
|
||||||
RTEMS_OBJECT_PARTITION = 10,
|
* we like to have "types" for them anyway */
|
||||||
RTEMS_OBJECT_REGION = 11,
|
|
||||||
RTEMS_OBJECT_PORT = 12,
|
RTEMS_MONITOR_OBJECT_DRIVER = OBJECTS_CLASSES_LAST+1,
|
||||||
RTEMS_OBJECT_SYMBOL = 13,
|
RTEMS_MONITOR_OBJECT_DNAME,
|
||||||
} rtems_object_type_t;
|
RTEMS_MONITOR_OBJECT_CONFIG,
|
||||||
|
RTEMS_MONITOR_OBJECT_INIT_TASK,
|
||||||
|
RTEMS_MONITOR_OBJECT_MPCI,
|
||||||
|
RTEMS_MONITOR_OBJECT_SYMBOL,
|
||||||
|
} rtems_monitor_object_type_t;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* rtems_monitor_init() flags
|
* rtems_monitor_init() flags
|
||||||
@@ -302,7 +306,7 @@ typedef void (*rtems_monitor_object_dump_header_fn)(boolean);
|
|||||||
typedef void (*rtems_monitor_object_dump_fn)(void *, boolean);
|
typedef void (*rtems_monitor_object_dump_fn)(void *, boolean);
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
rtems_object_type_t type;
|
rtems_monitor_object_type_t type;
|
||||||
void *object_information;
|
void *object_information;
|
||||||
int size; /* of canonical object */
|
int size; /* of canonical object */
|
||||||
rtems_monitor_object_next_fn next;
|
rtems_monitor_object_next_fn next;
|
||||||
@@ -354,8 +358,8 @@ unsigned32 rtems_monitor_dump_events(rtems_event_set events);
|
|||||||
unsigned32 rtems_monitor_dump_notepad(unsigned32 *notepad);
|
unsigned32 rtems_monitor_dump_notepad(unsigned32 *notepad);
|
||||||
|
|
||||||
/* object.c */
|
/* object.c */
|
||||||
rtems_id rtems_monitor_id_fixup(rtems_id, unsigned32, rtems_object_type_t);
|
rtems_id rtems_monitor_id_fixup(rtems_id, unsigned32, rtems_monitor_object_type_t);
|
||||||
rtems_id rtems_monitor_object_canonical_get(rtems_object_type_t, rtems_id, void *, unsigned32 *size_p);
|
rtems_id rtems_monitor_object_canonical_get(rtems_monitor_object_type_t, rtems_id, void *, unsigned32 *size_p);
|
||||||
rtems_id rtems_monitor_object_canonical_next(rtems_monitor_object_info_t *, rtems_id, void *);
|
rtems_id rtems_monitor_object_canonical_next(rtems_monitor_object_info_t *, rtems_id, void *);
|
||||||
void *rtems_monitor_object_next(void *, void *, rtems_id, rtems_id *);
|
void *rtems_monitor_object_next(void *, void *, rtems_id, rtems_id *);
|
||||||
rtems_id rtems_monitor_object_canonical(rtems_id, void *);
|
rtems_id rtems_monitor_object_canonical(rtems_id, void *);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* @(#)dname.c 1.3 - 95/07/31
|
* @(#)dname.c 1.5 - 96/01/03
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* RTEMS monitor driver names support.
|
* RTEMS monitor driver names support.
|
||||||
@@ -54,7 +54,7 @@ rtems_monitor_dname_next(
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
int n = rtems_get_index(*next_id);
|
int n = rtems_get_index(*next_id);
|
||||||
rtems_driver_name_t *table = object_information;
|
rtems_driver_name_t *table = _IO_Driver_name_table;
|
||||||
rtems_driver_name_t *np = 0;
|
rtems_driver_name_t *np = 0;
|
||||||
|
|
||||||
/* XXX should we be using _IO_Number_of_devices */
|
/* XXX should we be using _IO_Number_of_devices */
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* @(#)itask.c 1.4 - 95/08/02
|
* @(#)itask.c 1.6 - 96/01/03
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* RTEMS Monitor init task support
|
* RTEMS Monitor init task support
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* @(#)manager.c 1.2 - 95/07/31
|
* @(#)manager.c 1.4 - 96/01/03
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* RTEMS Monitor "manager" support.
|
* RTEMS Monitor "manager" support.
|
||||||
* Used to traverse object (chain) lists and print them out.
|
* Used to traverse object (chain) lists and print them out.
|
||||||
|
*
|
||||||
* $Id$
|
* $Id$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -43,7 +44,7 @@ rtems_monitor_manager_next(
|
|||||||
{
|
{
|
||||||
copy = (rtems_monitor_generic_t *) canonical;
|
copy = (rtems_monitor_generic_t *) canonical;
|
||||||
copy->id = object->id;
|
copy->id = object->id;
|
||||||
copy->name = table->name_table[rtems_get_index(copy->id)];
|
_Objects_Copy_name_raw(object->name, ©->name, sizeof(copy->name));
|
||||||
}
|
}
|
||||||
|
|
||||||
done:
|
done:
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* @(#)monitor.c 1.22 - 95/11/02
|
* @(#)monitor.c 1.23 - 96/01/03
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
@@ -80,6 +80,7 @@ rtems_monitor_command_entry_t rtems_monitor_commands[] = {
|
|||||||
" queue -- show message queue information\n"
|
" queue -- show message queue information\n"
|
||||||
" extension -- user extensions\n"
|
" extension -- user extensions\n"
|
||||||
" driver -- show information about named drivers\n"
|
" driver -- show information about named drivers\n"
|
||||||
|
" dname -- show information about named drivers\n"
|
||||||
" object -- generic object information\n"
|
" object -- generic object information\n"
|
||||||
" node -- specify default node for commands that take id's\n"
|
" node -- specify default node for commands that take id's\n"
|
||||||
#ifdef CPU_INVOKE_DEBUGGER
|
#ifdef CPU_INVOKE_DEBUGGER
|
||||||
@@ -95,21 +96,21 @@ rtems_monitor_command_entry_t rtems_monitor_commands[] = {
|
|||||||
" Show the system configuration.\n",
|
" Show the system configuration.\n",
|
||||||
0,
|
0,
|
||||||
rtems_monitor_object_cmd,
|
rtems_monitor_object_cmd,
|
||||||
RTEMS_OBJECT_CONFIG,
|
RTEMS_MONITOR_OBJECT_CONFIG,
|
||||||
},
|
},
|
||||||
{ "itask",
|
{ "itask",
|
||||||
"itask\n"
|
"itask\n"
|
||||||
" List init tasks for the system\n",
|
" List init tasks for the system\n",
|
||||||
0,
|
0,
|
||||||
rtems_monitor_object_cmd,
|
rtems_monitor_object_cmd,
|
||||||
RTEMS_OBJECT_INIT_TASK,
|
RTEMS_MONITOR_OBJECT_INIT_TASK,
|
||||||
},
|
},
|
||||||
{ "mpci",
|
{ "mpci",
|
||||||
"mpci\n"
|
"mpci\n"
|
||||||
" Show the MPCI system configuration, if configured.\n",
|
" Show the MPCI system configuration, if configured.\n",
|
||||||
0,
|
0,
|
||||||
rtems_monitor_object_cmd,
|
rtems_monitor_object_cmd,
|
||||||
RTEMS_OBJECT_MPCI,
|
RTEMS_MONITOR_OBJECT_MPCI,
|
||||||
},
|
},
|
||||||
{ "pause",
|
{ "pause",
|
||||||
"pause [ticks]\n"
|
"pause [ticks]\n"
|
||||||
@@ -155,7 +156,7 @@ rtems_monitor_command_entry_t rtems_monitor_commands[] = {
|
|||||||
" Default is to display information about all extensions on this node\n",
|
" Default is to display information about all extensions on this node\n",
|
||||||
0,
|
0,
|
||||||
rtems_monitor_object_cmd,
|
rtems_monitor_object_cmd,
|
||||||
RTEMS_OBJECT_EXTENSION,
|
RTEMS_MONITOR_OBJECT_EXTENSION,
|
||||||
},
|
},
|
||||||
{ "task",
|
{ "task",
|
||||||
"task [id [id ...] ]\n"
|
"task [id [id ...] ]\n"
|
||||||
@@ -163,7 +164,7 @@ rtems_monitor_command_entry_t rtems_monitor_commands[] = {
|
|||||||
" Default is to display information about all tasks on this node\n",
|
" Default is to display information about all tasks on this node\n",
|
||||||
0,
|
0,
|
||||||
rtems_monitor_object_cmd,
|
rtems_monitor_object_cmd,
|
||||||
RTEMS_OBJECT_TASK,
|
RTEMS_MONITOR_OBJECT_TASK,
|
||||||
},
|
},
|
||||||
{ "queue",
|
{ "queue",
|
||||||
"queue [id [id ... ] ]\n"
|
"queue [id [id ... ] ]\n"
|
||||||
@@ -171,7 +172,7 @@ rtems_monitor_command_entry_t rtems_monitor_commands[] = {
|
|||||||
" Default is to display information about all queues on this node\n",
|
" Default is to display information about all queues on this node\n",
|
||||||
0,
|
0,
|
||||||
rtems_monitor_object_cmd,
|
rtems_monitor_object_cmd,
|
||||||
RTEMS_OBJECT_QUEUE,
|
RTEMS_MONITOR_OBJECT_QUEUE,
|
||||||
},
|
},
|
||||||
{ "object",
|
{ "object",
|
||||||
"object [id [id ...] ]\n"
|
"object [id [id ...] ]\n"
|
||||||
@@ -180,21 +181,21 @@ rtems_monitor_command_entry_t rtems_monitor_commands[] = {
|
|||||||
" (which may normally be defaulted)\n",
|
" (which may normally be defaulted)\n",
|
||||||
0,
|
0,
|
||||||
rtems_monitor_object_cmd,
|
rtems_monitor_object_cmd,
|
||||||
RTEMS_OBJECT_INVALID,
|
RTEMS_MONITOR_OBJECT_INVALID,
|
||||||
},
|
},
|
||||||
{ "driver",
|
{ "driver",
|
||||||
"driver [ major [ major ... ] ]\n"
|
"driver [ major [ major ... ] ]\n"
|
||||||
" Display the RTEMS device driver table.\n",
|
" Display the RTEMS device driver table.\n",
|
||||||
0,
|
0,
|
||||||
rtems_monitor_object_cmd,
|
rtems_monitor_object_cmd,
|
||||||
RTEMS_OBJECT_DRIVER,
|
RTEMS_MONITOR_OBJECT_DRIVER,
|
||||||
},
|
},
|
||||||
{ "dname",
|
{ "dname",
|
||||||
"dname\n"
|
"dname\n"
|
||||||
" Displays information about named drivers.\n",
|
" Displays information about named drivers.\n",
|
||||||
0,
|
0,
|
||||||
rtems_monitor_object_cmd,
|
rtems_monitor_object_cmd,
|
||||||
RTEMS_OBJECT_DNAME,
|
RTEMS_MONITOR_OBJECT_DNAME,
|
||||||
},
|
},
|
||||||
{ "exit",
|
{ "exit",
|
||||||
"exit [status]\n"
|
"exit [status]\n"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* @(#)object.c 1.7 - 95/08/02
|
* @(#)object.c 1.9 - 96/01/03
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* RTEMS Monitor "object" support.
|
* RTEMS Monitor "object" support.
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
|
|
||||||
rtems_monitor_object_info_t rtems_monitor_object_info[] =
|
rtems_monitor_object_info_t rtems_monitor_object_info[] =
|
||||||
{
|
{
|
||||||
{ RTEMS_OBJECT_CONFIG,
|
{ RTEMS_MONITOR_OBJECT_CONFIG,
|
||||||
(void *) 0,
|
(void *) 0,
|
||||||
sizeof(rtems_monitor_config_t),
|
sizeof(rtems_monitor_config_t),
|
||||||
(rtems_monitor_object_next_fn) rtems_monitor_config_next,
|
(rtems_monitor_object_next_fn) rtems_monitor_config_next,
|
||||||
@@ -43,7 +43,7 @@ rtems_monitor_object_info_t rtems_monitor_object_info[] =
|
|||||||
(rtems_monitor_object_dump_header_fn) rtems_monitor_config_dump_header,
|
(rtems_monitor_object_dump_header_fn) rtems_monitor_config_dump_header,
|
||||||
(rtems_monitor_object_dump_fn) rtems_monitor_config_dump,
|
(rtems_monitor_object_dump_fn) rtems_monitor_config_dump,
|
||||||
},
|
},
|
||||||
{ RTEMS_OBJECT_MPCI,
|
{ RTEMS_MONITOR_OBJECT_MPCI,
|
||||||
(void *) 0,
|
(void *) 0,
|
||||||
sizeof(rtems_monitor_mpci_t),
|
sizeof(rtems_monitor_mpci_t),
|
||||||
(rtems_monitor_object_next_fn) rtems_monitor_mpci_next,
|
(rtems_monitor_object_next_fn) rtems_monitor_mpci_next,
|
||||||
@@ -51,7 +51,7 @@ rtems_monitor_object_info_t rtems_monitor_object_info[] =
|
|||||||
(rtems_monitor_object_dump_header_fn) rtems_monitor_mpci_dump_header,
|
(rtems_monitor_object_dump_header_fn) rtems_monitor_mpci_dump_header,
|
||||||
(rtems_monitor_object_dump_fn) rtems_monitor_mpci_dump,
|
(rtems_monitor_object_dump_fn) rtems_monitor_mpci_dump,
|
||||||
},
|
},
|
||||||
{ RTEMS_OBJECT_INIT_TASK,
|
{ RTEMS_MONITOR_OBJECT_INIT_TASK,
|
||||||
(void *) 0,
|
(void *) 0,
|
||||||
sizeof(rtems_monitor_init_task_t),
|
sizeof(rtems_monitor_init_task_t),
|
||||||
(rtems_monitor_object_next_fn) rtems_monitor_init_task_next,
|
(rtems_monitor_object_next_fn) rtems_monitor_init_task_next,
|
||||||
@@ -59,7 +59,7 @@ rtems_monitor_object_info_t rtems_monitor_object_info[] =
|
|||||||
(rtems_monitor_object_dump_header_fn) rtems_monitor_init_task_dump_header,
|
(rtems_monitor_object_dump_header_fn) rtems_monitor_init_task_dump_header,
|
||||||
(rtems_monitor_object_dump_fn) rtems_monitor_init_task_dump,
|
(rtems_monitor_object_dump_fn) rtems_monitor_init_task_dump,
|
||||||
},
|
},
|
||||||
{ RTEMS_OBJECT_TASK,
|
{ RTEMS_MONITOR_OBJECT_TASK,
|
||||||
(void *) &_RTEMS_tasks_Information,
|
(void *) &_RTEMS_tasks_Information,
|
||||||
sizeof(rtems_monitor_task_t),
|
sizeof(rtems_monitor_task_t),
|
||||||
(rtems_monitor_object_next_fn) rtems_monitor_manager_next,
|
(rtems_monitor_object_next_fn) rtems_monitor_manager_next,
|
||||||
@@ -67,7 +67,7 @@ rtems_monitor_object_info_t rtems_monitor_object_info[] =
|
|||||||
(rtems_monitor_object_dump_header_fn) rtems_monitor_task_dump_header,
|
(rtems_monitor_object_dump_header_fn) rtems_monitor_task_dump_header,
|
||||||
(rtems_monitor_object_dump_fn) rtems_monitor_task_dump,
|
(rtems_monitor_object_dump_fn) rtems_monitor_task_dump,
|
||||||
},
|
},
|
||||||
{ RTEMS_OBJECT_QUEUE,
|
{ RTEMS_MONITOR_OBJECT_QUEUE,
|
||||||
(void *) &_Message_queue_Information,
|
(void *) &_Message_queue_Information,
|
||||||
sizeof(rtems_monitor_queue_t),
|
sizeof(rtems_monitor_queue_t),
|
||||||
(rtems_monitor_object_next_fn) rtems_monitor_manager_next,
|
(rtems_monitor_object_next_fn) rtems_monitor_manager_next,
|
||||||
@@ -75,7 +75,7 @@ rtems_monitor_object_info_t rtems_monitor_object_info[] =
|
|||||||
(rtems_monitor_object_dump_header_fn) rtems_monitor_queue_dump_header,
|
(rtems_monitor_object_dump_header_fn) rtems_monitor_queue_dump_header,
|
||||||
(rtems_monitor_object_dump_fn) rtems_monitor_queue_dump,
|
(rtems_monitor_object_dump_fn) rtems_monitor_queue_dump,
|
||||||
},
|
},
|
||||||
{ RTEMS_OBJECT_EXTENSION,
|
{ RTEMS_MONITOR_OBJECT_EXTENSION,
|
||||||
(void *) &_Extension_Information,
|
(void *) &_Extension_Information,
|
||||||
sizeof(rtems_monitor_extension_t),
|
sizeof(rtems_monitor_extension_t),
|
||||||
(rtems_monitor_object_next_fn) rtems_monitor_manager_next,
|
(rtems_monitor_object_next_fn) rtems_monitor_manager_next,
|
||||||
@@ -83,7 +83,7 @@ rtems_monitor_object_info_t rtems_monitor_object_info[] =
|
|||||||
(rtems_monitor_object_dump_header_fn) rtems_monitor_extension_dump_header,
|
(rtems_monitor_object_dump_header_fn) rtems_monitor_extension_dump_header,
|
||||||
(rtems_monitor_object_dump_fn) rtems_monitor_extension_dump,
|
(rtems_monitor_object_dump_fn) rtems_monitor_extension_dump,
|
||||||
},
|
},
|
||||||
{ RTEMS_OBJECT_DRIVER,
|
{ RTEMS_MONITOR_OBJECT_DRIVER,
|
||||||
(void *) 0,
|
(void *) 0,
|
||||||
sizeof(rtems_monitor_driver_t),
|
sizeof(rtems_monitor_driver_t),
|
||||||
(rtems_monitor_object_next_fn) rtems_monitor_driver_next,
|
(rtems_monitor_object_next_fn) rtems_monitor_driver_next,
|
||||||
@@ -91,7 +91,7 @@ rtems_monitor_object_info_t rtems_monitor_object_info[] =
|
|||||||
(rtems_monitor_object_dump_header_fn) rtems_monitor_driver_dump_header,
|
(rtems_monitor_object_dump_header_fn) rtems_monitor_driver_dump_header,
|
||||||
(rtems_monitor_object_dump_fn) rtems_monitor_driver_dump,
|
(rtems_monitor_object_dump_fn) rtems_monitor_driver_dump,
|
||||||
},
|
},
|
||||||
{ RTEMS_OBJECT_DNAME,
|
{ RTEMS_MONITOR_OBJECT_DNAME,
|
||||||
/* XXX now that the driver name table is allocated from the */
|
/* XXX now that the driver name table is allocated from the */
|
||||||
/* XXX Workspace, this does not work */
|
/* XXX Workspace, this does not work */
|
||||||
(void *) 0,
|
(void *) 0,
|
||||||
@@ -113,7 +113,7 @@ rtems_id
|
|||||||
rtems_monitor_id_fixup(
|
rtems_monitor_id_fixup(
|
||||||
rtems_id id,
|
rtems_id id,
|
||||||
unsigned32 default_node,
|
unsigned32 default_node,
|
||||||
rtems_object_type_t type
|
rtems_monitor_object_type_t type
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
unsigned32 node;
|
unsigned32 node;
|
||||||
@@ -121,19 +121,10 @@ rtems_monitor_id_fixup(
|
|||||||
node = rtems_get_node(id);
|
node = rtems_get_node(id);
|
||||||
if (node == 0)
|
if (node == 0)
|
||||||
{
|
{
|
||||||
#if 0
|
|
||||||
/* XXX Uncomment this when types are added to id's */
|
|
||||||
if (rtems_get_class(id) != OBJECTS_NO_CLASS)
|
if (rtems_get_class(id) != OBJECTS_NO_CLASS)
|
||||||
type = rtems_get_class(id);
|
type = rtems_get_class(id);
|
||||||
|
|
||||||
id = _Objects_Build_id(type, default_node, rtems_get_index(id));
|
id = _Objects_Build_id(type, default_node, rtems_get_index(id));
|
||||||
#else
|
|
||||||
#warning "TONY... FIX ME!!!!!"
|
|
||||||
#if defined(hppa1_1)
|
|
||||||
#warning "TONY... I SAID TO FIX ME!!!!! <HAHAHAHAHA>"
|
|
||||||
#endif
|
|
||||||
id = _Objects_Build_id(0, default_node, rtems_get_index(id));
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
@@ -141,7 +132,7 @@ rtems_monitor_id_fixup(
|
|||||||
|
|
||||||
rtems_monitor_object_info_t *
|
rtems_monitor_object_info_t *
|
||||||
rtems_monitor_object_lookup(
|
rtems_monitor_object_lookup(
|
||||||
rtems_object_type_t type
|
rtems_monitor_object_type_t type
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
rtems_monitor_object_info_t *p;
|
rtems_monitor_object_info_t *p;
|
||||||
@@ -157,7 +148,7 @@ rtems_monitor_object_lookup(
|
|||||||
|
|
||||||
rtems_id
|
rtems_id
|
||||||
rtems_monitor_object_canonical_next_remote(
|
rtems_monitor_object_canonical_next_remote(
|
||||||
rtems_object_type_t type,
|
rtems_monitor_object_type_t type,
|
||||||
rtems_id id,
|
rtems_id id,
|
||||||
void *canonical
|
void *canonical
|
||||||
)
|
)
|
||||||
@@ -233,7 +224,7 @@ rtems_monitor_object_canonical_next(
|
|||||||
|
|
||||||
rtems_id
|
rtems_id
|
||||||
rtems_monitor_object_canonical_get(
|
rtems_monitor_object_canonical_get(
|
||||||
rtems_object_type_t type,
|
rtems_monitor_object_type_t type,
|
||||||
rtems_id id,
|
rtems_id id,
|
||||||
void *canonical,
|
void *canonical,
|
||||||
unsigned32 *size_p
|
unsigned32 *size_p
|
||||||
@@ -299,7 +290,7 @@ rtems_monitor_object_dump_all(
|
|||||||
rtems_id next_id;
|
rtems_id next_id;
|
||||||
rtems_monitor_union_t canonical;
|
rtems_monitor_union_t canonical;
|
||||||
|
|
||||||
next_id = RTEMS_OBJECT_ID_INITIAL(rtems_monitor_default_node);
|
next_id = RTEMS_OBJECT_ID_INITIAL(info->type, rtems_monitor_default_node);
|
||||||
|
|
||||||
while ((next_id = rtems_monitor_object_canonical_next(
|
while ((next_id = rtems_monitor_object_canonical_next(
|
||||||
info,
|
info,
|
||||||
@@ -320,14 +311,14 @@ rtems_monitor_object_cmd(
|
|||||||
{
|
{
|
||||||
int arg;
|
int arg;
|
||||||
rtems_monitor_object_info_t *info = 0;
|
rtems_monitor_object_info_t *info = 0;
|
||||||
rtems_object_type_t type = (rtems_object_type_t) command_arg;
|
rtems_monitor_object_type_t type = (rtems_monitor_object_type_t) command_arg;
|
||||||
|
|
||||||
/* what is the default type? */
|
/* what is the default type? */
|
||||||
type = (rtems_object_type_t) command_arg;
|
type = (rtems_monitor_object_type_t) command_arg;
|
||||||
|
|
||||||
if (argc == 1)
|
if (argc == 1)
|
||||||
{
|
{
|
||||||
if (type == RTEMS_OBJECT_INVALID)
|
if (type == RTEMS_MONITOR_OBJECT_INVALID)
|
||||||
{
|
{
|
||||||
printf("A type must be specified to \"dump all\"\n");
|
printf("A type must be specified to \"dump all\"\n");
|
||||||
goto done;
|
goto done;
|
||||||
@@ -344,16 +335,15 @@ rtems_monitor_object_cmd(
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
unsigned32 default_node = rtems_monitor_default_node;
|
unsigned32 default_node = rtems_monitor_default_node;
|
||||||
rtems_object_type_t last_type = RTEMS_OBJECT_INVALID;
|
rtems_monitor_object_type_t last_type = RTEMS_MONITOR_OBJECT_INVALID;
|
||||||
rtems_id id;
|
rtems_id id;
|
||||||
|
|
||||||
for (arg=1; argv[arg]; arg++)
|
for (arg=1; argv[arg]; arg++)
|
||||||
{
|
{
|
||||||
id = (rtems_id) strtoul(argv[arg], 0, 0);
|
id = (rtems_id) strtoul(argv[arg], 0, 0);
|
||||||
id = rtems_monitor_id_fixup(id, default_node, type);
|
id = rtems_monitor_id_fixup(id, default_node, type);
|
||||||
#if 0
|
type = (rtems_monitor_object_type_t) rtems_get_class(id);
|
||||||
type = rtems_get_type(id);
|
|
||||||
#endif
|
|
||||||
/*
|
/*
|
||||||
* Allow the item type to change in the middle
|
* Allow the item type to change in the middle
|
||||||
* of the command. If the type changes, then
|
* of the command. If the type changes, then
|
||||||
@@ -363,15 +353,18 @@ rtems_monitor_object_cmd(
|
|||||||
{
|
{
|
||||||
info = rtems_monitor_object_lookup(type);
|
info = rtems_monitor_object_lookup(type);
|
||||||
if (info == 0)
|
if (info == 0)
|
||||||
{
|
goto not_found;
|
||||||
not_found: printf("Invalid or unsupported type %d\n", type);
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (info->dump_header)
|
if (info->dump_header)
|
||||||
info->dump_header(verbose);
|
info->dump_header(verbose);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (info == 0)
|
||||||
|
{
|
||||||
|
not_found: printf("Invalid or unsupported type %d\n", type);
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
rtems_monitor_object_dump_1(info, id, verbose);
|
rtems_monitor_object_dump_1(info, id, verbose);
|
||||||
|
|
||||||
default_node = rtems_get_node(id);
|
default_node = rtems_get_node(id);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* @(#)server.c 1.3 - 95/08/02
|
* @(#)server.c 1.5 - 96/01/03
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* RTEMS monitor server (handles requests for info from RTEMS monitors
|
* RTEMS monitor server (handles requests for info from RTEMS monitors
|
||||||
@@ -144,11 +144,11 @@ rtems_monitor_server_task(
|
|||||||
{
|
{
|
||||||
case RTEMS_MONITOR_SERVER_CANONICAL:
|
case RTEMS_MONITOR_SERVER_CANONICAL:
|
||||||
{
|
{
|
||||||
rtems_object_type_t object_type;
|
rtems_monitor_object_type_t object_type;
|
||||||
rtems_id id;
|
rtems_id id;
|
||||||
rtems_id next_id;
|
rtems_id next_id;
|
||||||
|
|
||||||
object_type = (rtems_object_type_t) request.argument0;
|
object_type = (rtems_monitor_object_type_t) request.argument0;
|
||||||
id = (rtems_id) request.argument1;
|
id = (rtems_id) request.argument1;
|
||||||
next_id = rtems_monitor_object_canonical_get(object_type,
|
next_id = rtems_monitor_object_canonical_get(object_type,
|
||||||
id,
|
id,
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
/*
|
/*
|
||||||
* @(#)monitor.h 1.20 - 95/12/12
|
* @(#)monitor.h 1.21 - 96/01/03
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* $Id$
|
* monitor.h,v 1.3 1995/09/29 17:19:02 joel Exp
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -29,21 +29,25 @@ extern "C" {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
RTEMS_OBJECT_INVALID = 0,
|
RTEMS_MONITOR_OBJECT_INVALID = OBJECTS_NO_CLASS,
|
||||||
RTEMS_OBJECT_TASK = 1,
|
RTEMS_MONITOR_OBJECT_TASK = OBJECTS_RTEMS_TASKS,
|
||||||
RTEMS_OBJECT_EXTENSION = 2,
|
RTEMS_MONITOR_OBJECT_EXTENSION = OBJECTS_RTEMS_EXTENSIONS,
|
||||||
RTEMS_OBJECT_QUEUE = 3,
|
RTEMS_MONITOR_OBJECT_QUEUE = OBJECTS_RTEMS_MESSAGE_QUEUES,
|
||||||
RTEMS_OBJECT_SEMAPHORE = 4,
|
RTEMS_MONITOR_OBJECT_SEMAPHORE = OBJECTS_RTEMS_SEMAPHORES,
|
||||||
RTEMS_OBJECT_DRIVER = 5,
|
RTEMS_MONITOR_OBJECT_PARTITION = OBJECTS_RTEMS_PARTITIONS,
|
||||||
RTEMS_OBJECT_DNAME = 6,
|
RTEMS_MONITOR_OBJECT_REGION = OBJECTS_RTEMS_REGIONS,
|
||||||
RTEMS_OBJECT_CONFIG = 7,
|
RTEMS_MONITOR_OBJECT_PORT = OBJECTS_RTEMS_PORTS,
|
||||||
RTEMS_OBJECT_INIT_TASK = 8,
|
|
||||||
RTEMS_OBJECT_MPCI = 9,
|
/* following monitor objects are not known to RTEMS, but
|
||||||
RTEMS_OBJECT_PARTITION = 10,
|
* we like to have "types" for them anyway */
|
||||||
RTEMS_OBJECT_REGION = 11,
|
|
||||||
RTEMS_OBJECT_PORT = 12,
|
RTEMS_MONITOR_OBJECT_DRIVER = OBJECTS_CLASSES_LAST+1,
|
||||||
RTEMS_OBJECT_SYMBOL = 13,
|
RTEMS_MONITOR_OBJECT_DNAME,
|
||||||
} rtems_object_type_t;
|
RTEMS_MONITOR_OBJECT_CONFIG,
|
||||||
|
RTEMS_MONITOR_OBJECT_INIT_TASK,
|
||||||
|
RTEMS_MONITOR_OBJECT_MPCI,
|
||||||
|
RTEMS_MONITOR_OBJECT_SYMBOL,
|
||||||
|
} rtems_monitor_object_type_t;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* rtems_monitor_init() flags
|
* rtems_monitor_init() flags
|
||||||
@@ -302,7 +306,7 @@ typedef void (*rtems_monitor_object_dump_header_fn)(boolean);
|
|||||||
typedef void (*rtems_monitor_object_dump_fn)(void *, boolean);
|
typedef void (*rtems_monitor_object_dump_fn)(void *, boolean);
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
rtems_object_type_t type;
|
rtems_monitor_object_type_t type;
|
||||||
void *object_information;
|
void *object_information;
|
||||||
int size; /* of canonical object */
|
int size; /* of canonical object */
|
||||||
rtems_monitor_object_next_fn next;
|
rtems_monitor_object_next_fn next;
|
||||||
@@ -354,8 +358,8 @@ unsigned32 rtems_monitor_dump_events(rtems_event_set events);
|
|||||||
unsigned32 rtems_monitor_dump_notepad(unsigned32 *notepad);
|
unsigned32 rtems_monitor_dump_notepad(unsigned32 *notepad);
|
||||||
|
|
||||||
/* object.c */
|
/* object.c */
|
||||||
rtems_id rtems_monitor_id_fixup(rtems_id, unsigned32, rtems_object_type_t);
|
rtems_id rtems_monitor_id_fixup(rtems_id, unsigned32, rtems_monitor_object_type_t);
|
||||||
rtems_id rtems_monitor_object_canonical_get(rtems_object_type_t, rtems_id, void *, unsigned32 *size_p);
|
rtems_id rtems_monitor_object_canonical_get(rtems_monitor_object_type_t, rtems_id, void *, unsigned32 *size_p);
|
||||||
rtems_id rtems_monitor_object_canonical_next(rtems_monitor_object_info_t *, rtems_id, void *);
|
rtems_id rtems_monitor_object_canonical_next(rtems_monitor_object_info_t *, rtems_id, void *);
|
||||||
void *rtems_monitor_object_next(void *, void *, rtems_id, rtems_id *);
|
void *rtems_monitor_object_next(void *, void *, rtems_id, rtems_id *);
|
||||||
rtems_id rtems_monitor_object_canonical(rtems_id, void *);
|
rtems_id rtems_monitor_object_canonical(rtems_id, void *);
|
||||||
|
|||||||
Reference in New Issue
Block a user