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.
|
||||
@@ -54,7 +54,7 @@ rtems_monitor_dname_next(
|
||||
)
|
||||
{
|
||||
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;
|
||||
|
||||
/* XXX should we be using _IO_Number_of_devices */
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* @(#)itask.c 1.4 - 95/08/02
|
||||
* @(#)itask.c 1.6 - 96/01/03
|
||||
*
|
||||
*
|
||||
* RTEMS Monitor init task support
|
||||
* RTEMS Monitor init task support
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
/*
|
||||
* @(#)manager.c 1.2 - 95/07/31
|
||||
* @(#)manager.c 1.4 - 96/01/03
|
||||
*
|
||||
*
|
||||
* RTEMS Monitor "manager" support.
|
||||
* Used to traverse object (chain) lists and print them out.
|
||||
* RTEMS Monitor "manager" support.
|
||||
* Used to traverse object (chain) lists and print them out.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
@@ -43,7 +44,7 @@ rtems_monitor_manager_next(
|
||||
{
|
||||
copy = (rtems_monitor_generic_t *) canonical;
|
||||
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:
|
||||
|
||||
@@ -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"
|
||||
" extension -- user extensions\n"
|
||||
" driver -- show information about named drivers\n"
|
||||
" dname -- show information about named drivers\n"
|
||||
" object -- generic object information\n"
|
||||
" node -- specify default node for commands that take id's\n"
|
||||
#ifdef CPU_INVOKE_DEBUGGER
|
||||
@@ -95,21 +96,21 @@ rtems_monitor_command_entry_t rtems_monitor_commands[] = {
|
||||
" Show the system configuration.\n",
|
||||
0,
|
||||
rtems_monitor_object_cmd,
|
||||
RTEMS_OBJECT_CONFIG,
|
||||
RTEMS_MONITOR_OBJECT_CONFIG,
|
||||
},
|
||||
{ "itask",
|
||||
"itask\n"
|
||||
" List init tasks for the system\n",
|
||||
0,
|
||||
rtems_monitor_object_cmd,
|
||||
RTEMS_OBJECT_INIT_TASK,
|
||||
RTEMS_MONITOR_OBJECT_INIT_TASK,
|
||||
},
|
||||
{ "mpci",
|
||||
"mpci\n"
|
||||
" Show the MPCI system configuration, if configured.\n",
|
||||
0,
|
||||
rtems_monitor_object_cmd,
|
||||
RTEMS_OBJECT_MPCI,
|
||||
RTEMS_MONITOR_OBJECT_MPCI,
|
||||
},
|
||||
{ "pause",
|
||||
"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",
|
||||
0,
|
||||
rtems_monitor_object_cmd,
|
||||
RTEMS_OBJECT_EXTENSION,
|
||||
RTEMS_MONITOR_OBJECT_EXTENSION,
|
||||
},
|
||||
{ "task",
|
||||
"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",
|
||||
0,
|
||||
rtems_monitor_object_cmd,
|
||||
RTEMS_OBJECT_TASK,
|
||||
RTEMS_MONITOR_OBJECT_TASK,
|
||||
},
|
||||
{ "queue",
|
||||
"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",
|
||||
0,
|
||||
rtems_monitor_object_cmd,
|
||||
RTEMS_OBJECT_QUEUE,
|
||||
RTEMS_MONITOR_OBJECT_QUEUE,
|
||||
},
|
||||
{ "object",
|
||||
"object [id [id ...] ]\n"
|
||||
@@ -180,21 +181,21 @@ rtems_monitor_command_entry_t rtems_monitor_commands[] = {
|
||||
" (which may normally be defaulted)\n",
|
||||
0,
|
||||
rtems_monitor_object_cmd,
|
||||
RTEMS_OBJECT_INVALID,
|
||||
RTEMS_MONITOR_OBJECT_INVALID,
|
||||
},
|
||||
{ "driver",
|
||||
"driver [ major [ major ... ] ]\n"
|
||||
" Display the RTEMS device driver table.\n",
|
||||
0,
|
||||
rtems_monitor_object_cmd,
|
||||
RTEMS_OBJECT_DRIVER,
|
||||
RTEMS_MONITOR_OBJECT_DRIVER,
|
||||
},
|
||||
{ "dname",
|
||||
"dname\n"
|
||||
" Displays information about named drivers.\n",
|
||||
0,
|
||||
rtems_monitor_object_cmd,
|
||||
RTEMS_OBJECT_DNAME,
|
||||
RTEMS_MONITOR_OBJECT_DNAME,
|
||||
},
|
||||
{ "exit",
|
||||
"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.
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
rtems_monitor_object_info_t rtems_monitor_object_info[] =
|
||||
{
|
||||
{ RTEMS_OBJECT_CONFIG,
|
||||
{ RTEMS_MONITOR_OBJECT_CONFIG,
|
||||
(void *) 0,
|
||||
sizeof(rtems_monitor_config_t),
|
||||
(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_fn) rtems_monitor_config_dump,
|
||||
},
|
||||
{ RTEMS_OBJECT_MPCI,
|
||||
{ RTEMS_MONITOR_OBJECT_MPCI,
|
||||
(void *) 0,
|
||||
sizeof(rtems_monitor_mpci_t),
|
||||
(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_fn) rtems_monitor_mpci_dump,
|
||||
},
|
||||
{ RTEMS_OBJECT_INIT_TASK,
|
||||
{ RTEMS_MONITOR_OBJECT_INIT_TASK,
|
||||
(void *) 0,
|
||||
sizeof(rtems_monitor_init_task_t),
|
||||
(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_fn) rtems_monitor_init_task_dump,
|
||||
},
|
||||
{ RTEMS_OBJECT_TASK,
|
||||
{ RTEMS_MONITOR_OBJECT_TASK,
|
||||
(void *) &_RTEMS_tasks_Information,
|
||||
sizeof(rtems_monitor_task_t),
|
||||
(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_fn) rtems_monitor_task_dump,
|
||||
},
|
||||
{ RTEMS_OBJECT_QUEUE,
|
||||
{ RTEMS_MONITOR_OBJECT_QUEUE,
|
||||
(void *) &_Message_queue_Information,
|
||||
sizeof(rtems_monitor_queue_t),
|
||||
(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_fn) rtems_monitor_queue_dump,
|
||||
},
|
||||
{ RTEMS_OBJECT_EXTENSION,
|
||||
{ RTEMS_MONITOR_OBJECT_EXTENSION,
|
||||
(void *) &_Extension_Information,
|
||||
sizeof(rtems_monitor_extension_t),
|
||||
(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_fn) rtems_monitor_extension_dump,
|
||||
},
|
||||
{ RTEMS_OBJECT_DRIVER,
|
||||
{ RTEMS_MONITOR_OBJECT_DRIVER,
|
||||
(void *) 0,
|
||||
sizeof(rtems_monitor_driver_t),
|
||||
(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_fn) rtems_monitor_driver_dump,
|
||||
},
|
||||
{ RTEMS_OBJECT_DNAME,
|
||||
{ RTEMS_MONITOR_OBJECT_DNAME,
|
||||
/* XXX now that the driver name table is allocated from the */
|
||||
/* XXX Workspace, this does not work */
|
||||
(void *) 0,
|
||||
@@ -113,7 +113,7 @@ rtems_id
|
||||
rtems_monitor_id_fixup(
|
||||
rtems_id id,
|
||||
unsigned32 default_node,
|
||||
rtems_object_type_t type
|
||||
rtems_monitor_object_type_t type
|
||||
)
|
||||
{
|
||||
unsigned32 node;
|
||||
@@ -121,19 +121,10 @@ rtems_monitor_id_fixup(
|
||||
node = rtems_get_node(id);
|
||||
if (node == 0)
|
||||
{
|
||||
#if 0
|
||||
/* XXX Uncomment this when types are added to id's */
|
||||
if (rtems_get_class(id) != OBJECTS_NO_CLASS)
|
||||
type = rtems_get_class(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;
|
||||
}
|
||||
@@ -141,7 +132,7 @@ rtems_monitor_id_fixup(
|
||||
|
||||
rtems_monitor_object_info_t *
|
||||
rtems_monitor_object_lookup(
|
||||
rtems_object_type_t type
|
||||
rtems_monitor_object_type_t type
|
||||
)
|
||||
{
|
||||
rtems_monitor_object_info_t *p;
|
||||
@@ -157,7 +148,7 @@ rtems_monitor_object_lookup(
|
||||
|
||||
rtems_id
|
||||
rtems_monitor_object_canonical_next_remote(
|
||||
rtems_object_type_t type,
|
||||
rtems_monitor_object_type_t type,
|
||||
rtems_id id,
|
||||
void *canonical
|
||||
)
|
||||
@@ -233,7 +224,7 @@ rtems_monitor_object_canonical_next(
|
||||
|
||||
rtems_id
|
||||
rtems_monitor_object_canonical_get(
|
||||
rtems_object_type_t type,
|
||||
rtems_monitor_object_type_t type,
|
||||
rtems_id id,
|
||||
void *canonical,
|
||||
unsigned32 *size_p
|
||||
@@ -299,7 +290,7 @@ rtems_monitor_object_dump_all(
|
||||
rtems_id next_id;
|
||||
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(
|
||||
info,
|
||||
@@ -320,14 +311,14 @@ rtems_monitor_object_cmd(
|
||||
{
|
||||
int arg;
|
||||
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? */
|
||||
type = (rtems_object_type_t) command_arg;
|
||||
type = (rtems_monitor_object_type_t) command_arg;
|
||||
|
||||
if (argc == 1)
|
||||
{
|
||||
if (type == RTEMS_OBJECT_INVALID)
|
||||
if (type == RTEMS_MONITOR_OBJECT_INVALID)
|
||||
{
|
||||
printf("A type must be specified to \"dump all\"\n");
|
||||
goto done;
|
||||
@@ -344,16 +335,15 @@ rtems_monitor_object_cmd(
|
||||
else
|
||||
{
|
||||
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;
|
||||
|
||||
for (arg=1; argv[arg]; arg++)
|
||||
{
|
||||
id = (rtems_id) strtoul(argv[arg], 0, 0);
|
||||
id = rtems_monitor_id_fixup(id, default_node, type);
|
||||
#if 0
|
||||
type = rtems_get_type(id);
|
||||
#endif
|
||||
type = (rtems_monitor_object_type_t) rtems_get_class(id);
|
||||
|
||||
/*
|
||||
* Allow the item type to change in the middle
|
||||
* of the command. If the type changes, then
|
||||
@@ -363,15 +353,18 @@ rtems_monitor_object_cmd(
|
||||
{
|
||||
info = rtems_monitor_object_lookup(type);
|
||||
if (info == 0)
|
||||
{
|
||||
not_found: printf("Invalid or unsupported type %d\n", type);
|
||||
goto done;
|
||||
}
|
||||
goto not_found;
|
||||
|
||||
if (info->dump_header)
|
||||
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);
|
||||
|
||||
default_node = rtems_get_node(id);
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* @(#)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
|
||||
* running on other nodes)
|
||||
*
|
||||
* $Id$
|
||||
@@ -144,11 +144,11 @@ rtems_monitor_server_task(
|
||||
{
|
||||
case RTEMS_MONITOR_SERVER_CANONICAL:
|
||||
{
|
||||
rtems_object_type_t object_type;
|
||||
rtems_monitor_object_type_t object_type;
|
||||
rtems_id 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;
|
||||
next_id = rtems_monitor_object_canonical_get(object_type,
|
||||
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 {
|
||||
RTEMS_OBJECT_INVALID = 0,
|
||||
RTEMS_OBJECT_TASK = 1,
|
||||
RTEMS_OBJECT_EXTENSION = 2,
|
||||
RTEMS_OBJECT_QUEUE = 3,
|
||||
RTEMS_OBJECT_SEMAPHORE = 4,
|
||||
RTEMS_OBJECT_DRIVER = 5,
|
||||
RTEMS_OBJECT_DNAME = 6,
|
||||
RTEMS_OBJECT_CONFIG = 7,
|
||||
RTEMS_OBJECT_INIT_TASK = 8,
|
||||
RTEMS_OBJECT_MPCI = 9,
|
||||
RTEMS_OBJECT_PARTITION = 10,
|
||||
RTEMS_OBJECT_REGION = 11,
|
||||
RTEMS_OBJECT_PORT = 12,
|
||||
RTEMS_OBJECT_SYMBOL = 13,
|
||||
} rtems_object_type_t;
|
||||
RTEMS_MONITOR_OBJECT_INVALID = OBJECTS_NO_CLASS,
|
||||
RTEMS_MONITOR_OBJECT_TASK = OBJECTS_RTEMS_TASKS,
|
||||
RTEMS_MONITOR_OBJECT_EXTENSION = OBJECTS_RTEMS_EXTENSIONS,
|
||||
RTEMS_MONITOR_OBJECT_QUEUE = OBJECTS_RTEMS_MESSAGE_QUEUES,
|
||||
RTEMS_MONITOR_OBJECT_SEMAPHORE = OBJECTS_RTEMS_SEMAPHORES,
|
||||
RTEMS_MONITOR_OBJECT_PARTITION = OBJECTS_RTEMS_PARTITIONS,
|
||||
RTEMS_MONITOR_OBJECT_REGION = OBJECTS_RTEMS_REGIONS,
|
||||
RTEMS_MONITOR_OBJECT_PORT = OBJECTS_RTEMS_PORTS,
|
||||
|
||||
/* following monitor objects are not known to RTEMS, but
|
||||
* we like to have "types" for them anyway */
|
||||
|
||||
RTEMS_MONITOR_OBJECT_DRIVER = OBJECTS_CLASSES_LAST+1,
|
||||
RTEMS_MONITOR_OBJECT_DNAME,
|
||||
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
|
||||
@@ -302,7 +306,7 @@ typedef void (*rtems_monitor_object_dump_header_fn)(boolean);
|
||||
typedef void (*rtems_monitor_object_dump_fn)(void *, boolean);
|
||||
|
||||
typedef struct {
|
||||
rtems_object_type_t type;
|
||||
rtems_monitor_object_type_t type;
|
||||
void *object_information;
|
||||
int size; /* of canonical object */
|
||||
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);
|
||||
|
||||
/* object.c */
|
||||
rtems_id rtems_monitor_id_fixup(rtems_id, unsigned32, rtems_object_type_t);
|
||||
rtems_id rtems_monitor_object_canonical_get(rtems_object_type_t, rtems_id, void *, unsigned32 *size_p);
|
||||
rtems_id rtems_monitor_id_fixup(rtems_id, unsigned32, rtems_monitor_object_type_t);
|
||||
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 *);
|
||||
void *rtems_monitor_object_next(void *, void *, rtems_id, rtems_id *);
|
||||
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.
|
||||
@@ -54,7 +54,7 @@ rtems_monitor_dname_next(
|
||||
)
|
||||
{
|
||||
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;
|
||||
|
||||
/* XXX should we be using _IO_Number_of_devices */
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* @(#)itask.c 1.4 - 95/08/02
|
||||
* @(#)itask.c 1.6 - 96/01/03
|
||||
*
|
||||
*
|
||||
* RTEMS Monitor init task support
|
||||
* RTEMS Monitor init task support
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
/*
|
||||
* @(#)manager.c 1.2 - 95/07/31
|
||||
* @(#)manager.c 1.4 - 96/01/03
|
||||
*
|
||||
*
|
||||
* RTEMS Monitor "manager" support.
|
||||
* Used to traverse object (chain) lists and print them out.
|
||||
* RTEMS Monitor "manager" support.
|
||||
* Used to traverse object (chain) lists and print them out.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
@@ -43,7 +44,7 @@ rtems_monitor_manager_next(
|
||||
{
|
||||
copy = (rtems_monitor_generic_t *) canonical;
|
||||
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:
|
||||
|
||||
@@ -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"
|
||||
" extension -- user extensions\n"
|
||||
" driver -- show information about named drivers\n"
|
||||
" dname -- show information about named drivers\n"
|
||||
" object -- generic object information\n"
|
||||
" node -- specify default node for commands that take id's\n"
|
||||
#ifdef CPU_INVOKE_DEBUGGER
|
||||
@@ -95,21 +96,21 @@ rtems_monitor_command_entry_t rtems_monitor_commands[] = {
|
||||
" Show the system configuration.\n",
|
||||
0,
|
||||
rtems_monitor_object_cmd,
|
||||
RTEMS_OBJECT_CONFIG,
|
||||
RTEMS_MONITOR_OBJECT_CONFIG,
|
||||
},
|
||||
{ "itask",
|
||||
"itask\n"
|
||||
" List init tasks for the system\n",
|
||||
0,
|
||||
rtems_monitor_object_cmd,
|
||||
RTEMS_OBJECT_INIT_TASK,
|
||||
RTEMS_MONITOR_OBJECT_INIT_TASK,
|
||||
},
|
||||
{ "mpci",
|
||||
"mpci\n"
|
||||
" Show the MPCI system configuration, if configured.\n",
|
||||
0,
|
||||
rtems_monitor_object_cmd,
|
||||
RTEMS_OBJECT_MPCI,
|
||||
RTEMS_MONITOR_OBJECT_MPCI,
|
||||
},
|
||||
{ "pause",
|
||||
"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",
|
||||
0,
|
||||
rtems_monitor_object_cmd,
|
||||
RTEMS_OBJECT_EXTENSION,
|
||||
RTEMS_MONITOR_OBJECT_EXTENSION,
|
||||
},
|
||||
{ "task",
|
||||
"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",
|
||||
0,
|
||||
rtems_monitor_object_cmd,
|
||||
RTEMS_OBJECT_TASK,
|
||||
RTEMS_MONITOR_OBJECT_TASK,
|
||||
},
|
||||
{ "queue",
|
||||
"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",
|
||||
0,
|
||||
rtems_monitor_object_cmd,
|
||||
RTEMS_OBJECT_QUEUE,
|
||||
RTEMS_MONITOR_OBJECT_QUEUE,
|
||||
},
|
||||
{ "object",
|
||||
"object [id [id ...] ]\n"
|
||||
@@ -180,21 +181,21 @@ rtems_monitor_command_entry_t rtems_monitor_commands[] = {
|
||||
" (which may normally be defaulted)\n",
|
||||
0,
|
||||
rtems_monitor_object_cmd,
|
||||
RTEMS_OBJECT_INVALID,
|
||||
RTEMS_MONITOR_OBJECT_INVALID,
|
||||
},
|
||||
{ "driver",
|
||||
"driver [ major [ major ... ] ]\n"
|
||||
" Display the RTEMS device driver table.\n",
|
||||
0,
|
||||
rtems_monitor_object_cmd,
|
||||
RTEMS_OBJECT_DRIVER,
|
||||
RTEMS_MONITOR_OBJECT_DRIVER,
|
||||
},
|
||||
{ "dname",
|
||||
"dname\n"
|
||||
" Displays information about named drivers.\n",
|
||||
0,
|
||||
rtems_monitor_object_cmd,
|
||||
RTEMS_OBJECT_DNAME,
|
||||
RTEMS_MONITOR_OBJECT_DNAME,
|
||||
},
|
||||
{ "exit",
|
||||
"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.
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
rtems_monitor_object_info_t rtems_monitor_object_info[] =
|
||||
{
|
||||
{ RTEMS_OBJECT_CONFIG,
|
||||
{ RTEMS_MONITOR_OBJECT_CONFIG,
|
||||
(void *) 0,
|
||||
sizeof(rtems_monitor_config_t),
|
||||
(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_fn) rtems_monitor_config_dump,
|
||||
},
|
||||
{ RTEMS_OBJECT_MPCI,
|
||||
{ RTEMS_MONITOR_OBJECT_MPCI,
|
||||
(void *) 0,
|
||||
sizeof(rtems_monitor_mpci_t),
|
||||
(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_fn) rtems_monitor_mpci_dump,
|
||||
},
|
||||
{ RTEMS_OBJECT_INIT_TASK,
|
||||
{ RTEMS_MONITOR_OBJECT_INIT_TASK,
|
||||
(void *) 0,
|
||||
sizeof(rtems_monitor_init_task_t),
|
||||
(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_fn) rtems_monitor_init_task_dump,
|
||||
},
|
||||
{ RTEMS_OBJECT_TASK,
|
||||
{ RTEMS_MONITOR_OBJECT_TASK,
|
||||
(void *) &_RTEMS_tasks_Information,
|
||||
sizeof(rtems_monitor_task_t),
|
||||
(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_fn) rtems_monitor_task_dump,
|
||||
},
|
||||
{ RTEMS_OBJECT_QUEUE,
|
||||
{ RTEMS_MONITOR_OBJECT_QUEUE,
|
||||
(void *) &_Message_queue_Information,
|
||||
sizeof(rtems_monitor_queue_t),
|
||||
(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_fn) rtems_monitor_queue_dump,
|
||||
},
|
||||
{ RTEMS_OBJECT_EXTENSION,
|
||||
{ RTEMS_MONITOR_OBJECT_EXTENSION,
|
||||
(void *) &_Extension_Information,
|
||||
sizeof(rtems_monitor_extension_t),
|
||||
(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_fn) rtems_monitor_extension_dump,
|
||||
},
|
||||
{ RTEMS_OBJECT_DRIVER,
|
||||
{ RTEMS_MONITOR_OBJECT_DRIVER,
|
||||
(void *) 0,
|
||||
sizeof(rtems_monitor_driver_t),
|
||||
(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_fn) rtems_monitor_driver_dump,
|
||||
},
|
||||
{ RTEMS_OBJECT_DNAME,
|
||||
{ RTEMS_MONITOR_OBJECT_DNAME,
|
||||
/* XXX now that the driver name table is allocated from the */
|
||||
/* XXX Workspace, this does not work */
|
||||
(void *) 0,
|
||||
@@ -113,7 +113,7 @@ rtems_id
|
||||
rtems_monitor_id_fixup(
|
||||
rtems_id id,
|
||||
unsigned32 default_node,
|
||||
rtems_object_type_t type
|
||||
rtems_monitor_object_type_t type
|
||||
)
|
||||
{
|
||||
unsigned32 node;
|
||||
@@ -121,19 +121,10 @@ rtems_monitor_id_fixup(
|
||||
node = rtems_get_node(id);
|
||||
if (node == 0)
|
||||
{
|
||||
#if 0
|
||||
/* XXX Uncomment this when types are added to id's */
|
||||
if (rtems_get_class(id) != OBJECTS_NO_CLASS)
|
||||
type = rtems_get_class(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;
|
||||
}
|
||||
@@ -141,7 +132,7 @@ rtems_monitor_id_fixup(
|
||||
|
||||
rtems_monitor_object_info_t *
|
||||
rtems_monitor_object_lookup(
|
||||
rtems_object_type_t type
|
||||
rtems_monitor_object_type_t type
|
||||
)
|
||||
{
|
||||
rtems_monitor_object_info_t *p;
|
||||
@@ -157,7 +148,7 @@ rtems_monitor_object_lookup(
|
||||
|
||||
rtems_id
|
||||
rtems_monitor_object_canonical_next_remote(
|
||||
rtems_object_type_t type,
|
||||
rtems_monitor_object_type_t type,
|
||||
rtems_id id,
|
||||
void *canonical
|
||||
)
|
||||
@@ -233,7 +224,7 @@ rtems_monitor_object_canonical_next(
|
||||
|
||||
rtems_id
|
||||
rtems_monitor_object_canonical_get(
|
||||
rtems_object_type_t type,
|
||||
rtems_monitor_object_type_t type,
|
||||
rtems_id id,
|
||||
void *canonical,
|
||||
unsigned32 *size_p
|
||||
@@ -299,7 +290,7 @@ rtems_monitor_object_dump_all(
|
||||
rtems_id next_id;
|
||||
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(
|
||||
info,
|
||||
@@ -320,14 +311,14 @@ rtems_monitor_object_cmd(
|
||||
{
|
||||
int arg;
|
||||
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? */
|
||||
type = (rtems_object_type_t) command_arg;
|
||||
type = (rtems_monitor_object_type_t) command_arg;
|
||||
|
||||
if (argc == 1)
|
||||
{
|
||||
if (type == RTEMS_OBJECT_INVALID)
|
||||
if (type == RTEMS_MONITOR_OBJECT_INVALID)
|
||||
{
|
||||
printf("A type must be specified to \"dump all\"\n");
|
||||
goto done;
|
||||
@@ -344,16 +335,15 @@ rtems_monitor_object_cmd(
|
||||
else
|
||||
{
|
||||
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;
|
||||
|
||||
for (arg=1; argv[arg]; arg++)
|
||||
{
|
||||
id = (rtems_id) strtoul(argv[arg], 0, 0);
|
||||
id = rtems_monitor_id_fixup(id, default_node, type);
|
||||
#if 0
|
||||
type = rtems_get_type(id);
|
||||
#endif
|
||||
type = (rtems_monitor_object_type_t) rtems_get_class(id);
|
||||
|
||||
/*
|
||||
* Allow the item type to change in the middle
|
||||
* of the command. If the type changes, then
|
||||
@@ -363,15 +353,18 @@ rtems_monitor_object_cmd(
|
||||
{
|
||||
info = rtems_monitor_object_lookup(type);
|
||||
if (info == 0)
|
||||
{
|
||||
not_found: printf("Invalid or unsupported type %d\n", type);
|
||||
goto done;
|
||||
}
|
||||
goto not_found;
|
||||
|
||||
if (info->dump_header)
|
||||
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);
|
||||
|
||||
default_node = rtems_get_node(id);
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* @(#)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
|
||||
* running on other nodes)
|
||||
*
|
||||
* $Id$
|
||||
@@ -144,11 +144,11 @@ rtems_monitor_server_task(
|
||||
{
|
||||
case RTEMS_MONITOR_SERVER_CANONICAL:
|
||||
{
|
||||
rtems_object_type_t object_type;
|
||||
rtems_monitor_object_type_t object_type;
|
||||
rtems_id 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;
|
||||
next_id = rtems_monitor_object_canonical_get(object_type,
|
||||
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 {
|
||||
RTEMS_OBJECT_INVALID = 0,
|
||||
RTEMS_OBJECT_TASK = 1,
|
||||
RTEMS_OBJECT_EXTENSION = 2,
|
||||
RTEMS_OBJECT_QUEUE = 3,
|
||||
RTEMS_OBJECT_SEMAPHORE = 4,
|
||||
RTEMS_OBJECT_DRIVER = 5,
|
||||
RTEMS_OBJECT_DNAME = 6,
|
||||
RTEMS_OBJECT_CONFIG = 7,
|
||||
RTEMS_OBJECT_INIT_TASK = 8,
|
||||
RTEMS_OBJECT_MPCI = 9,
|
||||
RTEMS_OBJECT_PARTITION = 10,
|
||||
RTEMS_OBJECT_REGION = 11,
|
||||
RTEMS_OBJECT_PORT = 12,
|
||||
RTEMS_OBJECT_SYMBOL = 13,
|
||||
} rtems_object_type_t;
|
||||
RTEMS_MONITOR_OBJECT_INVALID = OBJECTS_NO_CLASS,
|
||||
RTEMS_MONITOR_OBJECT_TASK = OBJECTS_RTEMS_TASKS,
|
||||
RTEMS_MONITOR_OBJECT_EXTENSION = OBJECTS_RTEMS_EXTENSIONS,
|
||||
RTEMS_MONITOR_OBJECT_QUEUE = OBJECTS_RTEMS_MESSAGE_QUEUES,
|
||||
RTEMS_MONITOR_OBJECT_SEMAPHORE = OBJECTS_RTEMS_SEMAPHORES,
|
||||
RTEMS_MONITOR_OBJECT_PARTITION = OBJECTS_RTEMS_PARTITIONS,
|
||||
RTEMS_MONITOR_OBJECT_REGION = OBJECTS_RTEMS_REGIONS,
|
||||
RTEMS_MONITOR_OBJECT_PORT = OBJECTS_RTEMS_PORTS,
|
||||
|
||||
/* following monitor objects are not known to RTEMS, but
|
||||
* we like to have "types" for them anyway */
|
||||
|
||||
RTEMS_MONITOR_OBJECT_DRIVER = OBJECTS_CLASSES_LAST+1,
|
||||
RTEMS_MONITOR_OBJECT_DNAME,
|
||||
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
|
||||
@@ -302,7 +306,7 @@ typedef void (*rtems_monitor_object_dump_header_fn)(boolean);
|
||||
typedef void (*rtems_monitor_object_dump_fn)(void *, boolean);
|
||||
|
||||
typedef struct {
|
||||
rtems_object_type_t type;
|
||||
rtems_monitor_object_type_t type;
|
||||
void *object_information;
|
||||
int size; /* of canonical object */
|
||||
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);
|
||||
|
||||
/* object.c */
|
||||
rtems_id rtems_monitor_id_fixup(rtems_id, unsigned32, rtems_object_type_t);
|
||||
rtems_id rtems_monitor_object_canonical_get(rtems_object_type_t, rtems_id, void *, unsigned32 *size_p);
|
||||
rtems_id rtems_monitor_id_fixup(rtems_id, unsigned32, rtems_monitor_object_type_t);
|
||||
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 *);
|
||||
void *rtems_monitor_object_next(void *, void *, rtems_id, rtems_id *);
|
||||
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.
|
||||
@@ -54,7 +54,7 @@ rtems_monitor_dname_next(
|
||||
)
|
||||
{
|
||||
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;
|
||||
|
||||
/* XXX should we be using _IO_Number_of_devices */
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* @(#)itask.c 1.4 - 95/08/02
|
||||
* @(#)itask.c 1.6 - 96/01/03
|
||||
*
|
||||
*
|
||||
* RTEMS Monitor init task support
|
||||
* RTEMS Monitor init task support
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
/*
|
||||
* @(#)manager.c 1.2 - 95/07/31
|
||||
* @(#)manager.c 1.4 - 96/01/03
|
||||
*
|
||||
*
|
||||
* RTEMS Monitor "manager" support.
|
||||
* Used to traverse object (chain) lists and print them out.
|
||||
* RTEMS Monitor "manager" support.
|
||||
* Used to traverse object (chain) lists and print them out.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
@@ -43,7 +44,7 @@ rtems_monitor_manager_next(
|
||||
{
|
||||
copy = (rtems_monitor_generic_t *) canonical;
|
||||
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:
|
||||
|
||||
@@ -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"
|
||||
" extension -- user extensions\n"
|
||||
" driver -- show information about named drivers\n"
|
||||
" dname -- show information about named drivers\n"
|
||||
" object -- generic object information\n"
|
||||
" node -- specify default node for commands that take id's\n"
|
||||
#ifdef CPU_INVOKE_DEBUGGER
|
||||
@@ -95,21 +96,21 @@ rtems_monitor_command_entry_t rtems_monitor_commands[] = {
|
||||
" Show the system configuration.\n",
|
||||
0,
|
||||
rtems_monitor_object_cmd,
|
||||
RTEMS_OBJECT_CONFIG,
|
||||
RTEMS_MONITOR_OBJECT_CONFIG,
|
||||
},
|
||||
{ "itask",
|
||||
"itask\n"
|
||||
" List init tasks for the system\n",
|
||||
0,
|
||||
rtems_monitor_object_cmd,
|
||||
RTEMS_OBJECT_INIT_TASK,
|
||||
RTEMS_MONITOR_OBJECT_INIT_TASK,
|
||||
},
|
||||
{ "mpci",
|
||||
"mpci\n"
|
||||
" Show the MPCI system configuration, if configured.\n",
|
||||
0,
|
||||
rtems_monitor_object_cmd,
|
||||
RTEMS_OBJECT_MPCI,
|
||||
RTEMS_MONITOR_OBJECT_MPCI,
|
||||
},
|
||||
{ "pause",
|
||||
"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",
|
||||
0,
|
||||
rtems_monitor_object_cmd,
|
||||
RTEMS_OBJECT_EXTENSION,
|
||||
RTEMS_MONITOR_OBJECT_EXTENSION,
|
||||
},
|
||||
{ "task",
|
||||
"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",
|
||||
0,
|
||||
rtems_monitor_object_cmd,
|
||||
RTEMS_OBJECT_TASK,
|
||||
RTEMS_MONITOR_OBJECT_TASK,
|
||||
},
|
||||
{ "queue",
|
||||
"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",
|
||||
0,
|
||||
rtems_monitor_object_cmd,
|
||||
RTEMS_OBJECT_QUEUE,
|
||||
RTEMS_MONITOR_OBJECT_QUEUE,
|
||||
},
|
||||
{ "object",
|
||||
"object [id [id ...] ]\n"
|
||||
@@ -180,21 +181,21 @@ rtems_monitor_command_entry_t rtems_monitor_commands[] = {
|
||||
" (which may normally be defaulted)\n",
|
||||
0,
|
||||
rtems_monitor_object_cmd,
|
||||
RTEMS_OBJECT_INVALID,
|
||||
RTEMS_MONITOR_OBJECT_INVALID,
|
||||
},
|
||||
{ "driver",
|
||||
"driver [ major [ major ... ] ]\n"
|
||||
" Display the RTEMS device driver table.\n",
|
||||
0,
|
||||
rtems_monitor_object_cmd,
|
||||
RTEMS_OBJECT_DRIVER,
|
||||
RTEMS_MONITOR_OBJECT_DRIVER,
|
||||
},
|
||||
{ "dname",
|
||||
"dname\n"
|
||||
" Displays information about named drivers.\n",
|
||||
0,
|
||||
rtems_monitor_object_cmd,
|
||||
RTEMS_OBJECT_DNAME,
|
||||
RTEMS_MONITOR_OBJECT_DNAME,
|
||||
},
|
||||
{ "exit",
|
||||
"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.
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
rtems_monitor_object_info_t rtems_monitor_object_info[] =
|
||||
{
|
||||
{ RTEMS_OBJECT_CONFIG,
|
||||
{ RTEMS_MONITOR_OBJECT_CONFIG,
|
||||
(void *) 0,
|
||||
sizeof(rtems_monitor_config_t),
|
||||
(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_fn) rtems_monitor_config_dump,
|
||||
},
|
||||
{ RTEMS_OBJECT_MPCI,
|
||||
{ RTEMS_MONITOR_OBJECT_MPCI,
|
||||
(void *) 0,
|
||||
sizeof(rtems_monitor_mpci_t),
|
||||
(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_fn) rtems_monitor_mpci_dump,
|
||||
},
|
||||
{ RTEMS_OBJECT_INIT_TASK,
|
||||
{ RTEMS_MONITOR_OBJECT_INIT_TASK,
|
||||
(void *) 0,
|
||||
sizeof(rtems_monitor_init_task_t),
|
||||
(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_fn) rtems_monitor_init_task_dump,
|
||||
},
|
||||
{ RTEMS_OBJECT_TASK,
|
||||
{ RTEMS_MONITOR_OBJECT_TASK,
|
||||
(void *) &_RTEMS_tasks_Information,
|
||||
sizeof(rtems_monitor_task_t),
|
||||
(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_fn) rtems_monitor_task_dump,
|
||||
},
|
||||
{ RTEMS_OBJECT_QUEUE,
|
||||
{ RTEMS_MONITOR_OBJECT_QUEUE,
|
||||
(void *) &_Message_queue_Information,
|
||||
sizeof(rtems_monitor_queue_t),
|
||||
(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_fn) rtems_monitor_queue_dump,
|
||||
},
|
||||
{ RTEMS_OBJECT_EXTENSION,
|
||||
{ RTEMS_MONITOR_OBJECT_EXTENSION,
|
||||
(void *) &_Extension_Information,
|
||||
sizeof(rtems_monitor_extension_t),
|
||||
(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_fn) rtems_monitor_extension_dump,
|
||||
},
|
||||
{ RTEMS_OBJECT_DRIVER,
|
||||
{ RTEMS_MONITOR_OBJECT_DRIVER,
|
||||
(void *) 0,
|
||||
sizeof(rtems_monitor_driver_t),
|
||||
(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_fn) rtems_monitor_driver_dump,
|
||||
},
|
||||
{ RTEMS_OBJECT_DNAME,
|
||||
{ RTEMS_MONITOR_OBJECT_DNAME,
|
||||
/* XXX now that the driver name table is allocated from the */
|
||||
/* XXX Workspace, this does not work */
|
||||
(void *) 0,
|
||||
@@ -113,7 +113,7 @@ rtems_id
|
||||
rtems_monitor_id_fixup(
|
||||
rtems_id id,
|
||||
unsigned32 default_node,
|
||||
rtems_object_type_t type
|
||||
rtems_monitor_object_type_t type
|
||||
)
|
||||
{
|
||||
unsigned32 node;
|
||||
@@ -121,19 +121,10 @@ rtems_monitor_id_fixup(
|
||||
node = rtems_get_node(id);
|
||||
if (node == 0)
|
||||
{
|
||||
#if 0
|
||||
/* XXX Uncomment this when types are added to id's */
|
||||
if (rtems_get_class(id) != OBJECTS_NO_CLASS)
|
||||
type = rtems_get_class(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;
|
||||
}
|
||||
@@ -141,7 +132,7 @@ rtems_monitor_id_fixup(
|
||||
|
||||
rtems_monitor_object_info_t *
|
||||
rtems_monitor_object_lookup(
|
||||
rtems_object_type_t type
|
||||
rtems_monitor_object_type_t type
|
||||
)
|
||||
{
|
||||
rtems_monitor_object_info_t *p;
|
||||
@@ -157,7 +148,7 @@ rtems_monitor_object_lookup(
|
||||
|
||||
rtems_id
|
||||
rtems_monitor_object_canonical_next_remote(
|
||||
rtems_object_type_t type,
|
||||
rtems_monitor_object_type_t type,
|
||||
rtems_id id,
|
||||
void *canonical
|
||||
)
|
||||
@@ -233,7 +224,7 @@ rtems_monitor_object_canonical_next(
|
||||
|
||||
rtems_id
|
||||
rtems_monitor_object_canonical_get(
|
||||
rtems_object_type_t type,
|
||||
rtems_monitor_object_type_t type,
|
||||
rtems_id id,
|
||||
void *canonical,
|
||||
unsigned32 *size_p
|
||||
@@ -299,7 +290,7 @@ rtems_monitor_object_dump_all(
|
||||
rtems_id next_id;
|
||||
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(
|
||||
info,
|
||||
@@ -320,14 +311,14 @@ rtems_monitor_object_cmd(
|
||||
{
|
||||
int arg;
|
||||
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? */
|
||||
type = (rtems_object_type_t) command_arg;
|
||||
type = (rtems_monitor_object_type_t) command_arg;
|
||||
|
||||
if (argc == 1)
|
||||
{
|
||||
if (type == RTEMS_OBJECT_INVALID)
|
||||
if (type == RTEMS_MONITOR_OBJECT_INVALID)
|
||||
{
|
||||
printf("A type must be specified to \"dump all\"\n");
|
||||
goto done;
|
||||
@@ -344,16 +335,15 @@ rtems_monitor_object_cmd(
|
||||
else
|
||||
{
|
||||
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;
|
||||
|
||||
for (arg=1; argv[arg]; arg++)
|
||||
{
|
||||
id = (rtems_id) strtoul(argv[arg], 0, 0);
|
||||
id = rtems_monitor_id_fixup(id, default_node, type);
|
||||
#if 0
|
||||
type = rtems_get_type(id);
|
||||
#endif
|
||||
type = (rtems_monitor_object_type_t) rtems_get_class(id);
|
||||
|
||||
/*
|
||||
* Allow the item type to change in the middle
|
||||
* of the command. If the type changes, then
|
||||
@@ -363,15 +353,18 @@ rtems_monitor_object_cmd(
|
||||
{
|
||||
info = rtems_monitor_object_lookup(type);
|
||||
if (info == 0)
|
||||
{
|
||||
not_found: printf("Invalid or unsupported type %d\n", type);
|
||||
goto done;
|
||||
}
|
||||
goto not_found;
|
||||
|
||||
if (info->dump_header)
|
||||
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);
|
||||
|
||||
default_node = rtems_get_node(id);
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* @(#)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
|
||||
* running on other nodes)
|
||||
*
|
||||
* $Id$
|
||||
@@ -144,11 +144,11 @@ rtems_monitor_server_task(
|
||||
{
|
||||
case RTEMS_MONITOR_SERVER_CANONICAL:
|
||||
{
|
||||
rtems_object_type_t object_type;
|
||||
rtems_monitor_object_type_t object_type;
|
||||
rtems_id 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;
|
||||
next_id = rtems_monitor_object_canonical_get(object_type,
|
||||
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 {
|
||||
RTEMS_OBJECT_INVALID = 0,
|
||||
RTEMS_OBJECT_TASK = 1,
|
||||
RTEMS_OBJECT_EXTENSION = 2,
|
||||
RTEMS_OBJECT_QUEUE = 3,
|
||||
RTEMS_OBJECT_SEMAPHORE = 4,
|
||||
RTEMS_OBJECT_DRIVER = 5,
|
||||
RTEMS_OBJECT_DNAME = 6,
|
||||
RTEMS_OBJECT_CONFIG = 7,
|
||||
RTEMS_OBJECT_INIT_TASK = 8,
|
||||
RTEMS_OBJECT_MPCI = 9,
|
||||
RTEMS_OBJECT_PARTITION = 10,
|
||||
RTEMS_OBJECT_REGION = 11,
|
||||
RTEMS_OBJECT_PORT = 12,
|
||||
RTEMS_OBJECT_SYMBOL = 13,
|
||||
} rtems_object_type_t;
|
||||
RTEMS_MONITOR_OBJECT_INVALID = OBJECTS_NO_CLASS,
|
||||
RTEMS_MONITOR_OBJECT_TASK = OBJECTS_RTEMS_TASKS,
|
||||
RTEMS_MONITOR_OBJECT_EXTENSION = OBJECTS_RTEMS_EXTENSIONS,
|
||||
RTEMS_MONITOR_OBJECT_QUEUE = OBJECTS_RTEMS_MESSAGE_QUEUES,
|
||||
RTEMS_MONITOR_OBJECT_SEMAPHORE = OBJECTS_RTEMS_SEMAPHORES,
|
||||
RTEMS_MONITOR_OBJECT_PARTITION = OBJECTS_RTEMS_PARTITIONS,
|
||||
RTEMS_MONITOR_OBJECT_REGION = OBJECTS_RTEMS_REGIONS,
|
||||
RTEMS_MONITOR_OBJECT_PORT = OBJECTS_RTEMS_PORTS,
|
||||
|
||||
/* following monitor objects are not known to RTEMS, but
|
||||
* we like to have "types" for them anyway */
|
||||
|
||||
RTEMS_MONITOR_OBJECT_DRIVER = OBJECTS_CLASSES_LAST+1,
|
||||
RTEMS_MONITOR_OBJECT_DNAME,
|
||||
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
|
||||
@@ -302,7 +306,7 @@ typedef void (*rtems_monitor_object_dump_header_fn)(boolean);
|
||||
typedef void (*rtems_monitor_object_dump_fn)(void *, boolean);
|
||||
|
||||
typedef struct {
|
||||
rtems_object_type_t type;
|
||||
rtems_monitor_object_type_t type;
|
||||
void *object_information;
|
||||
int size; /* of canonical object */
|
||||
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);
|
||||
|
||||
/* object.c */
|
||||
rtems_id rtems_monitor_id_fixup(rtems_id, unsigned32, rtems_object_type_t);
|
||||
rtems_id rtems_monitor_object_canonical_get(rtems_object_type_t, rtems_id, void *, unsigned32 *size_p);
|
||||
rtems_id rtems_monitor_id_fixup(rtems_id, unsigned32, rtems_monitor_object_type_t);
|
||||
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 *);
|
||||
void *rtems_monitor_object_next(void *, void *, rtems_id, rtems_id *);
|
||||
rtems_id rtems_monitor_object_canonical(rtems_id, void *);
|
||||
|
||||
Reference in New Issue
Block a user