X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fremote-es.c;h=6423fe2ac36a53ff07ba67a3b02cf46e0f484d11;hb=39f770628a4eaf018fec8d55684bf2ec16ada9cc;hp=764af505ee1b91b5a1c69c19fd46dbeef5d14282;hpb=e1e9e218c189882084a89fdee655a0a523efbaf8;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/remote-es.c b/gdb/remote-es.c index 764af505ee..6423fe2ac3 100644 --- a/gdb/remote-es.c +++ b/gdb/remote-es.c @@ -1,5 +1,6 @@ /* Memory-access and commands for remote es1800 processes, for GDB. - Copyright (C) 1988, 1992, 2001 Free Software Foundation, Inc. + Copyright 1988, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 + Free Software Foundation, Inc. This file is added to GDB to make it possible to do debugging via an ES-1800 emulator. The code was originally written by Johan Holmberg @@ -109,6 +110,7 @@ #include "remote-utils.h" #include "gdbcore.h" #include "serial.h" +#include "regcache.h" /* Prototypes for local functions */ @@ -138,9 +140,9 @@ es1800_xfer_inferior_memory (CORE_ADDR, char *, int, int, static void es1800_prepare_to_store (void); -static int es1800_wait (int, struct target_waitstatus *); +static ptid_t es1800_wait (ptid_t, struct target_waitstatus *); -static void es1800_resume (int, int, enum target_signal); +static void es1800_resume (ptid_t, int, enum target_signal); static void es1800_detach (char *, int); @@ -498,7 +500,7 @@ es1800_detach (char *args, int from_tty) siggnal - the signal value to be given to the target (0 = no signal) */ static void -es1800_resume (int pid, int step, enum target_signal siggnal) +es1800_resume (ptid_t ptid, int step, enum target_signal siggnal) { char buf[PBUFSIZ]; @@ -521,8 +523,8 @@ es1800_resume (int pid, int step, enum target_signal siggnal) storing status in STATUS just as `wait' would. status - */ -static int -es1800_wait (int pid, struct target_waitstatus *status) +static ptid_t +es1800_wait (ptid_t ptid, struct target_waitstatus *status) { unsigned char buf[PBUFSIZ]; int old_timeout = timeout; @@ -587,7 +589,7 @@ es1800_wait (int pid, struct target_waitstatus *status) } signal (SIGINT, old_sigint); timeout = old_timeout; - return (0); + return inferior_ptid; } @@ -1204,9 +1206,9 @@ get_break_addr (int vec, CORE_ADDR *addrp) static void es1800_kill (void) { - if (inferior_pid != 0) + if (!ptid_equal (inferior_ptid, null_ptid)) { - inferior_pid = 0; + inferior_ptid = null_ptid; es1800_mourn_inferior (); } } @@ -1271,7 +1273,7 @@ es1800_load (char *filename, int from_tty) } breakpoint_init_inferior (); - inferior_pid = 0; + inferior_ptid = null_ptid; if (from_tty) { printf ("Downloading \"%s\" to the ES 1800\n", filename); @@ -1372,7 +1374,7 @@ bfd_copy (bfd *from_bfd, bfd *to_bfd) #endif -/* Start an process on the es1800 and set inferior_pid to the new +/* Start an process on the es1800 and set inferior_ptid to the new process' pid. execfile - the file to run args - arguments passed to the program @@ -1425,7 +1427,7 @@ es1800_create_inferior (char *execfile, char *args, char **env) /* The "process" (board) is already stopped awaiting our commands, and the program is already downloaded. We just set its PC and go. */ - inferior_pid = pid; /* Needed for wait_for_inferior below */ + inferior_ptid = pid_to_ptid (pid); /* Needed for wait_for_inferior below */ clear_proceed_status (); @@ -1959,7 +1961,7 @@ es1800_child_detach (char *args, int from_tty) pop_target (); if (from_tty) { - printf ("Ending debugging the process %d.\n", inferior_pid); + printf ("Ending debugging the process %d.\n", PIDGET (inferior_ptid)); } } @@ -2024,7 +2026,6 @@ Specify the serial device it is connected to (e.g. /dev/ttya)."; es1800_ops.to_thread_alive = 0; es1800_ops.to_stop = 0; es1800_ops.to_pid_to_exec_file = NULL; - es1800_ops.to_core_file_to_sym_file = NULL; es1800_ops.to_stratum = core_stratum; es1800_ops.DONT_USE = 0; es1800_ops.to_has_all_memory = 0; @@ -2097,7 +2098,6 @@ Specify the serial device it is connected to (e.g. /dev/ttya)."; es1800_child_ops.to_thread_alive = 0; es1800_child_ops.to_stop = 0; es1800_child_ops.to_pid_to_exec_file = NULL; - es1800_child_ops.to_core_file_to_sym_file = NULL; es1800_child_ops.to_stratum = process_stratum; es1800_child_ops.DONT_USE = 0; es1800_child_ops.to_has_all_memory = 1;