projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Sun Aug 1 22:58:18 1993 Stu Grossman (grossman at cygnus.com)
[deliverable/binutils-gdb.git]
/
gdb
/
remote-mm.c
diff --git
a/gdb/remote-mm.c
b/gdb/remote-mm.c
index d89840243565178e6b1e79aec6de176a149d3038..58a4653a8247253c215238dce8d6bbde4a366d2a 100644
(file)
--- a/
gdb/remote-mm.c
+++ b/
gdb/remote-mm.c
@@
-1,5
+1,5
@@
/* Remote debugging interface for Am290*0 running MiniMON monitor, for GDB.
/* Remote debugging interface for Am290*0 running MiniMON monitor, for GDB.
- Copyright
(C) 1990, 1991
Free Software Foundation, Inc.
+ Copyright
1990, 1991, 1992
Free Software Foundation, Inc.
Originally written by Daniel Mann at AMD.
This file is part of GDB.
Originally written by Daniel Mann at AMD.
This file is part of GDB.
@@
-29,7
+29,6
@@
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
You should get tagged at compile time if you need to make any
changes/additions. */
You should get tagged at compile time if you need to make any
changes/additions. */
-#include <stdio.h>
#include "defs.h"
#include "inferior.h"
#include "wait.h"
#include "defs.h"
#include "inferior.h"
#include "wait.h"
@@
-46,25
+45,14
@@
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
/* Offset of member MEMBER in a struct of type TYPE. */
#define offsetof(TYPE, MEMBER) ((int) &((TYPE *)0)->MEMBER)
/* Offset of member MEMBER in a struct of type TYPE. */
#define offsetof(TYPE, MEMBER) ((int) &((TYPE *)0)->MEMBER)
-/* #define DEBUG 1 /* */
-#ifdef DEBUG
-# define DENTER(NAME) (printf("Entering %s\n",NAME), fflush(stdout))
-# define DEXIT(NAME) (printf("Exiting %s\n",NAME), fflush(stdout))
-#else
-# define DENTER(NAME)
-# define DEXIT(NAME)
-#endif
-
#define DRAIN_INPUT() (msg_recv_serial((union msg_t*)0))
extern int stop_soon_quietly; /* for wait_for_inferior */
#define DRAIN_INPUT() (msg_recv_serial((union msg_t*)0))
extern int stop_soon_quietly; /* for wait_for_inferior */
-extern struct value *call_function_by_hand();
-
static void mm_resume();
static void mm_fetch_registers ();
static int fetch_register ();
static void mm_resume();
static void mm_fetch_registers ();
static int fetch_register ();
-static
int
mm_store_registers ();
+static
void
mm_store_registers ();
static int store_register ();
static int regnum_to_srnum();
static void mm_close ();
static int store_register ();
static int regnum_to_srnum();
static void mm_close ();
@@
-178,8
+166,6
@@
mm_create_inferior (execfile, args, env)
char *token[MAX_TOKENS];
char cmd_line[BUFFER_SIZE];
char *token[MAX_TOKENS];
char cmd_line[BUFFER_SIZE];
- DENTER("mm_create_inferior()");
-
if (args && *args)
error ("Can't pass arguments to remote mm process (yet).");
if (args && *args)
error ("Can't pass arguments to remote mm process (yet).");
@@
-199,26
+185,18
@@
mm_create_inferior (execfile, args, env)
Assuming you are at NYU debuging a kernel, i.e., no need to download.\n\n");
/* We will get a task spawn event immediately. */
Assuming you are at NYU debuging a kernel, i.e., no need to download.\n\n");
/* We will get a task spawn event immediately. */
-#ifdef NOTDEF /* start_remote() now does a wait without a resume
- so don't use it*/
- start_remote ();
-#else
init_wait_for_inferior ();
clear_proceed_status ();
stop_soon_quietly = 1;
proceed(-1,-1,0);
normal_stop ();
init_wait_for_inferior ();
clear_proceed_status ();
stop_soon_quietly = 1;
proceed(-1,-1,0);
normal_stop ();
-#endif
- DEXIT("mm_create_inferior()");
}
/**************************************************** REMOTE_MOURN_INFERIOR */
static void
mm_mourn()
{
}
/**************************************************** REMOTE_MOURN_INFERIOR */
static void
mm_mourn()
{
- DENTER("mm_mourn()");
pop_target (); /* Pop back to no-child state */
generic_mourn_inferior ();
pop_target (); /* Pop back to no-child state */
generic_mourn_inferior ();
- DEXIT("mm_mourn()");
}
/********************************************************************** damn_b
}
/********************************************************************** damn_b
@@
-282,8
+260,6
@@
mm_open (name, from_tty)
unsigned int prl;
char *p;
unsigned int prl;
char *p;
- DENTER("mm_open()");
-
/* Find the first whitespace character, it separates dev_name from
prog_name. */
for (p = name;
/* Find the first whitespace character, it separates dev_name from
prog_name. */
for (p = name;
@@
-434,8
+410,6
@@
erroid:
out_msg_buf->go_msg.length = 0;
msg_send_serial(out_msg_buf);
/* No message to expect after a GO */
out_msg_buf->go_msg.length = 0;
msg_send_serial(out_msg_buf);
/* No message to expect after a GO */
-
- DEXIT("mm_open()");
}
/**************************************************************** REMOTE_CLOSE
}
/**************************************************************** REMOTE_CLOSE
@@
-446,8
+420,6
@@
static void
mm_close (quitting) /*FIXME: how is quitting used */
int quitting;
{
mm_close (quitting) /*FIXME: how is quitting used */
int quitting;
{
- DENTER("mm_close()");
-
if (mm_desc < 0)
error ("Can't close remote connection: not debugging remotely.");
if (mm_desc < 0)
error ("Can't close remote connection: not debugging remotely.");
@@
-473,9
+445,6
@@
mm_close (quitting) /*FIXME: how is quitting used */
#endif
printf ("Ending remote debugging\n");
#endif
printf ("Ending remote debugging\n");
-
- DEXIT("mm_close()");
-
}
/************************************************************* REMOTE_ATACH */
}
/************************************************************* REMOTE_ATACH */
@@
-488,17
+457,12
@@
mm_attach (args, from_tty)
int from_tty;
{
int from_tty;
{
- DENTER("mm_attach()");
-
if (!mm_stream)
if (!mm_stream)
-
printf
("MiniMon not opened yet, use the 'target minimon' command.\n");
+
error
("MiniMon not opened yet, use the 'target minimon' command.\n");
- dont_repeat();
-
if (from_tty)
printf ("Attaching to remote program %s...\n", prog_name);
if (from_tty)
printf ("Attaching to remote program %s...\n", prog_name);
-
/* Make sure the target is currently running, it is supposed to be. */
/* FIXME: is it ok to send MiniMon a BREAK if it is already stopped in
* the dbg core. If so, we don't need to send this GO.
/* Make sure the target is currently running, it is supposed to be. */
/* FIXME: is it ok to send MiniMon a BREAK if it is already stopped in
* the dbg core. If so, we don't need to send this GO.
@@
-512,16
+476,6
@@
mm_attach (args, from_tty)
out_msg_buf->break_msg.code = BREAK;
out_msg_buf->break_msg.length = 0;
msg_send_serial(out_msg_buf);
out_msg_buf->break_msg.code = BREAK;
out_msg_buf->break_msg.length = 0;
msg_send_serial(out_msg_buf);
-
- mark_breakpoints_out ();
- init_wait_for_inferior ();
- clear_proceed_status ();
- stop_soon_quietly = 1;
- wait_for_inferior ();
- stop_soon_quietly = 0;
- normal_stop ();
-
- DEXIT("mm_attach()");
}
/********************************************************** REMOTE_DETACH */
/* Terminate the open connection to the remote debugger.
}
/********************************************************** REMOTE_DETACH */
/* Terminate the open connection to the remote debugger.
@@
-532,13
+486,11
@@
mm_detach (args,from_tty)
char *args;
int from_tty;
{
char *args;
int from_tty;
{
- DENTER("mm_dettach()");
remove_breakpoints(); /* Just in case there were any left in */
out_msg_buf->go_msg.code = GO;
out_msg_buf->go_msg.length = 0;
msg_send_serial(out_msg_buf);
pop_target(); /* calls mm_close to do the real work */
remove_breakpoints(); /* Just in case there were any left in */
out_msg_buf->go_msg.code = GO;
out_msg_buf->go_msg.length = 0;
msg_send_serial(out_msg_buf);
pop_target(); /* calls mm_close to do the real work */
- DEXIT("mm_dettach()");
}
}
@@
-546,11
+498,9
@@
mm_detach (args,from_tty)
** Tell the remote machine to resume. */
static void
** Tell the remote machine to resume. */
static void
-mm_resume (step, sig)
- int step, sig;
+mm_resume (
pid,
step, sig)
+ int
pid,
step, sig;
{
{
- DENTER("mm_resume()");
-
if (sig)
error ("Can't send signals to a remote MiniMon system.");
if (sig)
error ("Can't send signals to a remote MiniMon system.");
@@
-564,8
+514,6
@@
mm_resume (step, sig)
out_msg_buf->go_msg.length = 0;
msg_send_serial(out_msg_buf);
}
out_msg_buf->go_msg.length = 0;
msg_send_serial(out_msg_buf);
}
-
- DEXIT("mm_resume()");
}
/***************************************************************** REMOTE_WAIT
}
/***************************************************************** REMOTE_WAIT
@@
-580,7
+528,6
@@
mm_wait (status)
int old_timeout = timeout;
int old_immediate_quit = immediate_quit;
int old_timeout = timeout;
int old_immediate_quit = immediate_quit;
- DENTER("mm_wait()");
WSETEXIT ((*status), 0);
WSETEXIT ((*status), 0);
@@
-691,7
+638,6
@@
exit:
timeout = old_timeout; /* Restore original timeout value */
immediate_quit = old_immediate_quit;
timeout = old_timeout; /* Restore original timeout value */
immediate_quit = old_immediate_quit;
- DEXIT("mm_wait()");
return 0;
}
return 0;
}
@@
-710,8
+656,6
@@
int regno;
return;
}
return;
}
- DENTER("mm_fetch_registers()");
-
/* Gr1/rsp */
out_msg_buf->read_req_msg.byte_count = 4*1;
out_msg_buf->read_req_msg.memory_space = GLOBAL_REG;
/* Gr1/rsp */
out_msg_buf->read_req_msg.byte_count = 4*1;
out_msg_buf->read_req_msg.memory_space = GLOBAL_REG;
@@
-796,12
+740,10
@@
int regno;
{
int val = -1;
supply_register (FPE_REGNUM, &val);
{
int val = -1;
supply_register (FPE_REGNUM, &val);
- supply_register (INT_REGNUM, &val);
+ supply_register (INT
E
_REGNUM, &val);
supply_register (FPS_REGNUM, &val);
supply_register (EXO_REGNUM, &val);
}
supply_register (FPS_REGNUM, &val);
supply_register (EXO_REGNUM, &val);
}
-
- DEXIT("mm_fetch_registerS()");
}
}
@@
-811,16
+753,17
@@
int regno;
* Result is 0 for success, -1 for failure.
*/
* Result is 0 for success, -1 for failure.
*/
-static
int
+static
void
mm_store_registers (regno)
int regno;
{
int result;
mm_store_registers (regno)
int regno;
{
int result;
- if (regno >= 0)
- return(store_register(regno));
+ if (regno >= 0) {
+ store_register(regno);
+ return;
+ }
- DENTER("mm_store_registers()");
result = 0;
out_msg_buf->write_r_msg.code= WRITE_REQ;
result = 0;
out_msg_buf->write_r_msg.code= WRITE_REQ;
@@
-931,8
+874,6
@@
int regno;
}
registers_changed ();
}
registers_changed ();
- DEXIT("mm_store_registers()");
- return result;
}
/*************************************************** REMOTE_PREPARE_TO_STORE */
}
/*************************************************** REMOTE_PREPARE_TO_STORE */
@@
-983,7
+924,6
@@
mm_insert_breakpoint (addr, contents_cache)
CORE_ADDR addr;
char *contents_cache;
{
CORE_ADDR addr;
char *contents_cache;
{
- DENTER("mm_insert_breakpoint()");
out_msg_buf->bkpt_set_msg.code = BKPT_SET;
out_msg_buf->bkpt_set_msg.length = 4*4;
out_msg_buf->bkpt_set_msg.memory_space = I_MEM;
out_msg_buf->bkpt_set_msg.code = BKPT_SET;
out_msg_buf->bkpt_set_msg.length = 4*4;
out_msg_buf->bkpt_set_msg.memory_space = I_MEM;
@@
-992,10
+932,8
@@
mm_insert_breakpoint (addr, contents_cache)
out_msg_buf->bkpt_set_msg.bkpt_type = -1; /* use illop for 29000 */
msg_send_serial( out_msg_buf);
if (expect_msg(BKPT_SET_ACK,in_msg_buf,1)) {
out_msg_buf->bkpt_set_msg.bkpt_type = -1; /* use illop for 29000 */
msg_send_serial( out_msg_buf);
if (expect_msg(BKPT_SET_ACK,in_msg_buf,1)) {
- DEXIT("mm_insert_breakpoint() success");
return 0; /* Success */
} else {
return 0; /* Success */
} else {
- DEXIT("mm_insert_breakpoint() failure");
return 1; /* Failure */
}
}
return 1; /* Failure */
}
}
@@
-1006,17
+944,14
@@
mm_remove_breakpoint (addr, contents_cache)
CORE_ADDR addr;
char *contents_cache;
{
CORE_ADDR addr;
char *contents_cache;
{
- DENTER("mm_remove_breakpoint()");
out_msg_buf->bkpt_rm_msg.code = BKPT_RM;
out_msg_buf->bkpt_rm_msg.length = 4*3;
out_msg_buf->bkpt_rm_msg.memory_space = I_MEM;
out_msg_buf->bkpt_rm_msg.bkpt_addr = (ADDR32) addr;
msg_send_serial( out_msg_buf);
if (expect_msg(BKPT_RM_ACK,in_msg_buf,1)) {
out_msg_buf->bkpt_rm_msg.code = BKPT_RM;
out_msg_buf->bkpt_rm_msg.length = 4*3;
out_msg_buf->bkpt_rm_msg.memory_space = I_MEM;
out_msg_buf->bkpt_rm_msg.bkpt_addr = (ADDR32) addr;
msg_send_serial( out_msg_buf);
if (expect_msg(BKPT_RM_ACK,in_msg_buf,1)) {
- DEXIT("mm_remove_breakpoint()");
return 0; /* Success */
} else {
return 0; /* Success */
} else {
- DEXIT("mm_remove_breakpoint()");
return 1; /* Failure */
}
}
return 1; /* Failure */
}
}
@@
-1030,7
+965,6
@@
int from_tty;
{
char buf[4];
{
char buf[4];
- DENTER("mm_kill()");
#if defined(KERNEL_DEBUGGING)
/* We don't ever kill the kernel */
if (from_tty) {
#if defined(KERNEL_DEBUGGING)
/* We don't ever kill the kernel */
if (from_tty) {
@@
-1054,7
+988,6
@@
int from_tty;
}
pop_target();
#endif
}
pop_target();
#endif
- DEXIT("mm_kill()");
}
}
@@
-1085,7
+1018,7
@@
int from_tty;
/* You may need to do an init_target_mm() */
/* init_target_mm(?,?,?,?,?,?,?,?); */
immediate_quit--;
/* You may need to do an init_target_mm() */
/* init_target_mm(?,?,?,?,?,?,?,?); */
immediate_quit--;
- /* symbol_file_add (arg_string, from_tty, text_addr, 0); */
+ /* symbol_file_add (arg_string, from_tty, text_addr, 0
, 0
); */
#endif
}
#endif
}
@@
-1101,7
+1034,6
@@
mm_write_inferior_memory (memaddr, myaddr, len)
{
int i,nwritten;
{
int i,nwritten;
- /* DENTER("mm_write_inferior_memory()"); */
out_msg_buf->write_req_msg.code= WRITE_REQ;
out_msg_buf->write_req_msg.memory_space = mm_memory_space(memaddr);
out_msg_buf->write_req_msg.code= WRITE_REQ;
out_msg_buf->write_req_msg.memory_space = mm_memory_space(memaddr);
@@
-1122,7
+1054,6
@@
mm_write_inferior_memory (memaddr, myaddr, len)
break;
}
}
break;
}
}
- /* DEXIT("mm_write_inferior_memory()"); */
return(nwritten);
}
return(nwritten);
}
@@
-1137,7
+1068,6
@@
mm_read_inferior_memory(memaddr, myaddr, len)
{
int i,nread;
{
int i,nread;
- /* DENTER("mm_read_inferior_memory()"); */
out_msg_buf->read_req_msg.code= READ_REQ;
out_msg_buf->read_req_msg.memory_space = mm_memory_space(memaddr);
out_msg_buf->read_req_msg.code= READ_REQ;
out_msg_buf->read_req_msg.memory_space = mm_memory_space(memaddr);
@@
-1372,7
+1302,6
@@
fetch_register (regno)
int regno;
{
int result;
int regno;
{
int result;
- DENTER("mm_fetch_register()");
out_msg_buf->read_req_msg.code= READ_REQ;
out_msg_buf->read_req_msg.length = 4*3;
out_msg_buf->read_req_msg.byte_count = 4;
out_msg_buf->read_req_msg.code= READ_REQ;
out_msg_buf->read_req_msg.length = 4*3;
out_msg_buf->read_req_msg.byte_count = 4;
@@
-1413,7
+1342,6
@@
fetch_register (regno)
} else {
result = -1;
}
} else {
result = -1;
}
- DEXIT("mm_fetch_register()");
return result;
}
/*****************************************************************************/
return result;
}
/*****************************************************************************/
@@
-1426,7
+1354,6
@@
store_register (regno)
{
int result;
{
int result;
- DENTER("store_register()");
out_msg_buf->write_req_msg.code= WRITE_REQ;
out_msg_buf->write_req_msg.length = 4*4;
out_msg_buf->write_req_msg.byte_count = 4;
out_msg_buf->write_req_msg.code= WRITE_REQ;
out_msg_buf->write_req_msg.length = 4*4;
out_msg_buf->write_req_msg.byte_count = 4;
@@
-1473,7
+1400,6
@@
store_register (regno)
} else {
result = -1;
}
} else {
result = -1;
}
- DEXIT("store_register()");
return result;
}
/****************************************************************************/
return result;
}
/****************************************************************************/
@@
-1509,7
+1435,7
@@
int regno;
case FC_REGNUM: return(134);
case CR_REGNUM: return(135);
case FPE_REGNUM: return(160);
case FC_REGNUM: return(134);
case CR_REGNUM: return(135);
case FPE_REGNUM: return(160);
- case INT_REGNUM: return(161);
+ case INT
E
_REGNUM: return(161);
case FPS_REGNUM: return(162);
case EXO_REGNUM:return(164);
default:
case FPS_REGNUM: return(162);
case EXO_REGNUM:return(164);
default:
@@
-1613,13
+1539,11
@@
INT32 msgcode; /* Msg code we expect */
union msg_t *msg_buf; /* Where to put the message received */
int from_tty; /* Print message on error if non-zero */
{
union msg_t *msg_buf; /* Where to put the message received */
int from_tty; /* Print message on error if non-zero */
{
- /* DENTER("expect_msg()"); */
int retries=0;
while(msg_recv_serial(msg_buf) && (retries++<MAX_RETRIES));
if (retries >= MAX_RETRIES) {
printf("Expected msg %s, ",msg_str(msgcode));
printf("no message received!\n");
int retries=0;
while(msg_recv_serial(msg_buf) && (retries++<MAX_RETRIES));
if (retries >= MAX_RETRIES) {
printf("Expected msg %s, ",msg_str(msgcode));
printf("no message received!\n");
- /* DEXIT("expect_msg() failure"); */
return(0); /* Failure */
}
return(0); /* Failure */
}
@@
-1630,10
+1554,8
@@
int from_tty; /* Print message on error if non-zero */
if (msg_buf->generic_msg.code == ERROR)
printf("%s\n",error_msg_str(msg_buf->error_msg.error_code));
}
if (msg_buf->generic_msg.code == ERROR)
printf("%s\n",error_msg_str(msg_buf->error_msg.error_code));
}
- /* DEXIT("expect_msg() failure"); */
return(0); /* Failure */
}
return(0); /* Failure */
}
- /* DEXIT("expect_msg() success"); */
return(1); /* Success */
}
/****************************************************************************/
return(1); /* Success */
}
/****************************************************************************/
@@
-1674,17
+1596,18
@@
struct target_ops mm_ops = {
mm_open, mm_close,
mm_attach, mm_detach, mm_resume, mm_wait,
mm_fetch_registers, mm_store_registers,
mm_open, mm_close,
mm_attach, mm_detach, mm_resume, mm_wait,
mm_fetch_registers, mm_store_registers,
- mm_prepare_to_store,
0, 0, /* conv_to, conv_from */
+ mm_prepare_to_store,
mm_xfer_inferior_memory,
mm_files_info,
mm_insert_breakpoint, mm_remove_breakpoint, /* Breakpoints */
0, 0, 0, 0, 0, /* Terminal handling */
mm_kill, /* FIXME, kill */
mm_load,
mm_xfer_inferior_memory,
mm_files_info,
mm_insert_breakpoint, mm_remove_breakpoint, /* Breakpoints */
0, 0, 0, 0, 0, /* Terminal handling */
mm_kill, /* FIXME, kill */
mm_load,
- call_function_by_hand,
0, /* lookup_symbol */
mm_create_inferior, /* create_inferior */
mm_mourn, /* mourn_inferior FIXME */
0, /* lookup_symbol */
mm_create_inferior, /* create_inferior */
mm_mourn, /* mourn_inferior FIXME */
+ 0, /* can_run */
+ 0, /* notice_signals */
process_stratum, 0, /* next */
1, 1, 1, 1, 1, /* all mem, mem, stack, regs, exec */
0,0, /* sections, sections_end */
process_stratum, 0, /* next */
1, 1, 1, 1, 1, /* all mem, mem, stack, regs, exec */
0,0, /* sections, sections_end */
This page took
0.028632 seconds
and
4
git commands to generate.