mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-24 02:24:46 +08:00
* monitor.h: Clean up comment formatting.
(current_monitor): Remove decl. (LOADTYPES, LOADPROTOS, INIT_CMD, etc): Remove definitions. (push_monitor, SREC_SIZE): Remove. * monitor.c: Expand old macro into current_monitor derefs everywhere. * remote-os9k.c (current_monitor): Remove definition.
This commit is contained in:
parent
bee69a3283
commit
178ed33898
@ -1,3 +1,13 @@
|
||||
Mon Apr 22 16:32:29 1996 Stan Shebs <shebs@andros.cygnus.com>
|
||||
|
||||
* monitor.h: Clean up comment formatting.
|
||||
(current_monitor): Remove decl.
|
||||
(LOADTYPES, LOADPROTOS, INIT_CMD, etc): Remove definitions.
|
||||
(push_monitor, SREC_SIZE): Remove.
|
||||
* monitor.c: Expand old macro into current_monitor derefs
|
||||
everywhere.
|
||||
* remote-os9k.c (current_monitor): Remove definition.
|
||||
|
||||
Mon Apr 22 14:54:45 1996 Mark Alexander <marka@superball.cygnus.com>
|
||||
|
||||
* corefile.c (specify_exec_file_hook): Allow arbitrary number of
|
||||
|
168
gdb/monitor.h
168
gdb/monitor.h
@ -1,53 +1,55 @@
|
||||
/* Remote debugging interface ROM monitors.
|
||||
* 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.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
/* Definitions for remote debugging interface for ROM monitors.
|
||||
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.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include "serial.h"
|
||||
|
||||
/* This structure describes the strings necessary to give small command
|
||||
sequences to the monitor, and parse the response.
|
||||
|
||||
CMD is the actual command typed at the monitor. Usually this has embedded
|
||||
sequences ala printf, which are substituted with the arguments appropriate
|
||||
to that type of command. Ie: to examine a register, we substitute the
|
||||
register name for the first arg. To modify memory, we substitute the memory
|
||||
location and the new contents for the first and second args, etc...
|
||||
CMD is the actual command typed at the monitor. Usually this has
|
||||
embedded sequences ala printf, which are substituted with the
|
||||
arguments appropriate to that type of command. Ie: to examine a
|
||||
register, we substitute the register name for the first arg. To
|
||||
modify memory, we substitute the memory location and the new
|
||||
contents for the first and second args, etc...
|
||||
|
||||
RESP_DELIM used to home in on the response string, and is used to
|
||||
disambiguate the answer within the pile of text returned by the monitor.
|
||||
This should be a unique string that immediately precedes the answer. Ie: if
|
||||
your monitor prints out `PC: 00000001= ' in response to asking for the PC,
|
||||
you should use `: ' as the RESP_DELIM. RESP_DELIM may be NULL if the res-
|
||||
ponse is going to be ignored, or has no particular leading text.
|
||||
disambiguate the answer within the pile of text returned by the
|
||||
monitor. This should be a unique string that immediately precedes
|
||||
the answer. Ie: if your monitor prints out `PC: 00000001= ' in
|
||||
response to asking for the PC, you should use `: ' as the
|
||||
RESP_DELIM. RESP_DELIM may be NULL if the res- ponse is going to
|
||||
be ignored, or has no particular leading text.
|
||||
|
||||
TERM is the string that the monitor outputs to indicate that it is idle, and
|
||||
waiting for input. This is usually a prompt of some sort. In the previous
|
||||
example, it would be `= '. It is important that TERM really means that the
|
||||
monitor is idle, otherwise GDB may try to type at it when it isn't ready for
|
||||
input. This is a problem because many monitors cannot deal with type-ahead.
|
||||
TERM may be NULL if the normal prompt is output.
|
||||
TERM is the string that the monitor outputs to indicate that it is
|
||||
idle, and waiting for input. This is usually a prompt of some
|
||||
sort. In the previous example, it would be `= '. It is important
|
||||
that TERM really means that the monitor is idle, otherwise GDB may
|
||||
try to type at it when it isn't ready for input. This is a problem
|
||||
because many monitors cannot deal with type-ahead. TERM may be
|
||||
NULL if the normal prompt is output.
|
||||
|
||||
TERM_CMD is used to quit out of the subcommand mode and get back to the main
|
||||
prompt. TERM_CMD may be NULL if it isn't necessary. It will also be
|
||||
ignored if TERM is NULL.
|
||||
*/
|
||||
TERM_CMD is used to quit out of the subcommand mode and get back to
|
||||
the main prompt. TERM_CMD may be NULL if it isn't necessary. It
|
||||
will also be ignored if TERM is NULL. */
|
||||
|
||||
struct memrw_cmd
|
||||
{
|
||||
@ -104,68 +106,52 @@ struct monitor_ops
|
||||
int magic; /* Check value */
|
||||
};
|
||||
|
||||
/* The monitor ops magic number, used to detect if an ops structure doesn't
|
||||
have the right number of entries filled in. */
|
||||
|
||||
#define MONITOR_OPS_MAGIC 600925
|
||||
|
||||
/* Flag defintions */
|
||||
/* Flag definitions. */
|
||||
|
||||
#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 */
|
||||
/* If set, then clear breakpoint command uses address, otherwise it
|
||||
uses an index returned by the monitor. */
|
||||
|
||||
#define MO_NO_ECHO_ON_OPEN 0x40 /* don't expect echos in monitor_open */
|
||||
#define MO_CLR_BREAK_USES_ADDR 0x1
|
||||
|
||||
#define MO_SEND_BREAK_ON_STOP 0x80 /* If set, send break to stop monitor */
|
||||
/* If set, then memory fill command uses STARTADDR, ENDADDR+1, VALUE
|
||||
as args, else it uses STARTADDR, LENGTH, VALUE as args. */
|
||||
|
||||
extern struct monitor_ops *current_monitor;
|
||||
#define MO_FILL_USES_ADDR 0x2
|
||||
|
||||
#define LOADTYPES (current_monitor->loadtypes)
|
||||
#define LOADPROTOS (current_monitor->loadprotos)
|
||||
#define INIT_CMD (current_monitor->init)
|
||||
#define CONT_CMD (current_monitor->cont)
|
||||
#define STEP_CMD (current_monitor->step)
|
||||
#define SET_BREAK_CMD (current_monitor->set_break)
|
||||
#define CLR_BREAK_CMD (current_monitor->clr_break)
|
||||
#define SET_MEM (current_monitor->setmem)
|
||||
#define GET_MEM (current_monitor->getmem)
|
||||
#define LOAD_CMD (current_monitor->load)
|
||||
#define GET_REG (current_monitor->regget)
|
||||
#define SET_REG (current_monitor->regset)
|
||||
#define CMD_END (current_monitor->cmd_end)
|
||||
#define CMD_DELIM (current_monitor->cmd_delim)
|
||||
#define PROMPT (current_monitor->prompt)
|
||||
#define TARGET_OPS (current_monitor->target)
|
||||
#define TARGET_NAME (current_monitor->target->to_shortname)
|
||||
#define BAUDRATES (current_monitor->baudrates)
|
||||
#define STOPBITS (current_monitor->stopbits)
|
||||
#define REGNAMES(x) (current_monitor->regnames[x])
|
||||
#define ROMCMD(x) (x.cmd)
|
||||
#define ROMDELIM(x) (x.delim)
|
||||
#define ROMRES(x) (x.result)
|
||||
/* If set, then monitor doesn't automatically supply register dump
|
||||
when coming back after a continue. */
|
||||
|
||||
#define push_monitor(x) current_monitor = x;
|
||||
#define MO_NEED_REGDUMP_AFTER_CONT 0x4
|
||||
|
||||
/* getmem needs start addr and end addr */
|
||||
|
||||
#define MO_GETMEM_NEEDS_RANGE 0x8
|
||||
|
||||
/* getmem can only read one loc at a time */
|
||||
|
||||
#define MO_GETMEM_READ_SINGLE 0x10
|
||||
|
||||
/* handle \r\n combinations */
|
||||
|
||||
#define MO_HANDLE_NL 0x20
|
||||
|
||||
/* don't expect echos in monitor_open */
|
||||
|
||||
#define MO_NO_ECHO_ON_OPEN 0x40
|
||||
|
||||
/* If set, send break to stop monitor */
|
||||
|
||||
#define MO_SEND_BREAK_ON_STOP 0x80
|
||||
|
||||
#define SREC_SIZE 160
|
||||
|
||||
/*
|
||||
* FIXME: These are to temporarily maintain compatability with the
|
||||
* old monitor structure till remote-mon.c is fixed to work
|
||||
* like the *-rom.c files.
|
||||
*/
|
||||
#define MEM_PROMPT (current_monitor->loadtypes)
|
||||
#define MEM_SET_CMD (current_monitor->setmem)
|
||||
#define MEM_DIS_CMD (current_monitor->getmem)
|
||||
#define REG_DELIM (current_monitor->regset.delim)
|
||||
|
||||
extern void monitor_open PARAMS ((char *args, struct monitor_ops *ops, int from_tty));
|
||||
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));
|
||||
|
@ -33,6 +33,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
of ROMBUG is not available yet.
|
||||
*/
|
||||
|
||||
/* FIXME This file needs to be rewritten if it's to work again, either
|
||||
to self-contained or to use the new monitor interface. */
|
||||
|
||||
#include "defs.h"
|
||||
#include "gdbcore.h"
|
||||
#include "target.h"
|
||||
@ -54,7 +57,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
#include "objfiles.h"
|
||||
#include "gdb-stabs.h"
|
||||
|
||||
struct monitor_ops *current_monitor;
|
||||
struct cmd_list_element *showlist;
|
||||
extern struct target_ops rombug_ops; /* Forward declaration */
|
||||
extern struct monitor_ops rombug_cmds; /* Forward declaration */
|
||||
|
Loading…
Reference in New Issue
Block a user