39#include <rtems/config.h>
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)(
361 rtems_monitor_object_type_t monitor_object;
370 uint32_t arguments_required;
371 rtems_monitor_command_function_t command_function;
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;
402void rtems_monitor_symbols_loadup(
void);
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 **);
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);
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);
523#if defined(RTEMS_NETWORKING)
527 uint32_t command_arg,
533 uint32_t command_arg,
540 rtems_monitor_object_type_t type
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
ssize_t read(int fd, void *buffer, size_t count)
Definition: read.c:46
ssize_t write(int fd, const void *buffer, size_t count)
Definition: write.c:49
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
int open(const char *path, int oflag,...)
Definition: open.c:171
This header file provides interfaces of the Object Handler which are only used by the implementation.
Thread entry information.
Definition: thread.h:140
Definition: deflate.c:114
Definition: intercom.c:87
Definition: mmu-config.c:53
Definition: monitor.h:367
Definition: monitor.h:247
Definition: monitor.h:231
Definition: monitor.h:184
Definition: monitor.h:109
Definition: monitor.h:141
Definition: monitor.h:383
Definition: monitor.h:216
Definition: monitor.h:157
Definition: monitor.h:201
Definition: monitor.h:170
Definition: monitor.h:322
Definition: monitor.h:334
Definition: monitor.h:103
Definition: monitor.h:118
Definition: monitor.h:360
Definition: monitor.h:289