13#include <rtems/config.h>
28 RTEMS_MONITOR_OBJECT_INVALID = OBJECTS_CLASSIC_NO_CLASS,
29 RTEMS_MONITOR_OBJECT_TASK = OBJECTS_RTEMS_TASKS,
30 RTEMS_MONITOR_OBJECT_EXTENSION = OBJECTS_RTEMS_EXTENSIONS,
31 RTEMS_MONITOR_OBJECT_QUEUE = OBJECTS_RTEMS_MESSAGE_QUEUES,
32 RTEMS_MONITOR_OBJECT_SEMAPHORE = OBJECTS_RTEMS_SEMAPHORES,
33 RTEMS_MONITOR_OBJECT_PARTITION = OBJECTS_RTEMS_PARTITIONS,
34 RTEMS_MONITOR_OBJECT_REGION = OBJECTS_RTEMS_REGIONS,
35 RTEMS_MONITOR_OBJECT_PORT = OBJECTS_RTEMS_PORTS,
41 RTEMS_MONITOR_OBJECT_DNAME,
42 RTEMS_MONITOR_OBJECT_CONFIG,
43 RTEMS_MONITOR_OBJECT_INIT_TASK,
44 RTEMS_MONITOR_OBJECT_MPCI,
45 RTEMS_MONITOR_OBJECT_SYMBOL,
46 RTEMS_MONITOR_OBJECT_PTHREAD
47} rtems_monitor_object_type_t;
53#define RTEMS_MONITOR_SUSPEND 0x0001
54#define RTEMS_MONITOR_GLOBAL 0x0002
55#define RTEMS_MONITOR_NOTASK 0x0004
56#define RTEMS_MONITOR_NOSYMLOAD 0x0008
57#define RTEMS_MONITOR_WAITQUIT 0x0010
76#define MONITOR_SYMBOL_LEN 20
78 char name[MONITOR_SYMBOL_LEN];
101 char scheduler_name[5];
136 uint32_t number_of_pending_messages;
137 uint32_t maximum_pending_messages;
138 size_t maximum_message_size;
183 uint32_t max_seg_size;
184 uint32_t used_blocks;
198 uint32_t used_blocks;
222 void *work_space_start;
223 uint32_t work_space_size;
224 uint32_t maximum_tasks;
225 uint32_t maximum_timers;
226 uint32_t maximum_semaphores;
227 uint32_t maximum_message_queues;
228 uint32_t maximum_partitions;
229 uint32_t maximum_regions;
230 uint32_t maximum_ports;
231 uint32_t maximum_periods;
232 uint32_t maximum_extensions;
233 uint32_t microseconds_per_tick;
234 uint32_t ticks_per_timeslice;
235 uint32_t number_of_initialization_tasks;
242#if defined(RTEMS_MULTIPROCESSING)
245 uint32_t maximum_nodes;
246 uint32_t maximum_global_objects;
247 uint32_t maximum_proxies;
249 uint32_t default_timeout;
250 size_t maximum_packet_size;
256} rtems_monitor_mpci_t;
273#if defined(RTEMS_MULTIPROCESSING)
274 rtems_monitor_mpci_t mpci;
287#define RTEMS_MONITOR_NAME (rtems_build_name('R', 'M', 'O', 'N'))
288#define RTEMS_MONITOR_SERVER_NAME (rtems_build_name('R', 'M', 'S', 'V'))
289#define RTEMS_MONITOR_QUEUE_NAME (rtems_build_name('R', 'M', 'S', 'Q'))
290#define RTEMS_MONITOR_RESPONSE_QUEUE_NAME (rtems_build_name('R', 'M', 'R', 'Q'))
292#define RTEMS_MONITOR_SERVER_RESPONSE 0x0001
293#define RTEMS_MONITOR_SERVER_CANONICAL 0x0002
315extern rtems_id rtems_monitor_task_id;
317extern uint32_t rtems_monitor_node;
318extern uint32_t rtems_monitor_default_node;
327typedef void (*rtems_monitor_command_function_t)(
335 rtems_monitor_object_type_t monitor_object;
344 uint32_t arguments_required;
345 rtems_monitor_command_function_t command_function;
352typedef const void *(*rtems_monitor_object_next_fn)(
void *,
void *,
rtems_id *);
353typedef void (*rtems_monitor_object_canonical_fn)(
void *,
const void *);
354typedef void (*rtems_monitor_object_dump_header_fn)(bool);
355typedef void (*rtems_monitor_object_dump_fn)(
void *, bool);
358 rtems_monitor_object_type_t type;
359 void *object_information;
361 rtems_monitor_object_next_fn next;
362 rtems_monitor_object_canonical_fn canonical;
363 rtems_monitor_object_dump_header_fn dump_header;
364 rtems_monitor_object_dump_fn dump;
376void rtems_monitor_symbols_loadup(
void);
378void rtems_monitor_wakeup(
void);
383void rtems_monitor_kill(
void);
384void rtems_monitor_init(uint32_t);
388void rtems_monitor_server_kill(
void);
391void rtems_monitor_server_init(uint32_t);
394int rtems_monitor_make_argv(
char *,
int *,
char **);
395int rtems_monitor_command_read(
char *,
int *,
char **);
401void rtems_monitor_separator(
void);
402uint32_t rtems_monitor_pad(uint32_t dest_col, uint32_t curr_col);
403int rtems_monitor_dump_decimal(uint32_t num);
404int rtems_monitor_dump_hex(uint32_t num);
405int rtems_monitor_dump_addr(
const void *addr);
406int rtems_monitor_dump_id(
rtems_id id);
407int rtems_monitor_dump_name(
rtems_id id);
410int rtems_monitor_dump_modes(
rtems_mode modes);
415rtems_id rtems_monitor_id_fixup(
rtems_id, uint32_t , rtems_monitor_object_type_t);
417rtems_id rtems_monitor_object_canonical_get(rtems_monitor_object_type_t,
rtems_id,
void *,
size_t *size_p);
424const void *rtems_monitor_manager_next(
void *,
void *,
rtems_id *);
429void rtems_monitor_config_dump_header(
bool);
433#if defined(RTEMS_MULTIPROCESSING)
434void rtems_monitor_mpci_canonical(rtems_monitor_mpci_t *,
const void *);
435const void *rtems_monitor_mpci_next(
void *, rtems_monitor_mpci_t *,
rtems_id *);
436void rtems_monitor_mpci_dump_header(
bool);
437void rtems_monitor_mpci_dump(rtems_monitor_mpci_t *,
bool verbose);
443void rtems_monitor_init_task_dump_header(
bool);
448void rtems_monitor_extension_dump_header(
bool verbose);
453void rtems_monitor_task_dump_header(
bool verbose);
458void rtems_monitor_sema_dump_header(
bool verbose);
463void rtems_monitor_queue_dump_header(
bool verbose);
468void rtems_monitor_region_dump_header(
bool verbose);
473void rtems_monitor_part_dump_header(
bool verbose);
479void rtems_monitor_driver_dump_header(
bool);
497#if defined(RTEMS_NETWORKING)
501 uint32_t command_arg,
507 uint32_t command_arg,
514 rtems_monitor_object_type_t type
520#define MONITOR_WAKEUP_EVENT RTEMS_EVENT_0
uint32_t rtems_attribute
Definition: attr.h:41
uint32_t rtems_event_set
Integer type to hold an event set of up to 32 events represented as a bit field.
Definition: event.h:40
uint32_t rtems_mode
Definition: modes.h:41
rtems_status_code
Classic API Status.
Definition: status.h:43
uint32_t rtems_name
Classic API object name type.
Definition: types.h:77
uint32_t rtems_task_priority
Definition: tasks.h:55
Objects_Id rtems_id
Used to manage and manipulate RTEMS object identifiers.
Definition: types.h:83
Watchdog_Interval rtems_interval
Used to manage and manipulate intervals specified by clock ticks.
Definition: types.h:127
CPU_Uint32ptr rtems_task_argument
Definition: tasks.h:106
#define OBJECTS_RTEMS_CLASSES_LAST
Definition: objectimpl.h:54
uint32_t States_Control
Definition: states.h:46
ssize_t read(int fd, void *buffer, size_t count)
Definition: read.c:27
ssize_t write(int fd, const void *buffer, size_t count)
Definition: write.c:30
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:229
void rtems_monitor_command_iterate(rtems_monitor_per_command_routine routine, void *arg)
Iterates through all registerd commands.
Definition: mon-monitor.c:484
Inlined Routines in the Object Handler.
int open(const char *path, int oflag,...)
Definition: open.c:149
Thread entry information.
Definition: thread.h:136
Definition: deflate.c:115
Definition: intercom.c:74
Definition: mmu-config.c:40
Definition: monitor.h:341
Definition: monitor.h:221
Definition: monitor.h:205
Definition: monitor.h:158
Definition: monitor.h:115
Definition: monitor.h:357
Definition: monitor.h:190
Definition: monitor.h:131
Definition: monitor.h:175
Definition: monitor.h:144
Definition: monitor.h:296
Definition: monitor.h:308
unsigned size
Definition: tte.h:1
Definition: monitor.h:334
Definition: monitor.h:263