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 #if defined(RTEMS_POSIX_API) 47 RTEMS_MONITOR_OBJECT_PTHREAD,
49 } rtems_monitor_object_type_t;
55 #define RTEMS_MONITOR_SUSPEND 0x0001 56 #define RTEMS_MONITOR_GLOBAL 0x0002 57 #define RTEMS_MONITOR_NOTASK 0x0004 58 #define RTEMS_MONITOR_NOSYMLOAD 0x0008 59 #define RTEMS_MONITOR_WAITQUIT 0x0010 78 #define MONITOR_SYMBOL_LEN 20 80 char name[MONITOR_SYMBOL_LEN];
139 uint32_t number_of_pending_messages;
140 uint32_t maximum_pending_messages;
141 size_t maximum_message_size;
186 uint32_t max_seg_size;
187 uint32_t used_blocks;
201 uint32_t used_blocks;
225 void *work_space_start;
226 uint32_t work_space_size;
227 uint32_t maximum_tasks;
228 uint32_t maximum_timers;
229 uint32_t maximum_semaphores;
230 uint32_t maximum_message_queues;
231 uint32_t maximum_partitions;
232 uint32_t maximum_regions;
233 uint32_t maximum_ports;
234 uint32_t maximum_periods;
235 uint32_t maximum_extensions;
236 uint32_t microseconds_per_tick;
237 uint32_t ticks_per_timeslice;
238 uint32_t number_of_initialization_tasks;
245 #if defined(RTEMS_MULTIPROCESSING) 248 uint32_t maximum_nodes;
249 uint32_t maximum_global_objects;
250 uint32_t maximum_proxies;
252 uint32_t default_timeout;
253 size_t maximum_packet_size;
259 } rtems_monitor_mpci_t;
276 #if defined(RTEMS_MULTIPROCESSING) 277 rtems_monitor_mpci_t mpci;
290 #define RTEMS_MONITOR_NAME (rtems_build_name('R', 'M', 'O', 'N')) 291 #define RTEMS_MONITOR_SERVER_NAME (rtems_build_name('R', 'M', 'S', 'V')) 292 #define RTEMS_MONITOR_QUEUE_NAME (rtems_build_name('R', 'M', 'S', 'Q')) 293 #define RTEMS_MONITOR_RESPONSE_QUEUE_NAME (rtems_build_name('R', 'M', 'R', 'Q')) 295 #define RTEMS_MONITOR_SERVER_RESPONSE 0x0001 296 #define RTEMS_MONITOR_SERVER_CANONICAL 0x0002 318 extern rtems_id rtems_monitor_task_id;
320 extern uint32_t rtems_monitor_node;
321 extern uint32_t rtems_monitor_default_node;
330 typedef void (*rtems_monitor_command_function_t)(
333 const rtems_monitor_command_arg_t *command_arg,
338 rtems_monitor_object_type_t monitor_object;
341 const rtems_monitor_command_entry_t *monitor_command_entry;
347 uint32_t arguments_required;
348 rtems_monitor_command_function_t command_function;
350 rtems_monitor_command_arg_t command_arg;
351 const rtems_monitor_command_entry_t *next;
355 typedef const void *(*rtems_monitor_object_next_fn)(
void *,
void *,
rtems_id *);
356 typedef void (*rtems_monitor_object_canonical_fn)(
void *,
const void *);
357 typedef void (*rtems_monitor_object_dump_header_fn)(bool);
358 typedef void (*rtems_monitor_object_dump_fn)(
void *, bool);
361 rtems_monitor_object_type_t type;
362 void *object_information;
364 rtems_monitor_object_next_fn next;
365 rtems_monitor_object_canonical_fn canonical;
366 rtems_monitor_object_dump_header_fn dump_header;
367 rtems_monitor_object_dump_fn dump;
370 typedef bool (*rtems_monitor_per_command_routine)(
const rtems_monitor_command_entry_t *,
void *);
373 void rtems_monitor_pause_cmd(
int,
char **,
const rtems_monitor_command_arg_t*,
bool);
374 void rtems_monitor_fatal_cmd(
int,
char **,
const rtems_monitor_command_arg_t*,
bool);
375 void rtems_monitor_continue_cmd(
int,
char **,
const rtems_monitor_command_arg_t*,
bool);
376 void rtems_monitor_debugger_cmd(
int,
char **,
const rtems_monitor_command_arg_t*,
bool);
377 void rtems_monitor_reset_cmd(
int,
char **,
const rtems_monitor_command_arg_t*,
bool);
378 void rtems_monitor_node_cmd(
int,
char **,
const rtems_monitor_command_arg_t*,
bool);
379 void rtems_monitor_symbols_loadup(
void);
380 int rtems_monitor_insert_cmd(rtems_monitor_command_entry_t *);
381 void rtems_monitor_wakeup(
void);
386 void rtems_monitor_kill(
void);
387 void rtems_monitor_init(uint32_t);
391 void rtems_monitor_server_kill(
void);
394 void rtems_monitor_server_init(uint32_t);
397 int rtems_monitor_make_argv(
char *,
int *,
char **);
398 int rtems_monitor_command_read(
char *,
int *,
char **);
399 void rtems_monitor_command_usage(
const rtems_monitor_command_entry_t *,
const char *);
400 void rtems_monitor_help_cmd(
int,
char **,
const rtems_monitor_command_arg_t *,
bool);
404 void rtems_monitor_separator(
void);
405 uint32_t rtems_monitor_pad(uint32_t dest_col, uint32_t curr_col);
406 int rtems_monitor_dump_decimal(uint32_t num);
407 int rtems_monitor_dump_hex(uint32_t num);
408 int rtems_monitor_dump_addr(
void *addr);
409 int rtems_monitor_dump_id(
rtems_id id);
410 int rtems_monitor_dump_name(
rtems_id id);
413 int rtems_monitor_dump_modes(
rtems_mode modes);
416 int rtems_monitor_dump_notepad(uint32_t *notepad);
419 rtems_id rtems_monitor_id_fixup(
rtems_id, uint32_t , rtems_monitor_object_type_t);
421 rtems_id rtems_monitor_object_canonical_get(rtems_monitor_object_type_t,
rtems_id,
void *,
size_t *size_p);
423 const void *rtems_monitor_object_next(
void *,
void *,
rtems_id,
rtems_id *);
425 void rtems_monitor_object_cmd(
int,
char **,
const rtems_monitor_command_arg_t*,
bool);
428 const void *rtems_monitor_manager_next(
void *,
void *,
rtems_id *);
433 void rtems_monitor_config_dump_header(
bool);
437 #if defined(RTEMS_MULTIPROCESSING) 438 void rtems_monitor_mpci_canonical(rtems_monitor_mpci_t *,
const void *);
439 const void *rtems_monitor_mpci_next(
void *, rtems_monitor_mpci_t *,
rtems_id *);
440 void rtems_monitor_mpci_dump_header(
bool);
441 void rtems_monitor_mpci_dump(rtems_monitor_mpci_t *,
bool verbose);
447 void rtems_monitor_init_task_dump_header(
bool);
452 void rtems_monitor_extension_dump_header(
bool verbose);
457 void rtems_monitor_task_dump_header(
bool verbose);
462 void rtems_monitor_sema_dump_header(
bool verbose);
467 void rtems_monitor_queue_dump_header(
bool verbose);
472 void rtems_monitor_region_dump_header(
bool verbose);
477 void rtems_monitor_part_dump_header(
bool verbose);
483 void rtems_monitor_driver_dump_header(
bool);
499 void rtems_monitor_symbol_cmd(
int,
char **,
const rtems_monitor_command_arg_t*,
bool);
501 #if defined(RTEMS_NETWORKING) 505 uint32_t command_arg,
511 uint32_t command_arg,
518 rtems_monitor_object_type_t type
524 #define MONITOR_WAKEUP_EVENT RTEMS_EVENT_0 Definition: monitor.h:161
uint32_t rtems_attribute
This defines the type used to contain Classic API attributes.
Definition: attr.h:44
ssize_t read(int fd, void *buffer, size_t count)
POSIX 1003.1b 6.4.1 - Read From a File.
Definition: read.c:27
Definition: deflate.c:116
Objects_Id rtems_id
Used to manage and manipulate RTEMS object identifiers.
Definition: types.h:80
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)
POSIX 1003.1b 6.4.2 - Write to a File.
Definition: write.c:30
Definition: monitor.h:298
Thread(* Thread_Entry)(void)
This type corresponds to a very simple style thread entry point.
Definition: thread.h:129
Definition: monitor.h:147
Watchdog_Interval rtems_interval
Used to manage and manipulate intervals specified by clock ticks.
Definition: types.h:119
Priority_Control rtems_task_priority
Define the type for an RTEMS API task priority.
Definition: tasks.h:79
rtems_status_code
Classic API Status.
Definition: status.h:46
void rtems_monitor_command_iterate(rtems_monitor_per_command_routine routine, void *arg)
Iterates through all registerd commands.
Definition: mon-monitor.c:495
uint32_t rtems_name
Classic API object name type.
Definition: types.h:74
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:51
Definition: monitor.h:134
Definition: monitor.h:310
Definition: monitor.h:360
#define RTEMS_COMPILER_DEPRECATED_ATTRIBUTE
Instructs the compiler to issue a warning whenever a variable or function with this attribute will be...
Definition: basedefs.h:186
uint32_t States_Control
The following type defines the control block used to manage a thread's state.
Definition: states.h:41
Definition: monitor.h:178
Definition: monitor.h:208
#define RTEMS_NUMBER_NOTEPADS
This is used to indicate the number of notepads available.
Definition: tasks.h:151
CPU_Uint32ptr Thread_Entry_numeric_type
Type of the numeric argument of a thread entry function with at least one numeric argument...
Definition: thread.h:110
Thread_Entry_numeric_type rtems_task_argument
The following defines the argument to an RTEMS task.
Definition: tasks.h:166
Definition: monitor.h:337
Definition: monitor.h:193
#define OBJECTS_RTEMS_CLASSES_LAST
This macro is used to generically specify the last API index.
Definition: objectimpl.h:78
Definition: nfs_prot.h:234
int open(const char *path, int oflag,...)
POSIX 1003.1 5.3.1 - Open a File.
Definition: open.c:130
Inlined Routines in the Object Handler.
Definition: monitor.h:118
Definition: monitor.h:266
Modes_Control rtems_mode
Task mode type.
Definition: types.h:167
Definition: monitor.h:344
Definition: monitor.h:224