summaryrefslogtreecommitdiffstats
path: root/cpukit/libmisc/monitor/monitor.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/libmisc/monitor/monitor.h')
-rw-r--r--cpukit/libmisc/monitor/monitor.h528
1 files changed, 0 insertions, 528 deletions
diff --git a/cpukit/libmisc/monitor/monitor.h b/cpukit/libmisc/monitor/monitor.h
deleted file mode 100644
index 6ecd903c63..0000000000
--- a/cpukit/libmisc/monitor/monitor.h
+++ /dev/null
@@ -1,528 +0,0 @@
-/**
- * @file rtems/monitor.h
- *
- * @brief The RTEMS Monitor Task
- */
-
-
-#ifndef __MONITOR_H
-#define __MONITOR_H
-
-#include <rtems/score/objectimpl.h>
-#include <rtems/error.h> /* rtems_error() */
-#include <rtems/config.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Forward decls from symbols.h */
-typedef struct _rtems_symbol_t rtems_symbol_t;
-typedef struct _rtems_symbol_table_t rtems_symbol_table_t;
-
-/*
- * Monitor types are derived from rtems object classes
- */
-
-typedef enum {
- RTEMS_MONITOR_OBJECT_INVALID = OBJECTS_CLASSIC_NO_CLASS,
- RTEMS_MONITOR_OBJECT_TASK = OBJECTS_RTEMS_TASKS,
- RTEMS_MONITOR_OBJECT_EXTENSION = OBJECTS_RTEMS_EXTENSIONS,
- RTEMS_MONITOR_OBJECT_QUEUE = OBJECTS_RTEMS_MESSAGE_QUEUES,
- RTEMS_MONITOR_OBJECT_SEMAPHORE = OBJECTS_RTEMS_SEMAPHORES,
- RTEMS_MONITOR_OBJECT_PARTITION = OBJECTS_RTEMS_PARTITIONS,
- RTEMS_MONITOR_OBJECT_REGION = OBJECTS_RTEMS_REGIONS,
- RTEMS_MONITOR_OBJECT_PORT = OBJECTS_RTEMS_PORTS,
-
- /* following monitor objects are not known to RTEMS, but
- * we like to have "types" for them anyway */
-
- RTEMS_MONITOR_OBJECT_DRIVER = OBJECTS_RTEMS_CLASSES_LAST+1,
- RTEMS_MONITOR_OBJECT_DNAME,
- RTEMS_MONITOR_OBJECT_CONFIG,
- RTEMS_MONITOR_OBJECT_INIT_TASK,
- RTEMS_MONITOR_OBJECT_MPCI,
- RTEMS_MONITOR_OBJECT_SYMBOL,
- #if defined(RTEMS_POSIX_API)
- RTEMS_MONITOR_OBJECT_PTHREAD,
- #endif
-} rtems_monitor_object_type_t;
-
-/*
- * rtems_monitor_init() flags
- */
-
-#define RTEMS_MONITOR_SUSPEND 0x0001 /* suspend monitor on startup */
-#define RTEMS_MONITOR_GLOBAL 0x0002 /* monitor should be global */
-#define RTEMS_MONITOR_NOTASK 0x0004 /* do not start monitor task */
-#define RTEMS_MONITOR_NOSYMLOAD 0x0008 /* do not load symbols */
-#define RTEMS_MONITOR_WAITQUIT 0x0010 /* wait for monitor task to terminate */
-
-/*
- * Public interfaces for RTEMS data structures monitor is aware of.
- * These are only used by the monitor.
- *
- * NOTE:
- * All the canonical objects that correspond to RTEMS managed "objects"
- * must have an identical first portion with 'id' and 'name' fields.
- *
- * Others do not have that restriction, even tho we would like them to.
- * This is because some of the canonical structures are almost too big
- * for shared memory driver (eg: mpci) and we are nickel and diming it.
- */
-
-/*
- * Type of a pointer that may be a symbol
- */
-
-#define MONITOR_SYMBOL_LEN 20
-typedef struct {
- char name[MONITOR_SYMBOL_LEN];
- uint32_t value;
- uint32_t offset;
-} rtems_monitor_symbol_t;
-
-typedef struct {
- rtems_id id;
- rtems_name name;
- /* end of common portion */
-} rtems_monitor_generic_t;
-
-/*
- * Task
- */
-typedef struct {
- rtems_id id;
- rtems_name name;
- /* end of common portion */
- char short_name[5];
- char long_name[16];
- Thread_Entry_information entry;
- void *stack;
- uint32_t stack_size;
- char scheduler_name[5];
- rtems_task_priority priority;
- States_Control state;
- rtems_event_set events;
- rtems_mode modes;
- rtems_attribute attributes;
- char wait[17];
- uint32_t ticks;
-} rtems_monitor_task_t;
-
-/*
- * Init task
- */
-
-typedef struct {
- rtems_id id; /* not really an id */
- rtems_name name;
- /* end of common portion */
- rtems_monitor_symbol_t entry;
- uint32_t argument;
- uint32_t stack_size;
- rtems_task_priority priority;
- rtems_mode modes;
- rtems_attribute attributes;
-} rtems_monitor_init_task_t;
-
-
-/*
- * Message queue
- */
-typedef struct {
- rtems_id id;
- rtems_name name;
- /* end of common portion */
- rtems_attribute attributes;
- uint32_t number_of_pending_messages;
- uint32_t maximum_pending_messages;
- size_t maximum_message_size;
-} rtems_monitor_queue_t;
-
-/*
- * Semaphore
- */
-typedef struct {
- rtems_id id;
- rtems_name name;
- /* end of common portion */
- rtems_attribute attribute;
- rtems_task_priority priority_ceiling;
- uint32_t max_count;
- uint32_t cur_count;
- rtems_id holder_id;
-} rtems_monitor_sema_t;
-
-/*
- * Extension
- */
-typedef struct {
- rtems_id id;
- rtems_name name;
- /* end of common portion */
- rtems_monitor_symbol_t e_create;
- rtems_monitor_symbol_t e_start;
- rtems_monitor_symbol_t e_restart;
- rtems_monitor_symbol_t e_delete;
- rtems_monitor_symbol_t e_tswitch;
- rtems_monitor_symbol_t e_begin;
- rtems_monitor_symbol_t e_exitted;
- rtems_monitor_symbol_t e_fatal;
-} rtems_monitor_extension_t;
-
- /*
- * Region
- */
-typedef struct {
- rtems_id id;
- rtems_name name;
- /* end of common portion */
- rtems_attribute attribute;
- void * start_addr;
- uint32_t length;
- uint32_t page_size;
- uint32_t max_seg_size;
- uint32_t used_blocks;
-} rtems_monitor_region_t;
-
-/*
- * Partition
- */
-typedef struct {
- rtems_id id;
- rtems_name name;
- /* end of common portion */
- rtems_attribute attribute;
- void * start_addr;
- uint32_t length;
- uint32_t buf_size;
- uint32_t used_blocks;
-} rtems_monitor_part_t;
-
-/*
- * Device driver
- */
-
-typedef struct {
- rtems_id id; /* not really an id (should be tho) */
- rtems_name name; /* ditto */
- /* end of common portion */
- rtems_monitor_symbol_t initialization; /* initialization procedure */
- rtems_monitor_symbol_t open; /* open request procedure */
- rtems_monitor_symbol_t close; /* close request procedure */
- rtems_monitor_symbol_t read; /* read request procedure */
- rtems_monitor_symbol_t write; /* write request procedure */
- rtems_monitor_symbol_t control; /* special functions procedure */
-} rtems_monitor_driver_t;
-
-/*
- * System config
- */
-
-typedef struct {
- void *work_space_start;
- uint32_t work_space_size;
- uint32_t maximum_tasks;
- uint32_t maximum_timers;
- uint32_t maximum_semaphores;
- uint32_t maximum_message_queues;
- uint32_t maximum_partitions;
- uint32_t maximum_regions;
- uint32_t maximum_ports;
- uint32_t maximum_periods;
- uint32_t maximum_extensions;
- uint32_t microseconds_per_tick;
- uint32_t ticks_per_timeslice;
- uint32_t number_of_initialization_tasks;
-} rtems_monitor_config_t;
-
-/*
- * MPCI config
- */
-
-#if defined(RTEMS_MULTIPROCESSING)
-typedef struct {
- uint32_t node; /* local node number */
- uint32_t maximum_nodes; /* maximum # nodes in system */
- uint32_t maximum_global_objects; /* maximum # global objects */
- uint32_t maximum_proxies; /* maximum # proxies */
-
- uint32_t default_timeout; /* in ticks */
- size_t maximum_packet_size;
- rtems_monitor_symbol_t initialization;
- rtems_monitor_symbol_t get_packet;
- rtems_monitor_symbol_t return_packet;
- rtems_monitor_symbol_t send_packet;
- rtems_monitor_symbol_t receive_packet;
-} rtems_monitor_mpci_t;
-#endif
-
-/*
- * The generic canonical information union
- */
-
-typedef union {
- rtems_monitor_generic_t generic;
- rtems_monitor_task_t task;
- rtems_monitor_queue_t queue;
- rtems_monitor_sema_t sema;
- rtems_monitor_extension_t extension;
- rtems_monitor_driver_t driver;
- rtems_monitor_config_t config;
- rtems_monitor_region_t region;
- rtems_monitor_part_t part;
-#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 0x0002
-
-typedef 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,
- const rtems_monitor_command_arg_t *command_arg,
- bool 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;
- const rtems_monitor_command_entry_t *monitor_command_entry;
-};
-
-struct rtems_monitor_command_entry_s {
- const char *command; /* command name */
- const 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;
- const rtems_monitor_command_entry_t *next;
-};
-
-
-typedef const void *(*rtems_monitor_object_next_fn)(void *, void *, rtems_id *);
-typedef void (*rtems_monitor_object_canonical_fn)(void *, const void *);
-typedef void (*rtems_monitor_object_dump_header_fn)(bool);
-typedef void (*rtems_monitor_object_dump_fn)(void *, bool);
-
-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;
-
-typedef bool (*rtems_monitor_per_command_routine)(const rtems_monitor_command_entry_t *, void *);
-
-/* monitor.c */
-void rtems_monitor_pause_cmd(int, char **, const rtems_monitor_command_arg_t*, bool);
-void rtems_monitor_fatal_cmd(int, char **, const rtems_monitor_command_arg_t*, bool);
-void rtems_monitor_continue_cmd(int, char **, const rtems_monitor_command_arg_t*, bool);
-void rtems_monitor_debugger_cmd(int, char **, const rtems_monitor_command_arg_t*, bool);
-void rtems_monitor_reset_cmd(int, char **, const rtems_monitor_command_arg_t*, bool);
-void rtems_monitor_node_cmd(int, char **, const rtems_monitor_command_arg_t*, bool);
-void rtems_monitor_symbols_loadup(void);
-int rtems_monitor_insert_cmd(rtems_monitor_command_entry_t *);
-void rtems_monitor_wakeup(void);
-void rtems_monitor_command_iterate(rtems_monitor_per_command_routine routine, void *arg);
-rtems_status_code rtems_monitor_suspend(rtems_interval timeout);
-
-/* editor.c */
-void rtems_monitor_kill(void);
-void rtems_monitor_init(uint32_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 **);
-void rtems_monitor_command_usage(const rtems_monitor_command_entry_t *, const char *);
-void rtems_monitor_help_cmd(int, char **, const rtems_monitor_command_arg_t *, bool);
-const rtems_monitor_command_entry_t *rtems_monitor_command_lookup(const char *name);
-
-/* prmisc.c */
-void rtems_monitor_separator(void);
-uint32_t rtems_monitor_pad(uint32_t dest_col, uint32_t curr_col);
-int rtems_monitor_dump_decimal(uint32_t num);
-int rtems_monitor_dump_hex(uint32_t num);
-int rtems_monitor_dump_addr(const void *addr);
-int rtems_monitor_dump_id(rtems_id id);
-int rtems_monitor_dump_name(rtems_id id);
-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);
-
-/* object.c */
-rtems_id rtems_monitor_id_fixup(rtems_id, uint32_t , rtems_monitor_object_type_t);
-const rtems_monitor_object_info_t *rtems_monitor_object_lookup(rtems_monitor_object_type_t type);
-rtems_id rtems_monitor_object_canonical_get(rtems_monitor_object_type_t, rtems_id, void *, size_t *size_p);
-rtems_id rtems_monitor_object_canonical_next(const rtems_monitor_object_info_t *, rtems_id, void *);
-const void *rtems_monitor_object_next(void *, void *, rtems_id, rtems_id *);
-rtems_id rtems_monitor_object_canonical(rtems_id, const void *);
-void rtems_monitor_object_cmd(int, char **, const rtems_monitor_command_arg_t*, bool);
-
-/* manager.c */
-const void *rtems_monitor_manager_next(void *, void *, rtems_id *);
-
-/* config.c */
-void rtems_monitor_config_canonical(rtems_monitor_config_t *, const void *);
-const void *rtems_monitor_config_next(void *, rtems_monitor_config_t *, rtems_id *);
-void rtems_monitor_config_dump_header(bool);
-int rtems_monitor_config_dump(rtems_monitor_config_t *, bool verbose);
-
-/* mpci.c */
-#if defined(RTEMS_MULTIPROCESSING)
-void rtems_monitor_mpci_canonical(rtems_monitor_mpci_t *, const void *);
-const void *rtems_monitor_mpci_next(void *, rtems_monitor_mpci_t *, rtems_id *);
-void rtems_monitor_mpci_dump_header(bool);
-void rtems_monitor_mpci_dump(rtems_monitor_mpci_t *, bool verbose);
-#endif
-
-/* itask.c */
-void rtems_monitor_init_task_canonical(rtems_monitor_init_task_t *, const void *);
-const void *rtems_monitor_init_task_next(void *, rtems_monitor_init_task_t *, rtems_id *);
-void rtems_monitor_init_task_dump_header(bool);
-void rtems_monitor_init_task_dump(rtems_monitor_init_task_t *, bool verbose);
-
-/* extension.c */
-void rtems_monitor_extension_canonical(rtems_monitor_extension_t *, const void *);
-void rtems_monitor_extension_dump_header(bool verbose);
-void rtems_monitor_extension_dump(rtems_monitor_extension_t *, bool);
-
-/* task.c */
-void rtems_monitor_task_canonical(rtems_monitor_task_t *, const void *);
-void rtems_monitor_task_dump_header(bool verbose);
-void rtems_monitor_task_dump(rtems_monitor_task_t *, bool);
-
-/* sema.c */
-void rtems_monitor_sema_canonical(rtems_monitor_sema_t *, const void *);
-void rtems_monitor_sema_dump_header(bool verbose);
-void rtems_monitor_sema_dump(rtems_monitor_sema_t *, bool);
-
-/* queue.c */
-void rtems_monitor_queue_canonical(rtems_monitor_queue_t *, const void *);
-void rtems_monitor_queue_dump_header(bool verbose);
-void rtems_monitor_queue_dump(rtems_monitor_queue_t *, bool);
-
-/* region.c */
-void rtems_monitor_region_canonical(rtems_monitor_region_t *, const void *);
-void rtems_monitor_region_dump_header(bool verbose);
-void rtems_monitor_region_dump(rtems_monitor_region_t *, bool);
-
-/* partition.c */
-void rtems_monitor_part_canonical(rtems_monitor_part_t *, const void *);
-void rtems_monitor_part_dump_header(bool verbose);
-void rtems_monitor_part_dump(rtems_monitor_part_t *, bool);
-
-/* driver.c */
-const void *rtems_monitor_driver_next(void *, rtems_monitor_driver_t *, rtems_id *);
-void rtems_monitor_driver_canonical(rtems_monitor_driver_t *, const void *);
-void rtems_monitor_driver_dump_header(bool);
-void rtems_monitor_driver_dump(rtems_monitor_driver_t *, bool);
-
-/* symbols.c */
-rtems_symbol_table_t *rtems_symbol_table_create(void);
-void rtems_symbol_table_destroy(rtems_symbol_table_t *table);
-
-rtems_symbol_t *rtems_symbol_create(rtems_symbol_table_t *, const 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 *, const char *);
-const 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 *, const char *);
-void rtems_monitor_symbol_canonical_by_value(rtems_monitor_symbol_t *, void *);
-uint32_t rtems_monitor_symbol_dump(rtems_monitor_symbol_t *, bool);
-void rtems_monitor_symbol_cmd(int, char **, const rtems_monitor_command_arg_t*, bool);
-
-#if defined(RTEMS_NETWORKING)
-void mon_ifconfig(
- int argc,
- char *argv[],
- uint32_t command_arg,
- bool verbose
-);
-void mon_route(
- int argc,
- char *argv[],
- uint32_t command_arg,
- bool verbose
-);
-#endif
-
-/* mon-object.c */
-const rtems_monitor_object_info_t *rtems_monitor_object_lookup(
- rtems_monitor_object_type_t type
-);
-
-/* shared data */
-extern rtems_symbol_table_t *rtems_monitor_symbols;
-
-#define MONITOR_WAKEUP_EVENT RTEMS_EVENT_0
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* ! __MONITOR_H */