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. */
/* This is like remote.c but is for an esoteric situation--
- having a 29k board in a PC hooked up to a unix machine with
+ having a a29k board in a PC hooked up to a unix machine with
a serial line, and running ctty com1 on the PC, through which
the unix machine can run ebmon. Not to mention that the PC
has PC/NFS, so it can access the same executables that gdb can,
over the net in real time. */
-#define TM_FILE_OVERRIDE
#include "defs.h"
-#include <string.h>
-#include "tm-29k.h"
+#include "gdb_string.h"
#include "inferior.h"
+#include "bfd.h"
+#include "symfile.h"
#include "wait.h"
#include "value.h"
#include <ctype.h>
val = 0;
for (j = 0; j < 8; j++)
val = (val << 4) + get_hex_digit (j == 0);
- supply_register (regno++, &val);
+ supply_register (regno++, (char *) &val);
}
}
entry_pt = (int) bfd_get_start_address (exec_bfd);
-#ifdef CREATE_INFERIOR_HOOK
- CREATE_INFERIOR_HOOK (0); /* No process-ID */
-#endif
-
{
/* OK, now read in the file. Y=read, C=COFF, D=no symbols
0=start address, %s=filename. */
target_terminal_inferior ();
/* insert_step_breakpoint (); FIXME, do we need this? */
- proceed ((CORE_ADDR)entry_pt, -1, 0); /* Let 'er rip... */
+ proceed ((CORE_ADDR)entry_pt, TARGET_SIGNAL_DEFAULT, 0); /* Let 'er rip... */
}
/* Translate baud rates from integers to damn B_codes. Unix should
/* Tell the remote machine to resume. */
void
-eb_resume (step, sig)
- int step, sig;
+eb_resume (pid, step, sig)
+ int pid, step;
+ enum target_signal sig;
{
if (step)
{
int
eb_wait (status)
- WAITTYPE *status;
+ struct target_waitstatus *status;
{
/* Strings to look for. '?' means match any single character.
Note that with the algorithm we use, the initial character
int old_timeout = timeout;
- WSETEXIT ((*status), 0);
+ status->kind = TARGET_WAITKIND_EXITED;
+ status->value.integer = 0;
if (need_artificial_trap != 0)
{
- WSETSTOP ((*status), SIGTRAP);
+ status->kind = TARGET_WAITKIND_STOPPED;
+ status->value.sig = TARGET_SIGNAL_TRAP;
need_artificial_trap--;
return 0;
}
}
expect_prompt ();
if (*bp== '\0')
- WSETSTOP ((*status), SIGTRAP);
+ {
+ status->kind = TARGET_WAITKIND_STOPPED;
+ status->value.sig = TARGET_SIGNAL_TRAP;
+ }
else
- WSETEXIT ((*status), 0);
+ {
+ status->kind = TARGET_WAITKIND_EXITED;
+ status->value.integer = 0;
+ }
timeout = old_timeout;
return 0;
/* There doesn't seem to be any way to get these. */
{
int val = -1;
- supply_register (FPE_REGNUM, &val);
- supply_register (INT_REGNUM, &val);
- supply_register (FPS_REGNUM, &val);
- supply_register (EXO_REGNUM, &val);
+ supply_register (FPE_REGNUM, (char *) &val);
+ supply_register (INTE_REGNUM, (char *) &val);
+ supply_register (FPS_REGNUM, (char *) &val);
+ supply_register (EXO_REGNUM, (char *) &val);
}
write (eb_desc, "dw gr1,gr1\n", 11);
/* Store register REGNO, or all if REGNO == 0.
Return errno value. */
-int
+void
eb_store_register (regno)
int regno;
{
registers_changed ();
expect_prompt ();
}
- return 0;
}
/* Get ready to modify the registers array. On machines which store
eb_mourn_inferior ()
{
remove_breakpoints ();
+ unpush_target (&eb_ops);
generic_mourn_inferior (); /* Do all the proper things now */
}
/* Define the target subroutine names */
eb_open, eb_close,
0, eb_detach, eb_resume, eb_wait,
eb_fetch_register, eb_store_register,
- eb_prepare_to_store, 0, 0, /* conv_to, conv_from */
+ eb_prepare_to_store,
eb_xfer_inferior_memory, eb_files_info,
0, 0, /* Breakpoints */
0, 0, 0, 0, 0, /* Terminal handling */
eb_kill,
- 0, /* load */
+ generic_load, /* load */
0, /* lookup_symbol */
eb_create_inferior,
eb_mourn_inferior,
+ 0, /* can_run */
+ 0, /* notice_signals */
+ 0, /* to_stop */
process_stratum, 0, /* next */
1, 1, 1, 1, 1, /* all mem, mem, stack, regs, exec */
0, 0, /* Section pointers */