* solib.c (solib_open): If path is relative, look for it
[deliverable/binutils-gdb.git] / gdb / remote-mips.c
index 8fb64a3a65a4bbc474ba5cbc7f22b567e9e64be7..1905c613b8d5f40ae71da79e46e83ce0f56c26bb 100644 (file)
@@ -457,7 +457,7 @@ static int monitor_warnings;
 
 
 static void
-close_ports ()
+close_ports (void)
 {
   mips_is_open = 0;
   SERIAL_CLOSE (mips_desc);
@@ -507,9 +507,7 @@ mips_error (char *string,...)
    ^x notation or in hex.  */
 
 static void
-fputc_readable (ch, file)
-     int ch;
-     struct ui_file *file;
+fputc_readable (int ch, struct ui_file *file)
 {
   if (ch == '\n')
     fputc_unfiltered ('\n', file);
@@ -528,9 +526,7 @@ fputc_readable (ch, file)
    ^x notation or in hex.  */
 
 static void
-fputs_readable (string, file)
-     char *string;
-     struct ui_file *file;
+fputs_readable (const char *string, struct ui_file *file)
 {
   int c;
 
@@ -544,11 +540,9 @@ fputs_readable (string, file)
  */
 
 int
-mips_expect_timeout (string, timeout)
-     char *string;
-     int timeout;
+mips_expect_timeout (const char *string, int timeout)
 {
-  char *p = string;
+  const char *p = string;
 
   if (remote_debug)
     {
@@ -557,7 +551,7 @@ mips_expect_timeout (string, timeout)
       fprintf_unfiltered (gdb_stdlog, "\", got \"");
     }
 
-  immediate_quit = 1;
+  immediate_quit++;
   while (1)
     {
       int c;
@@ -581,7 +575,7 @@ mips_expect_timeout (string, timeout)
        {
          if (*p == '\0')
            {
-             immediate_quit = 0;
+             immediate_quit--;
              if (remote_debug)
                fprintf_unfiltered (gdb_stdlog, "\": OK\n");
              return 1;
@@ -602,31 +596,29 @@ mips_expect_timeout (string, timeout)
  */
 
 int
-mips_expect (string)
-     char *string;
+mips_expect (const char *string)
 {
-  return mips_expect_timeout (string, 2);
+  return mips_expect_timeout (string, remote_timeout);
 }
 
 /* Read the required number of characters into the given buffer (which
    is assumed to be large enough). The only failure is a timeout. */
 int
-mips_getstring (string, n)
-     char *string;
-     int n;
+mips_getstring (char *string, int n)
 {
   char *p = string;
   int c;
 
-  immediate_quit = 1;
+  immediate_quit++;
   while (n > 0)
     {
-      c = SERIAL_READCHAR (mips_desc, 2);
+      c = SERIAL_READCHAR (mips_desc, remote_timeout);
 
       if (c == SERIAL_TIMEOUT)
        {
          fprintf_unfiltered (gdb_stderr,
                 "Failed to read %d characters from target (TIMEOUT)\n", n);
+         immediate_quit--;
          return 0;
        }
 
@@ -634,6 +626,7 @@ mips_getstring (string, n)
       n--;
     }
 
+  immediate_quit--;
   return 1;
 }
 
@@ -652,8 +645,7 @@ mips_getstring (string, n)
    port.  */
 
 static int
-mips_readchar (timeout)
-     int timeout;
+mips_readchar (int timeout)
 {
   int ch;
   static int state = 0;
@@ -731,11 +723,7 @@ mips_readchar (timeout)
    or -1 for timeout.  */
 
 static int
-mips_receive_header (hdr, pgarbage, ch, timeout)
-     unsigned char *hdr;
-     int *pgarbage;
-     int ch;
-     int timeout;
+mips_receive_header (unsigned char *hdr, int *pgarbage, int ch, int timeout)
 {
   int i;
 
@@ -807,11 +795,7 @@ mips_receive_header (hdr, pgarbage, ch, timeout)
    for success, -1 for timeout, -2 for error.  */
 
 static int
-mips_receive_trailer (trlr, pgarbage, pch, timeout)
-     unsigned char *trlr;
-     int *pgarbage;
-     int *pch;
-     int timeout;
+mips_receive_trailer (unsigned char *trlr, int *pgarbage, int *pch, int timeout)
 {
   int i;
   int ch;
@@ -833,10 +817,7 @@ mips_receive_trailer (trlr, pgarbage, pch, timeout)
    DATA points to the packet data.  LEN is the length of DATA.  */
 
 static int
-mips_cksum (hdr, data, len)
-     const unsigned char *hdr;
-     const unsigned char *data;
-     int len;
+mips_cksum (const unsigned char *hdr, const unsigned char *data, int len)
 {
   register const unsigned char *p;
   register int c;
@@ -861,9 +842,7 @@ mips_cksum (hdr, data, len)
 /* Send a packet containing the given ASCII string.  */
 
 static void
-mips_send_packet (s, get_ack)
-     const char *s;
-     int get_ack;
+mips_send_packet (const char *s, int get_ack)
 {
   /* unsigned */ int len;
   unsigned char *packet;
@@ -949,7 +928,7 @@ mips_send_packet (s, get_ack)
                {
                  int rch;
 
-                 rch = mips_readchar (2);
+                 rch = mips_readchar (remote_timeout);
                  if (rch == SYN)
                    {
                      ch = SYN;
@@ -961,7 +940,8 @@ mips_send_packet (s, get_ack)
                }
 
              if (i == len)
-               (void) mips_receive_trailer (trlr, &garbage, &ch, 2);
+               (void) mips_receive_trailer (trlr, &garbage, &ch,
+                                            remote_timeout);
 
              /* We don't bother checking the checksum, or providing an
                 ACK to the packet. */
@@ -1028,10 +1008,7 @@ mips_send_packet (s, get_ack)
    don't print an error message and return -1.  */
 
 static int
-mips_receive_packet (buff, throw_error, timeout)
-     char *buff;
-     int throw_error;
-     int timeout;
+mips_receive_packet (char *buff, int throw_error, int timeout)
 {
   int ch;
   int garbage;
@@ -1307,23 +1284,19 @@ mips_request (int cmd,
 }
 
 static void
-mips_initialize_cleanups (arg)
-     PTR arg;
+mips_initialize_cleanups (PTR arg)
 {
   mips_initializing = 0;
 }
 
 static void
-mips_exit_cleanups (arg)
-     PTR arg;
+mips_exit_cleanups (PTR arg)
 {
   mips_exiting = 0;
 }
 
 static void
-mips_send_command (cmd, prompt)
-     const char *cmd;
-     int prompt;
+mips_send_command (const char *cmd, int prompt)
 {
   SERIAL_WRITE (mips_desc, cmd, strlen (cmd));
   mips_expect (cmd);
@@ -1334,7 +1307,7 @@ mips_send_command (cmd, prompt)
 
 /* Enter remote (dbx) debug mode: */
 static void
-mips_enter_debug ()
+mips_enter_debug (void)
 {
   /* Reset the sequence numbers, ready for the new debug sequence: */
   mips_send_seq = 0;
@@ -1364,7 +1337,7 @@ mips_enter_debug ()
 
 /* Exit remote (dbx) debug mode, returning to the monitor prompt: */
 static int
-mips_exit_debug ()
+mips_exit_debug (void)
 {
   int err;
   struct cleanup *old_cleanups = make_cleanup (mips_exit_cleanups, NULL);
@@ -1395,7 +1368,7 @@ mips_exit_debug ()
    really connected.  */
 
 static void
-mips_initialize ()
+mips_initialize (void)
 {
   int err;
   struct cleanup *old_cleanups = make_cleanup (mips_initialize_cleanups, NULL);
@@ -1528,12 +1501,9 @@ mips_initialize ()
 
 /* Open a connection to the remote board.  */
 static void
-common_open (ops, name, from_tty, new_monitor, new_monitor_prompt)
-     struct target_ops *ops;
-     char *name;
-     int from_tty;
-     enum mips_monitor_type new_monitor;
-     char *new_monitor_prompt;
+common_open (struct target_ops *ops, char *name, int from_tty,
+            enum mips_monitor_type new_monitor,
+            const char *new_monitor_prompt)
 {
   char *ptype;
   char *serial_port_name;
@@ -1606,9 +1576,9 @@ device is attached to the target board (e.g., /dev/ttya).\n"
             the user didn't specify a local name, assume it's the same
             as the part of the remote name after the "host:".  */
          if (tftp_name)
-           free (tftp_name);
+           xfree (tftp_name);
          if (tftp_localname)
-           free (tftp_localname);
+           xfree (tftp_localname);
          if (local_name == NULL)
            if ((local_name = strchr (remote_name, ':')) != NULL)
              local_name++;     /* skip over the colon */
@@ -1654,13 +1624,11 @@ device is attached to the target board (e.g., /dev/ttya).\n"
   set_current_frame (create_new_frame (read_fp (), stop_pc));
   select_frame (get_current_frame (), 0);
   print_stack_frame (selected_frame, -1, 1);
-  free (serial_port_name);
+  xfree (serial_port_name);
 }
 
 static void
-mips_open (name, from_tty)
-     char *name;
-     int from_tty;
+mips_open (char *name, int from_tty)
 {
   const char *monitor_prompt = NULL;
   if (TARGET_ARCHITECTURE != NULL
@@ -1683,25 +1651,19 @@ mips_open (name, from_tty)
 }
 
 static void
-pmon_open (name, from_tty)
-     char *name;
-     int from_tty;
+pmon_open (char *name, int from_tty)
 {
   common_open (&pmon_ops, name, from_tty, MON_PMON, "PMON> ");
 }
 
 static void
-ddb_open (name, from_tty)
-     char *name;
-     int from_tty;
+ddb_open (char *name, int from_tty)
 {
   common_open (&ddb_ops, name, from_tty, MON_DDB, "NEC010>");
 }
 
 static void
-lsi_open (name, from_tty)
-     char *name;
-     int from_tty;
+lsi_open (char *name, int from_tty)
 {
   int i;
 
@@ -1715,8 +1677,7 @@ lsi_open (name, from_tty)
 /* Close a connection to the remote board.  */
 
 static void
-mips_close (quitting)
-     int quitting;
+mips_close (int quitting)
 {
   if (mips_is_open)
     {
@@ -1730,9 +1691,7 @@ mips_close (quitting)
 /* Detach from the remote board.  */
 
 static void
-mips_detach (args, from_tty)
-     char *args;
-     int from_tty;
+mips_detach (char *args, int from_tty)
 {
   if (args)
     error ("Argument given to \"detach\" when remotely debugging.");
@@ -1750,9 +1709,7 @@ mips_detach (args, from_tty)
    where PMON does return a reply.  */
 
 static void
-mips_resume (pid, step, siggnal)
-     int pid, step;
-     enum target_signal siggnal;
+mips_resume (int pid, int step, enum target_signal siggnal)
 {
   int err;
 
@@ -1766,8 +1723,7 @@ mips_resume (pid, step, siggnal)
 /* Return the signal corresponding to SIG, where SIG is the number which
    the MIPS protocol uses for the signal.  */
 enum target_signal
-mips_signal_from_protocol (sig)
-     int sig;
+mips_signal_from_protocol (int sig)
 {
   /* We allow a few more signals than the IDT board actually returns, on
      the theory that there is at least *some* hope that perhaps the numbering
@@ -1786,9 +1742,7 @@ mips_signal_from_protocol (sig)
 /* Wait until the remote stops, and return a wait status.  */
 
 static int
-mips_wait (pid, status)
-     int pid;
-     struct target_waitstatus *status;
+mips_wait (int pid, struct target_waitstatus *status)
 {
   int rstatus;
   int err;
@@ -1949,8 +1903,7 @@ mips_wait (pid, status)
 #define REGNO_OFFSET 96
 
 static int
-mips_map_regno (regno)
-     int regno;
+mips_map_regno (int regno)
 {
   if (regno < 32)
     return regno;
@@ -1979,8 +1932,7 @@ mips_map_regno (regno)
 /* Fetch the remote registers.  */
 
 static void
-mips_fetch_registers (regno)
-     int regno;
+mips_fetch_registers (int regno)
 {
   unsigned LONGEST val;
   int err;
@@ -2034,15 +1986,14 @@ mips_fetch_registers (regno)
    registers, so this function doesn't have to do anything.  */
 
 static void
-mips_prepare_to_store ()
+mips_prepare_to_store (void)
 {
 }
 
 /* Store remote register(s).  */
 
 static void
-mips_store_registers (regno)
-     int regno;
+mips_store_registers (int regno)
 {
   int err;
 
@@ -2063,8 +2014,7 @@ mips_store_registers (regno)
 /* Fetch a word from the target board.  */
 
 static unsigned int
-mips_fetch_word (addr)
-     CORE_ADDR addr;
+mips_fetch_word (CORE_ADDR addr)
 {
   unsigned int val;
   int err;
@@ -2088,10 +2038,7 @@ mips_fetch_word (addr)
 
 /* FIXME! make sure only 32-bit quantities get stored! */
 static int
-mips_store_word (addr, val, old_contents)
-     CORE_ADDR addr;
-     unsigned int val;
-     char *old_contents;
+mips_store_word (CORE_ADDR addr, unsigned int val, char *old_contents)
 {
   int err;
   unsigned int oldcontents;
@@ -2121,12 +2068,8 @@ mips_store_word (addr, val, old_contents)
 static int mask_address_p = 1;
 
 static int
-mips_xfer_memory (memaddr, myaddr, len, write, ignore)
-     CORE_ADDR memaddr;
-     char *myaddr;
-     int len;
-     int write;
-     struct target_ops *ignore;
+mips_xfer_memory (CORE_ADDR memaddr, char *myaddr, int len, int write,
+                 struct target_ops *ignore)
 {
   int i;
   CORE_ADDR addr;
@@ -2208,8 +2151,7 @@ mips_xfer_memory (memaddr, myaddr, len, write, ignore)
 /* Print info on this target.  */
 
 static void
-mips_files_info (ignore)
-     struct target_ops *ignore;
+mips_files_info (struct target_ops *ignore)
 {
   printf_unfiltered ("Debugging a MIPS board over a serial line.\n");
 }
@@ -2220,7 +2162,7 @@ mips_files_info (ignore)
    right port, we could interrupt the process with a break signal.  */
 
 static void
-mips_kill ()
+mips_kill (void)
 {
   if (!mips_wait_flag)
     return;
@@ -2273,10 +2215,7 @@ Give up (and stop debugging it)? "))
 /* Start running on the target board.  */
 
 static void
-mips_create_inferior (execfile, args, env)
-     char *execfile;
-     char *args;
-     char **env;
+mips_create_inferior (char *execfile, char *args, char **env)
 {
   CORE_ADDR entry_pt;
 
@@ -2303,7 +2242,7 @@ Can't pass arguments to remote MIPS board; arguments ignored.");
 /* Clean up after a process.  Actually nothing to do.  */
 
 static void
-mips_mourn_inferior ()
+mips_mourn_inferior (void)
 {
   if (current_ops != NULL)
     unpush_target (current_ops);
@@ -2322,9 +2261,7 @@ mips_mourn_inferior ()
    is accomplished via BREAKPOINT_MAX).  */
 
 static int
-mips_insert_breakpoint (addr, contents_cache)
-     CORE_ADDR addr;
-     char *contents_cache;
+mips_insert_breakpoint (CORE_ADDR addr, char *contents_cache)
 {
   if (monitor_supports_breakpoints)
     return set_breakpoint (addr, MIPS_INSTLEN, BREAK_FETCH);
@@ -2333,9 +2270,7 @@ mips_insert_breakpoint (addr, contents_cache)
 }
 
 static int
-mips_remove_breakpoint (addr, contents_cache)
-     CORE_ADDR addr;
-     char *contents_cache;
+mips_remove_breakpoint (CORE_ADDR addr, char *contents_cache)
 {
   if (monitor_supports_breakpoints)
     return clear_breakpoint (addr, MIPS_INSTLEN, BREAK_FETCH);
@@ -2355,9 +2290,7 @@ static CORE_ADDR mips_pmon_bp_info[PMON_MAX_BP];
 /* NOTE: The code relies on this vector being zero-initialised by the system */
 
 static int
-pmon_insert_breakpoint (addr, contents_cache)
-     CORE_ADDR addr;
-     char *contents_cache;
+pmon_insert_breakpoint (CORE_ADDR addr, char *contents_cache)
 {
   int status;
 
@@ -2376,7 +2309,7 @@ pmon_insert_breakpoint (addr, contents_cache)
 
       mips_expect ("Bpt ");
 
-      if (!mips_getstring (tbuff, 2))
+      if (!mips_getstring (tbuff, remote_timeout))
        return 1;
       tbuff[2] = '\0';         /* terminate the string */
       if (sscanf (tbuff, "%d", &bpnum) != 1)
@@ -2430,9 +2363,7 @@ pmon_insert_breakpoint (addr, contents_cache)
 }
 
 static int
-pmon_remove_breakpoint (addr, contents_cache)
-     CORE_ADDR addr;
-     char *contents_cache;
+pmon_remove_breakpoint (CORE_ADDR addr, char *contents_cache)
 {
   if (monitor_supports_breakpoints)
     {
@@ -2475,8 +2406,7 @@ pmon_remove_breakpoint (addr, contents_cache)
    implements the TARGET_CAN_USE_HARDWARE_WATCHPOINT macro.  */
 
 int
-remote_mips_can_use_hardware_watchpoint (cnt)
-     int cnt;
+remote_mips_can_use_hardware_watchpoint (int cnt)
 {
   return cnt < MAX_LSI_BREAKPOINTS && strcmp (target_shortname, "lsi") == 0;
 }
@@ -2486,9 +2416,7 @@ remote_mips_can_use_hardware_watchpoint (cnt)
    This is used for memory ref breakpoints.  */
 
 static unsigned long
-calculate_mask (addr, len)
-     CORE_ADDR addr;
-     int len;
+calculate_mask (CORE_ADDR addr, int len)
 {
   unsigned long mask;
   int i;
@@ -2511,9 +2439,7 @@ calculate_mask (addr, len)
    implement ordinary breakpoints using hardware facilities.  */
 
 int
-remote_mips_insert_hw_breakpoint (addr, contents_cache)
-     CORE_ADDR addr;
-     char *contents_cache;
+remote_mips_insert_hw_breakpoint (CORE_ADDR addr, char *contents_cache)
 {
   if (strcmp (target_shortname, "lsi") == 0)
     return mips_insert_breakpoint (addr, contents_cache);
@@ -2526,9 +2452,7 @@ remote_mips_insert_hw_breakpoint (addr, contents_cache)
    implement ordinary breakpoints using hardware facilities.  */
 
 int
-remote_mips_remove_hw_breakpoint (addr, contents_cache)
-     CORE_ADDR addr;
-     char *contents_cache;
+remote_mips_remove_hw_breakpoint (CORE_ADDR addr, char *contents_cache)
 {
   if (strcmp (target_shortname, "lsi") == 0)
     return mips_remove_breakpoint (addr, contents_cache);
@@ -2541,10 +2465,7 @@ remote_mips_remove_hw_breakpoint (addr, contents_cache)
    watchpoint. */
 
 int
-remote_mips_set_watchpoint (addr, len, type)
-     CORE_ADDR addr;
-     int len;
-     int type;
+remote_mips_set_watchpoint (CORE_ADDR addr, int len, int type)
 {
   if (set_breakpoint (addr, len, type))
     return -1;
@@ -2553,10 +2474,7 @@ remote_mips_set_watchpoint (addr, len, type)
 }
 
 int
-remote_mips_remove_watchpoint (addr, len, type)
-     CORE_ADDR addr;
-     int len;
-     int type;
+remote_mips_remove_watchpoint (CORE_ADDR addr, int len, int type)
 {
   if (clear_breakpoint (addr, len, type))
     return -1;
@@ -2574,10 +2492,7 @@ remote_mips_stopped_by_watchpoint (void)
 /* Insert a breakpoint.  */
 
 static int
-set_breakpoint (addr, len, type)
-     CORE_ADDR addr;
-     int len;
-     enum break_type type;
+set_breakpoint (CORE_ADDR addr, int len, enum break_type type)
 {
   return common_breakpoint (1, addr, len, type);
 }
@@ -2586,10 +2501,7 @@ set_breakpoint (addr, len, type)
 /* Clear a breakpoint.  */
 
 static int
-clear_breakpoint (addr, len, type)
-     CORE_ADDR addr;
-     int len;
-     enum break_type type;
+clear_breakpoint (CORE_ADDR addr, int len, enum break_type type)
 {
   return common_breakpoint (0, addr, len, type);
 }
@@ -2603,9 +2515,7 @@ clear_breakpoint (addr, len, type)
    This is a helper function for common_breakpoint.  */
 
 static int
-check_lsi_error (addr, rerrflg)
-     CORE_ADDR addr;
-     int rerrflg;
+check_lsi_error (CORE_ADDR addr, int rerrflg)
 {
   struct lsi_error *err;
   char *saddr = paddr_nz (addr);       /* printable address string */
@@ -2673,11 +2583,7 @@ check_lsi_error (addr, rerrflg)
    Return 0 if successful; otherwise 1.  */
 
 static int
-common_breakpoint (set, addr, len, type)
-     int set;
-     CORE_ADDR addr;
-     int len;
-     enum break_type type;
+common_breakpoint (int set, CORE_ADDR addr, int len, enum break_type type)
 {
   char buf[DATA_MAXLEN + 1];
   char cmd, rcmd;
@@ -2863,10 +2769,7 @@ common_breakpoint (set, addr, len, type)
 }
 \f
 static void
-send_srec (srec, len, addr)
-     char *srec;
-     int len;
-     CORE_ADDR addr;
+send_srec (char *srec, int len, CORE_ADDR addr)
 {
   while (1)
     {
@@ -2874,7 +2777,7 @@ send_srec (srec, len, addr)
 
       SERIAL_WRITE (mips_desc, srec, len);
 
-      ch = mips_readchar (2);
+      ch = mips_readchar (remote_timeout);
 
       switch (ch)
        {
@@ -2895,8 +2798,7 @@ send_srec (srec, len, addr)
 /*  Download a binary file by converting it to S records. */
 
 static void
-mips_load_srec (args)
-     char *args;
+mips_load_srec (char *args)
 {
   bfd *abfd;
   asection *s;
@@ -3014,12 +2916,8 @@ mips_load_srec (args)
  */
 
 static int
-mips_make_srec (buf, type, memaddr, myaddr, len)
-     char *buf;
-     int type;
-     CORE_ADDR memaddr;
-     unsigned char *myaddr;
-     int len;
+mips_make_srec (char *buf, int type, CORE_ADDR memaddr, unsigned char *myaddr,
+               int len)
 {
   unsigned char checksum;
   int i;
@@ -3086,11 +2984,7 @@ static char encoding[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01
    pointer non-NULL). The function returns the number of encoded
    characters written into the buffer. */
 static int
-pmon_makeb64 (v, p, n, chksum)
-     unsigned long v;
-     char *p;
-     int n;
-     int *chksum;
+pmon_makeb64 (unsigned long v, char *p, int n, int *chksum)
 {
   int count = (n / 6);
 
@@ -3134,11 +3028,7 @@ pmon_makeb64 (v, p, n, chksum)
 /* Shorthand function (that could be in-lined) to output the zero-fill
    escape sequence into the data stream. */
 static int
-pmon_zeroset (recsize, buff, amount, chksum)
-     int recsize;
-     char **buff;
-     int *amount;
-     unsigned int *chksum;
+pmon_zeroset (int recsize, char **buff, int *amount, unsigned int *chksum)
 {
   int count;
 
@@ -3150,10 +3040,7 @@ pmon_zeroset (recsize, buff, amount, chksum)
 }
 
 static int
-pmon_checkset (recsize, buff, value)
-     int recsize;
-     char **buff;
-     int *value;
+pmon_checkset (int recsize, char **buff, int *value)
 {
   int count;
 
@@ -3183,14 +3070,9 @@ pmon_checkset (recsize, buff, value)
    is for PMON 5.x on the Cogent Vr4300 board. */
 
 static void
-pmon_make_fastrec (outbuf, inbuf, inptr, inamount, recsize, csum, zerofill)
-     char **outbuf;
-     unsigned char *inbuf;
-     int *inptr;
-     int inamount;
-     int *recsize;
-     unsigned int *csum;
-     unsigned int *zerofill;
+pmon_make_fastrec (char **outbuf, unsigned char *inbuf, int *inptr,
+                  int inamount, int *recsize, unsigned int *csum,
+                  unsigned int *zerofill)
 {
   int count = 0;
   char *p = *outbuf;
@@ -3245,15 +3127,15 @@ pmon_make_fastrec (outbuf, inbuf, inptr, inamount, recsize, csum, zerofill)
 }
 
 static int
-pmon_check_ack (mesg)
-     char *mesg;
+pmon_check_ack (char *mesg)
 {
 #if defined(DOETXACK)
   int c;
 
   if (!tftp_in_use)
     {
-      c = SERIAL_READCHAR (udp_in_use ? udp_desc : mips_desc, 2);
+      c = SERIAL_READCHAR (udp_in_use ? udp_desc : mips_desc,
+                          remote_timeout);
       if ((c == SERIAL_TIMEOUT) || (c != 0x06))
        {
          fprintf_unfiltered (gdb_stderr,
@@ -3269,7 +3151,7 @@ pmon_check_ack (mesg)
    which is either a serial port or a UDP socket.  */
 
 static void
-pmon_start_download ()
+pmon_start_download (void)
 {
   if (tftp_in_use)
     {
@@ -3301,9 +3183,27 @@ mips_expect_download (char *string)
 }
 
 static void
-pmon_end_download (final, bintotal)
-     int final;
-     int bintotal;
+pmon_check_entry_address (char *entry_address, int final)
+{
+  char hexnumber[9];           /* includes '\0' space */
+  mips_expect_timeout (entry_address, tftp_in_use ? 15 : remote_timeout);
+  sprintf (hexnumber, "%x", final);
+  mips_expect (hexnumber);
+  mips_expect ("\r\n");
+}
+
+static int
+pmon_check_total (int bintotal)
+{
+  char hexnumber[9];           /* includes '\0' space */
+  mips_expect ("\r\ntotal = 0x");
+  sprintf (hexnumber, "%x", bintotal);
+  mips_expect (hexnumber);
+  return mips_expect_download (" bytes\r\n");
+}
+
+static void
+pmon_end_download (int final, int bintotal)
 {
   char hexnumber[9];           /* includes '\0' space */
 
@@ -3330,7 +3230,7 @@ pmon_end_download (final, bintotal)
       strcat (cmd, tftp_name);
       strcat (cmd, "\r");
       mips_send_command (cmd, 0);
-      free (cmd);
+      xfree (cmd);
       if (!mips_expect_download ("Downloading from "))
        return;
       if (!mips_expect_download (tftp_name))
@@ -3342,33 +3242,28 @@ pmon_end_download (final, bintotal)
   /* Wait for the stuff that PMON prints after the load has completed.
      The timeout value for use in the tftp case (15 seconds) was picked
      arbitrarily but might be too small for really large downloads. FIXME. */
-  if (mips_monitor == MON_LSI)
+  switch (mips_monitor)
     {
+    case MON_LSI:
+      pmon_check_ack ("termination");
+      pmon_check_entry_address ("Entry address is ", final);
+      if (!pmon_check_total (bintotal))
+       return;
+      break;
+    default:
+      pmon_check_entry_address ("Entry Address  = ", final);
       pmon_check_ack ("termination");
-      mips_expect_timeout ("Entry address is ", tftp_in_use ? 15 : 2);
+      if (!pmon_check_total (bintotal))
+       return;
+      break;
     }
-  else
-    mips_expect_timeout ("Entry Address  = ", tftp_in_use ? 15 : 2);
-
-  sprintf (hexnumber, "%x", final);
-  mips_expect (hexnumber);
-  mips_expect ("\r\n");
-  if (mips_monitor != MON_LSI)
-    pmon_check_ack ("termination");
-  mips_expect ("\r\ntotal = 0x");
-  sprintf (hexnumber, "%x", bintotal);
-  mips_expect (hexnumber);
-  if (!mips_expect_download (" bytes\r\n"))
-    return;
 
   if (tftp_in_use)
     remove (tftp_localname);   /* Remove temporary file */
 }
 
 static void
-pmon_download (buffer, length)
-     char *buffer;
-     int length;
+pmon_download (char *buffer, int length)
 {
   if (tftp_in_use)
     fwrite (buffer, 1, length, tftp_file);
@@ -3377,8 +3272,7 @@ pmon_download (buffer, length)
 }
 
 static void
-pmon_load_fast (file)
-     char *file;
+pmon_load_fast (char *file)
 {
   bfd *abfd;
   asection *s;
@@ -3525,9 +3419,7 @@ pmon_load_fast (file)
 /* mips_load -- download a file. */
 
 static void
-mips_load (file, from_tty)
-     char *file;
-     int from_tty;
+mips_load (char *file, int from_tty)
 {
   /* Get the board out of remote debugging mode.  */
   if (mips_exit_debug ())
@@ -3566,9 +3458,7 @@ mips_load (file, from_tty)
 /* Pass the command argument as a packet to PMON verbatim.  */
 
 static void
-pmon_command (args, from_tty)
-     char *args;
-     int from_tty;
+pmon_command (char *args, int from_tty)
 {
   char buf[DATA_MAXLEN + 1];
   int rlen;
@@ -3583,7 +3473,7 @@ pmon_command (args, from_tty)
 }
 \f
 void
-_initialize_remote_mips ()
+_initialize_remote_mips (void)
 {
   /* Initialize the fields in mips_ops that are common to all four targets.  */
   mips_ops.to_longname = "Remote MIPS debugging over serial line";
This page took 0.033588 seconds and 4 git commands to generate.