diff options
Diffstat (limited to 'c/src/lib/libmisc/monitor/mon-manager.c')
-rw-r--r-- | c/src/lib/libmisc/monitor/mon-manager.c | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/c/src/lib/libmisc/monitor/mon-manager.c b/c/src/lib/libmisc/monitor/mon-manager.c new file mode 100644 index 0000000000..955eaa3b56 --- /dev/null +++ b/c/src/lib/libmisc/monitor/mon-manager.c @@ -0,0 +1,52 @@ +/* + * @(#)manager.c 1.2 - 95/07/31 + * + * + * RTEMS Monitor "manager" support. + * Used to traverse object (chain) lists and print them out. + * $Id$ + */ + +#include <rtems.h> +#include "monitor.h" + +#include <stdio.h> + +#include <monitor.h> + +/* + * "next" routine for all objects that are RTEMS manager objects + */ + +void * +rtems_monitor_manager_next( + void *table_void, + void *canonical, + rtems_id *next_id +) +{ + Objects_Information *table = table_void; + rtems_monitor_generic_t *copy; + Objects_Control *object = 0; + unsigned32 location; + + /* + * When we are called, it must be local + */ + + if ( ! _Objects_Is_local_id(*next_id)) + goto done; + + object = _Objects_Get_next(table, *next_id, &location, next_id); + + if (object) + { + copy = (rtems_monitor_generic_t *) canonical; + copy->id = object->id; + copy->name = table->name_table[rtems_get_index(copy->id)]; + } + +done: + return object; +} + |