📄 monitor.h
字号:
rtems_monitor_driver_t driver; rtems_monitor_dname_t dname; rtems_monitor_config_t config;#if defined(RTEMS_MULTIPROCESSING) rtems_monitor_mpci_t mpci;#endif rtems_monitor_init_task_t itask;} rtems_monitor_union_t;/* * Support for talking to other monitors *//* * Names of other monitors */#define RTEMS_MONITOR_NAME (rtems_build_name('R', 'M', 'O', 'N'))#define RTEMS_MONITOR_SERVER_NAME (rtems_build_name('R', 'M', 'S', 'V'))#define RTEMS_MONITOR_QUEUE_NAME (rtems_build_name('R', 'M', 'S', 'Q'))#define RTEMS_MONITOR_RESPONSE_QUEUE_NAME (rtems_build_name('R', 'M', 'R', 'Q'))#define RTEMS_MONITOR_SERVER_RESPONSE 0x0001#define RTEMS_MONITOR_SERVER_CANONICAL 0x0002typedef struct{ uint32_t command; rtems_id return_id; uint32_t argument0; uint32_t argument1; uint32_t argument2; uint32_t argument3; uint32_t argument4; uint32_t argument5;} rtems_monitor_server_request_t;typedef struct{ uint32_t command; uint32_t result0; uint32_t result1; rtems_monitor_union_t payload;} rtems_monitor_server_response_t;extern rtems_id rtems_monitor_task_id;extern uint32_t rtems_monitor_node; /* our node number */extern uint32_t rtems_monitor_default_node; /* current default for commands *//* * Monitor command function and table entry */typedef struct rtems_monitor_command_entry_s rtems_monitor_command_entry_t;typedef union _rtems_monitor_command_arg_t rtems_monitor_command_arg_t;typedef void ( *rtems_monitor_command_function_t )( int argc, char **argv, rtems_monitor_command_arg_t *command_arg, boolean verbose );union _rtems_monitor_command_arg_t { rtems_monitor_object_type_t monitor_object ; rtems_status_code status_code ; rtems_symbol_table_t **symbol_table ; rtems_monitor_command_entry_t *monitor_command_entry ;};struct rtems_monitor_command_entry_s { char *command; /* command name */ char *usage; /* usage string for the command */ uint32_t arguments_required; /* # of required args */ rtems_monitor_command_function_t command_function; /* Some argument for the command */ rtems_monitor_command_arg_t command_arg; rtems_monitor_command_entry_t *next;};typedef void *(*rtems_monitor_object_next_fn)(void *, void *, rtems_id *);typedef void (*rtems_monitor_object_canonical_fn)(void *, void *);typedef void (*rtems_monitor_object_dump_header_fn)(boolean);typedef void (*rtems_monitor_object_dump_fn)(void *, boolean);typedef struct { rtems_monitor_object_type_t type; void *object_information; int size; /* of canonical object */ rtems_monitor_object_next_fn next; rtems_monitor_object_canonical_fn canonical; rtems_monitor_object_dump_header_fn dump_header; rtems_monitor_object_dump_fn dump;} rtems_monitor_object_info_t;/* monitor.c */void rtems_monitor_kill(void);void rtems_monitor_init(uint32_t );void rtems_monitor_wakeup(void);void rtems_monitor_pause_cmd(int, char **, rtems_monitor_command_arg_t*, boolean);void rtems_monitor_fatal_cmd(int, char **, rtems_monitor_command_arg_t*, boolean);void rtems_monitor_continue_cmd(int, char **, rtems_monitor_command_arg_t*, boolean);void rtems_monitor_debugger_cmd(int, char **, rtems_monitor_command_arg_t*, boolean);void rtems_monitor_node_cmd(int, char **, rtems_monitor_command_arg_t*, boolean);void rtems_monitor_symbols_loadup(void);int rtems_monitor_insert_cmd(rtems_monitor_command_entry_t *);int rtems_monitor_erase_cmd(rtems_monitor_command_entry_t *);void rtems_monitor_task(rtems_task_argument);/* server.c */void rtems_monitor_server_kill(void);rtems_status_code rtems_monitor_server_request(uint32_t , rtems_monitor_server_request_t *, rtems_monitor_server_response_t *);void rtems_monitor_server_task(rtems_task_argument);void rtems_monitor_server_init(uint32_t );/* command.c */int rtems_monitor_make_argv(char *, int *, char **);int rtems_monitor_command_read(char *, int *, char **);rtems_monitor_command_entry_t *rtems_monitor_command_lookup( rtems_monitor_command_entry_t * table, int argc, char **argv);void rtems_monitor_command_usage(rtems_monitor_command_entry_t *, char *);void rtems_monitor_help_cmd(int, char **, rtems_monitor_command_arg_t *, boolean);/* prmisc.c */void rtems_monitor_separator(void);uint32_t rtems_monitor_pad(uint32_t dest_col, uint32_t curr_col);int rtems_monitor_dump_char(char ch);int rtems_monitor_dump_decimal(uint32_t num);int rtems_monitor_dump_hex(uint32_t num);int rtems_monitor_dump_id(rtems_id id);int rtems_monitor_dump_name(rtems_name name);int rtems_monitor_dump_priority(rtems_task_priority priority);int rtems_monitor_dump_state(States_Control state);int rtems_monitor_dump_modes(rtems_mode modes);int rtems_monitor_dump_attributes(rtems_attribute attributes);int rtems_monitor_dump_events(rtems_event_set events);int rtems_monitor_dump_notepad(uint32_t *notepad);/* object.c */rtems_id rtems_monitor_id_fixup(rtems_id, uint32_t , rtems_monitor_object_type_t);rtems_id rtems_monitor_object_canonical_get(rtems_monitor_object_type_t, rtems_id, void *, uint32_t *size_p);rtems_id rtems_monitor_object_canonical_next(rtems_monitor_object_info_t *, rtems_id, void *);void *rtems_monitor_object_next(void *, void *, rtems_id, rtems_id *);rtems_id rtems_monitor_object_canonical(rtems_id, void *);void rtems_monitor_object_cmd(int, char **, rtems_monitor_command_arg_t*, boolean);/* manager.c */void *rtems_monitor_manager_next(void *, void *, rtems_id *);/* config.c */void rtems_monitor_config_canonical(rtems_monitor_config_t *, void *);void *rtems_monitor_config_next(void *, rtems_monitor_config_t *, rtems_id *);void rtems_monitor_config_dump_header(boolean);int rtems_monitor_config_dump(rtems_monitor_config_t *, boolean verbose);/* mpci.c */#if defined(RTEMS_MULTIPROCESSING)void rtems_monitor_mpci_canonical(rtems_monitor_mpci_t *, void *);void *rtems_monitor_mpci_next(void *, rtems_monitor_mpci_t *, rtems_id *);void rtems_monitor_mpci_dump_header(boolean);void rtems_monitor_mpci_dump(rtems_monitor_mpci_t *, boolean verbose);#endif/* itask.c */void rtems_monitor_init_task_canonical(rtems_monitor_init_task_t *, void *);void *rtems_monitor_init_task_next(void *, rtems_monitor_init_task_t *, rtems_id *);void rtems_monitor_init_task_dump_header(boolean);void rtems_monitor_init_task_dump(rtems_monitor_init_task_t *, boolean verbose);/* extension.c */void rtems_monitor_extension_canonical(rtems_monitor_extension_t *, void *);void rtems_monitor_extension_dump_header(boolean verbose);void rtems_monitor_extension_dump(rtems_monitor_extension_t *, boolean);/* task.c */void rtems_monitor_task_canonical(rtems_monitor_task_t *, void *);void rtems_monitor_task_dump_header(boolean verbose);void rtems_monitor_task_dump(rtems_monitor_task_t *, boolean);/* queue.c */void rtems_monitor_queue_canonical(rtems_monitor_queue_t *, void *);void rtems_monitor_queue_dump_header(boolean verbose);void rtems_monitor_queue_dump(rtems_monitor_queue_t *, boolean);/* driver.c */void *rtems_monitor_driver_next(void *, rtems_monitor_driver_t *, rtems_id *);void rtems_monitor_driver_canonical(rtems_monitor_driver_t *, void *);void rtems_monitor_driver_dump_header(boolean);void rtems_monitor_driver_dump(rtems_monitor_driver_t *, boolean);/* dname.c */void *rtems_monitor_dname_next(void *, rtems_monitor_dname_t *, rtems_id *);void rtems_monitor_dname_canonical(rtems_monitor_dname_t *, void *);void rtems_monitor_dname_dump_header(boolean);void rtems_monitor_dname_dump(rtems_monitor_dname_t *, boolean);/* symbols.c */rtems_symbol_table_t *rtems_symbol_table_create();void rtems_symbol_table_destroy(rtems_symbol_table_t *table);rtems_symbol_t *rtems_symbol_create(rtems_symbol_table_t *, char *, uint32_t );rtems_symbol_t *rtems_symbol_value_lookup(rtems_symbol_table_t *, uint32_t );const rtems_symbol_t *rtems_symbol_value_lookup_exact(rtems_symbol_table_t *, uint32_t );rtems_symbol_t *rtems_symbol_name_lookup(rtems_symbol_table_t *, char *);void *rtems_monitor_symbol_next(void *object_info, rtems_monitor_symbol_t *, rtems_id *);void rtems_monitor_symbol_canonical(rtems_monitor_symbol_t *, rtems_symbol_t *);void rtems_monitor_symbol_canonical_by_name(rtems_monitor_symbol_t *, char *);void rtems_monitor_symbol_canonical_by_value(rtems_monitor_symbol_t *, void *);uint32_t rtems_monitor_symbol_dump(rtems_monitor_symbol_t *, boolean);void rtems_monitor_symbol_cmd(int, char **, rtems_monitor_command_arg_t*, boolean);extern rtems_symbol_table_t *rtems_monitor_symbols;/* FIXME: This should not be here */extern rtems_monitor_command_entry_t rtems_monitor_commands[];#define MONITOR_WAKEUP_EVENT RTEMS_EVENT_0#ifdef __cplusplus}#endif#endif /* ! __MONITOR_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -