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 315 extern rtems_id rtems_monitor_task_id;
317 extern uint32_t rtems_monitor_node;
318 extern uint32_t rtems_monitor_default_node;
327 typedef 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;
352 typedef const void *(*rtems_monitor_object_next_fn)(
void *,
void *,
rtems_id *);
353 typedef void (*rtems_monitor_object_canonical_fn)(
void *,
const void *);
354 typedef void (*rtems_monitor_object_dump_header_fn)(bool);
355 typedef 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;
376 void rtems_monitor_symbols_loadup(
void);
378 void rtems_monitor_wakeup(
void);
383 void rtems_monitor_kill(
void);
384 void rtems_monitor_init(uint32_t);
388 void rtems_monitor_server_kill(
void);
391 void rtems_monitor_server_init(uint32_t);
394 int rtems_monitor_make_argv(
char *,
int *,
char **);
395 int rtems_monitor_command_read(
char *,
int *,
char **);
401 void rtems_monitor_separator(
void);
402 uint32_t rtems_monitor_pad(uint32_t dest_col, uint32_t curr_col);
403 int rtems_monitor_dump_decimal(uint32_t num);
404 int rtems_monitor_dump_hex(uint32_t num);
405 int rtems_monitor_dump_addr(
const void *addr);
406 int rtems_monitor_dump_id(
rtems_id id);
407 int rtems_monitor_dump_name(
rtems_id id);
410 int rtems_monitor_dump_modes(
rtems_mode modes);
415 rtems_id rtems_monitor_id_fixup(
rtems_id, uint32_t , rtems_monitor_object_type_t);
417 rtems_id rtems_monitor_object_canonical_get(rtems_monitor_object_type_t,
rtems_id,
void *,
size_t *size_p);
419 const void *rtems_monitor_object_next(
void *,
void *,
rtems_id,
rtems_id *);
424 const void *rtems_monitor_manager_next(
void *,
void *,
rtems_id *);
429 void rtems_monitor_config_dump_header(
bool);
433 #if defined(RTEMS_MULTIPROCESSING) 434 void rtems_monitor_mpci_canonical(rtems_monitor_mpci_t *,
const void *);
435 const void *rtems_monitor_mpci_next(
void *, rtems_monitor_mpci_t *,
rtems_id *);
436 void rtems_monitor_mpci_dump_header(
bool);
437 void rtems_monitor_mpci_dump(rtems_monitor_mpci_t *,
bool verbose);
443 void rtems_monitor_init_task_dump_header(
bool);
448 void rtems_monitor_extension_dump_header(
bool verbose);
453 void rtems_monitor_task_dump_header(
bool verbose);
458 void rtems_monitor_sema_dump_header(
bool verbose);
463 void rtems_monitor_queue_dump_header(
bool verbose);
468 void rtems_monitor_region_dump_header(
bool verbose);
473 void rtems_monitor_part_dump_header(
bool verbose);
479 void 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 Definition: monitor.h:158
#define OBJECTS_RTEMS_CLASSES_LAST
Definition: objectimpl.h:54
uint32_t rtems_attribute
Definition: attr.h:41
ssize_t read(int fd, void *buffer, size_t count)
Definition: read.c:27
Definition: deflate.c:115
Watchdog_Interval rtems_interval
Used to manage and manipulate intervals specified by clock ticks.
Definition: types.h:127
Thread entry information.
Definition: thread.h:136
uint32_t rtems_name
Classic API object name type.
Definition: types.h:77
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
ssize_t write(int fd, const void *buffer, size_t count)
Definition: write.c:30
Definition: monitor.h:295
Definition: monitor.h:144
uint32_t States_Control
Definition: states.h:46
rtems_status_code
Classic API Status.
Definition: status.h:43
void rtems_monitor_command_iterate(rtems_monitor_per_command_routine routine, void *arg)
Iterates through all registerd commands.
Definition: mon-monitor.c:484
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
Definition: monitor.h:131
Definition: monitor.h:307
Definition: monitor.h:357
Definition: intercom.c:74
Definition: monitor.h:175
Definition: monitor.h:205
Definition: monitor.h:334
Definition: monitor.h:190
CPU_Uint32ptr rtems_task_argument
Definition: tasks.h:106
Objects_Id rtems_id
Used to manage and manipulate RTEMS object identifiers.
Definition: types.h:83
Definition: mmu-config.c:40
int open(const char *path, int oflag,...)
Definition: open.c:149
Inlined Routines in the Object Handler.
Definition: monitor.h:115
Definition: monitor.h:263
unsigned size
Definition: tte.h:74
uint32_t rtems_mode
Definition: modes.h:41
Definition: monitor.h:341
Definition: monitor.h:221
uint32_t rtems_task_priority
Definition: tasks.h:55