54 RTEMS_MONITOR_OBJECT_INVALID = OBJECTS_CLASSIC_NO_CLASS,
55 RTEMS_MONITOR_OBJECT_TASK = OBJECTS_RTEMS_TASKS,
56 RTEMS_MONITOR_OBJECT_EXTENSION = OBJECTS_RTEMS_EXTENSIONS,
57 RTEMS_MONITOR_OBJECT_QUEUE = OBJECTS_RTEMS_MESSAGE_QUEUES,
58 RTEMS_MONITOR_OBJECT_SEMAPHORE = OBJECTS_RTEMS_SEMAPHORES,
59 RTEMS_MONITOR_OBJECT_PARTITION = OBJECTS_RTEMS_PARTITIONS,
60 RTEMS_MONITOR_OBJECT_REGION = OBJECTS_RTEMS_REGIONS,
61 RTEMS_MONITOR_OBJECT_PORT = OBJECTS_RTEMS_PORTS,
67 RTEMS_MONITOR_OBJECT_DNAME,
68 RTEMS_MONITOR_OBJECT_CONFIG,
69 RTEMS_MONITOR_OBJECT_INIT_TASK,
70 RTEMS_MONITOR_OBJECT_MPCI,
71 RTEMS_MONITOR_OBJECT_SYMBOL,
72 RTEMS_MONITOR_OBJECT_PTHREAD
73} rtems_monitor_object_type_t;
79#define RTEMS_MONITOR_SUSPEND 0x0001
80#define RTEMS_MONITOR_GLOBAL 0x0002
81#define RTEMS_MONITOR_NOTASK 0x0004
82#define RTEMS_MONITOR_NOSYMLOAD 0x0008
83#define RTEMS_MONITOR_WAITQUIT 0x0010
102#define MONITOR_SYMBOL_LEN 20
104 char name[MONITOR_SYMBOL_LEN];
127 char scheduler_name[5];
162 uint32_t number_of_pending_messages;
163 uint32_t maximum_pending_messages;
164 size_t maximum_message_size;
209 uint32_t max_seg_size;
210 uint32_t used_blocks;
221 const void * start_addr;
224 uint32_t used_blocks;
248 void *work_space_start;
249 uint32_t work_space_size;
250 uint32_t maximum_tasks;
251 uint32_t maximum_timers;
252 uint32_t maximum_semaphores;
253 uint32_t maximum_message_queues;
254 uint32_t maximum_partitions;
255 uint32_t maximum_regions;
256 uint32_t maximum_ports;
257 uint32_t maximum_periods;
258 uint32_t maximum_extensions;
259 uint32_t microseconds_per_tick;
260 uint32_t ticks_per_timeslice;
261 uint32_t number_of_initialization_tasks;
268#if defined(RTEMS_MULTIPROCESSING)
271 uint32_t maximum_nodes;
272 uint32_t maximum_global_objects;
273 uint32_t maximum_proxies;
275 uint32_t default_timeout;
276 size_t maximum_packet_size;
282} rtems_monitor_mpci_t;
299#if defined(RTEMS_MULTIPROCESSING)
300 rtems_monitor_mpci_t mpci;
313#define RTEMS_MONITOR_NAME (rtems_build_name('R', 'M', 'O', 'N'))
314#define RTEMS_MONITOR_SERVER_NAME (rtems_build_name('R', 'M', 'S', 'V'))
315#define RTEMS_MONITOR_QUEUE_NAME (rtems_build_name('R', 'M', 'S', 'Q'))
316#define RTEMS_MONITOR_RESPONSE_QUEUE_NAME (rtems_build_name('R', 'M', 'R', 'Q'))
318#define RTEMS_MONITOR_SERVER_RESPONSE 0x0001
319#define RTEMS_MONITOR_SERVER_CANONICAL 0x0002
341extern rtems_id rtems_monitor_task_id;
343extern uint32_t rtems_monitor_node;
344extern uint32_t rtems_monitor_default_node;
353typedef void (*rtems_monitor_command_function_t)(
356 const rtems_monitor_command_arg_t *command_arg,
361 rtems_monitor_object_type_t monitor_object;
363 rtems_symbol_table_t **symbol_table;
364 const rtems_monitor_command_entry_t *monitor_command_entry;
370 uint32_t arguments_required;
371 rtems_monitor_command_function_t command_function;
373 rtems_monitor_command_arg_t command_arg;
374 const rtems_monitor_command_entry_t *next;
378typedef const void *(*rtems_monitor_object_next_fn)(
void *,
void *,
rtems_id *);
379typedef void (*rtems_monitor_object_canonical_fn)(
void *,
const void *);
380typedef void (*rtems_monitor_object_dump_header_fn)(bool);
381typedef void (*rtems_monitor_object_dump_fn)(
void *, bool);
384 rtems_monitor_object_type_t type;
385 void *object_information;
387 rtems_monitor_object_next_fn next;
388 rtems_monitor_object_canonical_fn canonical;
389 rtems_monitor_object_dump_header_fn dump_header;
390 rtems_monitor_object_dump_fn dump;
393typedef bool (*rtems_monitor_per_command_routine)(
const rtems_monitor_command_entry_t *,
void *);
396void rtems_monitor_pause_cmd(
int,
char **,
const rtems_monitor_command_arg_t*,
bool);
397void rtems_monitor_fatal_cmd(
int,
char **,
const rtems_monitor_command_arg_t*,
bool);
398void rtems_monitor_continue_cmd(
int,
char **,
const rtems_monitor_command_arg_t*,
bool);
399void rtems_monitor_debugger_cmd(
int,
char **,
const rtems_monitor_command_arg_t*,
bool);
400void rtems_monitor_reset_cmd(
int,
char **,
const rtems_monitor_command_arg_t*,
bool);
401void rtems_monitor_node_cmd(
int,
char **,
const rtems_monitor_command_arg_t*,
bool);
402void rtems_monitor_symbols_loadup(
void);
403int rtems_monitor_insert_cmd(rtems_monitor_command_entry_t *);
404void rtems_monitor_wakeup(
void);
409void rtems_monitor_kill(
void);
410void rtems_monitor_init(uint32_t);
414void rtems_monitor_server_kill(
void);
417void rtems_monitor_server_init(uint32_t);
420int rtems_monitor_make_argv(
char *,
int *,
char **);
421int rtems_monitor_command_read(
char *,
int *,
char **);
422void rtems_monitor_command_usage(
const rtems_monitor_command_entry_t *,
const char *);
423void rtems_monitor_help_cmd(
int,
char **,
const rtems_monitor_command_arg_t *,
bool);
427void rtems_monitor_separator(
void);
428uint32_t rtems_monitor_pad(uint32_t dest_col, uint32_t curr_col);
429int rtems_monitor_dump_decimal(uint32_t num);
430int rtems_monitor_dump_hex(uint32_t num);
431int rtems_monitor_dump_addr(
const void *addr);
432int rtems_monitor_dump_id(
rtems_id id);
433int rtems_monitor_dump_name(
rtems_id id);
436int rtems_monitor_dump_modes(
rtems_mode modes);
441rtems_id rtems_monitor_id_fixup(
rtems_id, uint32_t , rtems_monitor_object_type_t);
443rtems_id rtems_monitor_object_canonical_get(rtems_monitor_object_type_t,
rtems_id,
void *,
size_t *size_p);
447void rtems_monitor_object_cmd(
int,
char **,
const rtems_monitor_command_arg_t*,
bool);
450const void *rtems_monitor_manager_next(
void *,
void *,
rtems_id *);
455void rtems_monitor_config_dump_header(
bool);
459#if defined(RTEMS_MULTIPROCESSING)
460void rtems_monitor_mpci_canonical(rtems_monitor_mpci_t *,
const void *);
461const void *rtems_monitor_mpci_next(
void *, rtems_monitor_mpci_t *,
rtems_id *);
462void rtems_monitor_mpci_dump_header(
bool);
463void rtems_monitor_mpci_dump(rtems_monitor_mpci_t *,
bool verbose);
469void rtems_monitor_init_task_dump_header(
bool);
474void rtems_monitor_extension_dump_header(
bool verbose);
479void rtems_monitor_task_dump_header(
bool verbose);
484void rtems_monitor_sema_dump_header(
bool verbose);
489void rtems_monitor_queue_dump_header(
bool verbose);
494void rtems_monitor_region_dump_header(
bool verbose);
499void rtems_monitor_part_dump_header(
bool verbose);
505void rtems_monitor_driver_dump_header(
bool);
509rtems_symbol_table_t *rtems_symbol_table_create(
void);
510void rtems_symbol_table_destroy(rtems_symbol_table_t *table);
512rtems_symbol_t *rtems_symbol_create(rtems_symbol_table_t *,
const char *, uint32_t);
513rtems_symbol_t *rtems_symbol_value_lookup(rtems_symbol_table_t *, uint32_t);
514const rtems_symbol_t *rtems_symbol_value_lookup_exact(rtems_symbol_table_t *, uint32_t);
515rtems_symbol_t *rtems_symbol_name_lookup(rtems_symbol_table_t *,
const char *);
521void rtems_monitor_symbol_cmd(
int,
char **,
const rtems_monitor_command_arg_t*,
bool);
523#if defined(RTEMS_NETWORKING)
527 uint32_t command_arg,
533 uint32_t command_arg,
540 rtems_monitor_object_type_t type
544extern rtems_symbol_table_t *rtems_monitor_symbols;
546#define MONITOR_WAKEUP_EVENT RTEMS_EVENT_0
uint32_t rtems_attribute
This type represents Classic API attributes.
Definition attr.h:96
uint32_t rtems_event_set
This integer type represents a bit field which can hold exactly 32 individual events.
Definition event.h:436
uint32_t rtems_mode
This type represents a Classic API task mode set.
Definition modes.h:174
rtems_status_code
This enumeration provides status codes for directives of the Classic API.
Definition status.h:85
CPU_Uint32ptr rtems_task_argument
This integer type represents task argument values.
Definition tasks.h:100
uint32_t rtems_name
This type represents Classic API object names.
Definition types.h:226
uint32_t rtems_task_priority
This integer type represents task priorities of the Classic API.
Definition types.h:257
Objects_Id rtems_id
This type represents RTEMS object identifiers.
Definition types.h:94
Watchdog_Interval rtems_interval
This type represents clock tick intervals.
Definition types.h:114
#define OBJECTS_RTEMS_CLASSES_LAST
Definition objectimpl.h:72
uint32_t States_Control
Definition states.h:65
This header file provides parts of the application configuration information API.
const rtems_monitor_command_entry_t * rtems_monitor_command_lookup(const char *name)
Looks for a command with the name name in the list of registered commands.
Definition mon-command.c:244
void rtems_monitor_command_iterate(rtems_monitor_per_command_routine routine, void *arg)
Iterates through all registerd commands.
Definition mon-monitor.c:512
This header file provides interfaces of the Object Handler which are only used by the implementation.
Thread entry information.
Definition thread.h:163