Fri Feb 25 09:41:11 1994 Jim Kingdon (kingdon@deneb.cygnus.com)
+ * remote.c, remote-mon.c, remote-utils.c, remote-utils.h,
+ target.h, remote-es.c, remote-nindy.c: Don't set baud rate if
+ baud_rate is -1. Remove sr_get_baud_rate and sr_set_baud_rate;
+ just use the global variable itself. When printing baud rate,
+ don't print a baud rate if baud_rate is -1.
+
* coffread.c (read_coff_symtab): Pass mst_file_* to
record_minimal_symbol for C_STAT symbols. Put C_EXT and C_STAT
symbols in the minimal symbols regardless of SDB_TYPE.
perror_with_name ("fcntl serial");
}
- if (SERIAL_SETBAUDRATE (es1800_desc, baud_rate))
+ if (baud_rate != -1)
{
- SERIAL_CLOSE (es1800_desc);
- perror_with_name (name);
+ if (SERIAL_SETBAUDRATE (es1800_desc, baud_rate))
+ {
+ SERIAL_CLOSE (es1800_desc);
+ perror_with_name (name);
+ }
}
SERIAL_RAW (es1800_desc);
if (monitor_desc == NULL)
perror_with_name(dev_name);
- /* The baud rate was specified when GDB was started. */
- if (SERIAL_SETBAUDRATE (monitor_desc, sr_get_baud_rate()))
+ if (baud_rate != -1)
{
- SERIAL_CLOSE (monitor_desc);
- perror_with_name (name);
+ if (SERIAL_SETBAUDRATE (monitor_desc, baud_rate))
+ {
+ SERIAL_CLOSE (monitor_desc);
+ perror_with_name (name);
+ }
}
SERIAL_RAW(monitor_desc);
/* Allow user to interrupt the following -- we could hang if there's
no NINDY at the other end of the remote tty. */
immediate_quit++;
- sprintf(baudrate, "%d", sr_get_baud_rate());
+ /* If baud_rate is -1, then ninConnect will not recognize the baud rate
+ and will deal with the situation in a (more or less) reasonable
+ fashion. */
+ sprintf(baudrate, "%d", baud_rate);
ninConnect(name, baudrate,
nindy_initial_brk, !from_tty, nindy_old_protocol);
immediate_quit--;
static void
nindy_files_info ()
{
- printf_unfiltered("\tAttached to %s at %d bps%s%s.\n", savename,
- sr_get_baud_rate(),
+ /* FIXME: this lies about the baud rate if we autobauded. */
+ printf_unfiltered("\tAttached to %s at %d bits per second%s%s.\n", savename,
+ baud_rate,
nindy_old_protocol? " in old protocol": "",
nindy_initial_brk? " with initial break": "");
}
/* check for missing or empty baud rate. */
CHECKDONE(p, q);
- sr_set_baud_rate(n);
+ baud_rate = n;
/* look for debug value. */
n = strtol(p, &q, 10);
if (!sr_get_desc())
perror_with_name((char *) sr_get_device());
- if (SERIAL_SETBAUDRATE(sr_get_desc(), sr_get_baud_rate()) != 0)
+ if (baud_rate != -1)
{
- SERIAL_CLOSE(sr_get_desc());
- perror_with_name(sr_get_device());
+ if (SERIAL_SETBAUDRATE(sr_get_desc(), baud_rate) != 0)
+ {
+ SERIAL_CLOSE(sr_get_desc());
+ perror_with_name(sr_get_device());
+ }
}
SERIAL_RAW (sr_get_desc());
gr_settings->clear_all_breakpoints = remove_breakpoints;
if (from_tty)
- printf_filtered ("Remote debugging using `%s' at baud rate of %d\n",
- sr_get_device(), sr_get_baud_rate());
+ {
+ printf_filtered ("Remote debugging using `%s'", sr_get_device ());
+ if (baud_rate != -1)
+ printf_filtered (" at baud rate of %d",
+ baud_rate);
+ print_filtered ("\n");
+ }
push_target(gr->ops);
gr_checkin();
#ifdef __GO32__
printf_filtered ("\tAttached to DOS asynctsr\n");
#else
- printf_filtered ("\tAttached to %s at %d baud\n",
- sr_get_device(), sr_get_baud_rate());
+ printf_filtered ("\tAttached to %s", sr_get_device());
+ if (baud_rate != -1)
+ printf_filtered ("at %d baud", baud_rate);
+ printf_filtered ("\n");
#endif
if (exec_bfd)
#define sr_get_debug() (remote_debug)
#define sr_set_debug(newval) (remote_debug = (newval))
-/* get and set baud rate. */
-#define sr_get_baud_rate() (baud_rate)
-#define sr_set_baud_rate(newval) (baud_rate = (newval))
-
/* get and set timeout. */
#define sr_get_timeout() (sr_settings.timeout)
#define sr_set_timeout(newval) (sr_settings.timeout = (newval))
int len, int write,
struct target_ops * target));
+#if 0
+ /* Enable this after 4.12. */
+
+ /* Search target memory. Start at STARTADDR and take LEN bytes of
+ target memory, and them with MASK, and compare to DATA. If they
+ match, set *ADDR_FOUND to the address we found it at, store the data
+ we found at LEN bytes starting at DATA_FOUND, and return. If
+ not, add INCREMENT to the search address and keep trying until
+ the search address is outside of the range [LORANGE,HIRANGE).
+
+ If we don't find anything, set *ADDR_FOUND to (CORE_ADDR)0 and return. */
+ void (*to_search) PARAMS ((int len, char *data, char *mask,
+ CORE_ADDR startaddr, int increment,
+ CORE_ADDR lorange, CORE_ADDR hirange,
+ CORE_ADDR *addr_found, char *data_found));
+
+#define target_search(len, data, mask, startaddr, increment, lorange, hirange, addr_found, data_found) \
+ (*current_target->to_search) (len, data, mask, startaddr, increment, \
+ lorange, hirange, addr_found, data_found)
+#endif /* 0 */
+
void (*to_files_info) PARAMS ((struct target_ops *));
int (*to_insert_breakpoint) PARAMS ((CORE_ADDR, char *));
int (*to_remove_breakpoint) PARAMS ((CORE_ADDR, char *));
#define target_resume(pid, step, siggnal) \
(*current_target->to_resume) (pid, step, siggnal)
-/* Wait for process pid to do something. Pid = -1 to wait for any pid to do
- something. Return pid of child, or -1 in case of error; store status
- through argument pointer STATUS. */
+/* Wait for process pid to do something. Pid = -1 to wait for any pid
+ to do something. Return pid of child, or -1 in case of error;
+ store status through argument pointer STATUS. Note that it is
+ *not* OK to return_to_top_level out of target_wait without popping
+ the debugging target from the stack; GDB isn't prepared to get back
+ to the prompt with a debugging target but without the frame cache,
+ stop_pc, etc., set up. */
#define target_wait(pid, status) \
(*current_target->to_wait) (pid, status)
information (higher values, more information). */
extern int remote_debug;
-/* Speed in bits per second. */
+/* Speed in bits per second, or -1 which means don't mess with the speed. */
extern int baud_rate;
\f
/* Functions for helping to write a native target. */