X-Git-Url: https://repo.jachan.dev/binutils.git/blobdiff_plain/5de0c6486d2a61d7b3b41a130feb546f936473ee..a77bf669dce7d953f2c32b162ccec49ed844f962:/gdb/monitor.h diff --git a/gdb/monitor.h b/gdb/monitor.h index d4e9962156..7fbf8cca86 100644 --- a/gdb/monitor.h +++ b/gdb/monitor.h @@ -1,8 +1,5 @@ /* Remote debugging interface ROM monitors. - * Copyright 1990, 1991, 1992 Free Software Foundation, Inc. - * Contributed by Cygnus Support. Written by Rob Savoye for Cygnus. - * - * Copyright 1990, 1991, 1992 Free Software Foundation, Inc. + * Copyright 1990, 1991, 1992, 1996 Free Software Foundation, Inc. * Contributed by Cygnus Support. Written by Rob Savoye for Cygnus. * * This file is part of GDB. @@ -19,17 +16,11 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "serial.h" -struct rom_cmd_data { - char *cmd; /* command to send */ - char *delim; /* the delimiter */ - char *result; /* the result */ -}; - /* This structure describes the strings necessary to give small command sequences to the monitor, and parse the response. @@ -72,7 +63,8 @@ struct memrw_cmd struct regrw_cmd { char *cmd; /* Command to send for reg read/write */ - char *resp_delim; /* String just prior to the desired value */ + char *resp_delim; /* String (actually a regexp if getmem) just + prior to the desired value */ char *term; /* Terminating string to search for */ char *term_cmd; /* String to get out of sub-mode (if necessary) */ }; @@ -104,12 +96,9 @@ struct monitor_ops char *load; /* load command */ char *loadresp; /* Response to load command */ char *prompt; /* monitor command prompt */ - char *cmd_delim; /* end-of-command delimitor */ + char *line_term; /* end-of-command delimitor */ char *cmd_end; /* optional command terminator */ struct target_ops *target; /* target operations */ - char **loadtypes; /* the load types that are supported */ - char **loadprotos; /* the load protocols that are supported */ - char *baudrates; /* supported baud rates */ int stopbits; /* number of stop bits */ char **regnames; /* array of register names in ascii */ int magic; /* Check value */ @@ -119,16 +108,18 @@ struct monitor_ops /* Flag defintions */ -#define MO_CLR_BREAK_USES_ADDR 0x1 /* If set, then clear breakpoint command - uses address, otherwise it uses an index - returned by the monitor. */ -#define MO_FILL_USES_ADDR 0x2 /* If set, then memory fill command uses - STARTADDR, ENDADDR+1, VALUE as args, else it - uses STARTADDR, LENGTH, VALUE as args. */ -#define MO_NEED_REGDUMP_AFTER_CONT 0x4 /* If set, then monitor doesn't auto- - matically supply register dump when - coming back after a continue. */ -#define MO_GETMEM_NEEDS_RANGE 0x8 /* getmem needs start addr and end addr */ +#define MO_CLR_BREAK_USES_ADDR 0x1 /* If set, then clear breakpoint command + uses address, otherwise it uses an index + returned by the monitor. */ +#define MO_FILL_USES_ADDR 0x2 /* If set, then memory fill command uses + STARTADDR, ENDADDR+1, VALUE as args, else it + uses STARTADDR, LENGTH, VALUE as args. */ +#define MO_NEED_REGDUMP_AFTER_CONT 0x4 /* If set, then monitor doesn't auto- + matically supply register dump when + coming back after a continue. */ +#define MO_GETMEM_NEEDS_RANGE 0x8 /* getmem needs start addr and end addr */ +#define MO_GETMEM_READ_SINGLE 0x10 /* getmem can only read one loc at a time */ +#define MO_HANDLE_NL 0x20 /* handle \r\n combinations */ extern struct monitor_ops *current_monitor; @@ -171,8 +162,12 @@ extern struct monitor_ops *current_monitor; #define REG_DELIM (current_monitor->regset.delim) extern void monitor_open PARAMS ((char *args, struct monitor_ops *ops, int from_tty)); +extern void monitor_close PARAMS ((int quitting)); extern char *monitor_supply_register PARAMS ((int regno, char *valstr)); extern int monitor_expect PARAMS ((char *prompt, char *buf, int buflen)); extern int monitor_expect_prompt PARAMS ((char *buf, int buflen)); -extern void monitor_printf (); +extern void monitor_printf PARAMS ((char *, ...)) + ATTR_FORMAT(printf, 1, 2); +extern void monitor_printf_noecho PARAMS ((char *, ...)) + ATTR_FORMAT(printf, 1, 2); extern void init_monitor_ops PARAMS ((struct target_ops *));