* main.c (baud_rate): Add FIXME comment about printing -1 value.

* remote-utils.c (usage): Fix message to be accurate and conform
	more closely to normal conventions.

	* remote-utils.c (gr_files_info): Have the exec_bfd test control
	whether to show information about exec_bfd, and not control whether
	to show information about device and speed.

	* remote-utils.c (gr_open): If sr_get_device returns NULL, give
	usage message, don't dump core.

	* remote-bug.c (bug_write_memory): Use alloca, not GCC extension
	for variable size array.
	(bug_fetch_register, bug_store_register): Rename "value" to
	"fpreg_buf" because some compilers don't like variables whose
	names are the same as types.
	(bug_store_register): Use a cast when converting char * to
	unsigned char *.
This commit is contained in:
Jim Kingdon
1994-01-28 02:18:39 +00:00
parent 81f6013aa2
commit 9c41f6a680
4 changed files with 67 additions and 43 deletions

View File

@ -1,5 +1,25 @@
Thu Jan 27 15:12:23 1994 Jim Kingdon (kingdon@lioth.cygnus.com) Thu Jan 27 15:12:23 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
* main.c (baud_rate): Add FIXME comment about printing -1 value.
* remote-utils.c (usage): Fix message to be accurate and conform
more closely to normal conventions.
* remote-utils.c (gr_files_info): Have the exec_bfd test control
whether to show information about exec_bfd, and not control whether
to show information about device and speed.
* remote-utils.c (gr_open): If sr_get_device returns NULL, give
usage message, don't dump core.
* remote-bug.c (bug_write_memory): Use alloca, not GCC extension
for variable size array.
(bug_fetch_register, bug_store_register): Rename "value" to
"fpreg_buf" because some compilers don't like variables whose
names are the same as types.
(bug_store_register): Use a cast when converting char * to
unsigned char *.
* symmisc.c (maintenance_print_symbols): Don't refer to the name * symmisc.c (maintenance_print_symbols): Don't refer to the name
of the command in error message (the text was referring to the old of the command in error message (the text was referring to the old
name of the command). name of the command).

View File

@ -306,6 +306,8 @@ int linesize = 100;
/* Baud rate specified for talking to serial target systems. Default /* Baud rate specified for talking to serial target systems. Default
is left as -1, so targets can choose their own defaults. */ is left as -1, so targets can choose their own defaults. */
/* FIXME: This means that "show remotebaud" and gr_files_info can print -1
or (unsigned int)-1. This is a Bad User Interface. */
int baud_rate = -1; int baud_rate = -1;

View File

@ -464,7 +464,7 @@ bug_fetch_register(regno)
{ {
/* Float register so we need to parse a strange data format. */ /* Float register so we need to parse a strange data format. */
long p; long p;
unsigned char value[10]; unsigned char fpreg_buf[10];
sr_write("rs ", 3); sr_write("rs ", 3);
sr_write(get_reg_name(regno), strlen(get_reg_name(regno))); sr_write(get_reg_name(regno), strlen(get_reg_name(regno)));
@ -476,31 +476,31 @@ bug_fetch_register(regno)
/* sign */ /* sign */
p = sr_get_hex_digit(1); p = sr_get_hex_digit(1);
value[0] = p << 7; fpreg_buf[0] = p << 7;
/* exponent */ /* exponent */
sr_expect("_"); sr_expect("_");
p = sr_get_hex_digit(1); p = sr_get_hex_digit(1);
value[0] += (p << 4); fpreg_buf[0] += (p << 4);
value[0] += sr_get_hex_digit(1); fpreg_buf[0] += sr_get_hex_digit(1);
value[1] = sr_get_hex_digit(1) << 4; fpreg_buf[1] = sr_get_hex_digit(1) << 4;
/* fraction */ /* fraction */
sr_expect("_"); sr_expect("_");
value[1] += sr_get_hex_digit(1); fpreg_buf[1] += sr_get_hex_digit(1);
value[2] = (sr_get_hex_digit(1) << 4) + sr_get_hex_digit(1); fpreg_buf[2] = (sr_get_hex_digit(1) << 4) + sr_get_hex_digit(1);
value[3] = (sr_get_hex_digit(1) << 4) + sr_get_hex_digit(1); fpreg_buf[3] = (sr_get_hex_digit(1) << 4) + sr_get_hex_digit(1);
value[4] = (sr_get_hex_digit(1) << 4) + sr_get_hex_digit(1); fpreg_buf[4] = (sr_get_hex_digit(1) << 4) + sr_get_hex_digit(1);
value[5] = (sr_get_hex_digit(1) << 4) + sr_get_hex_digit(1); fpreg_buf[5] = (sr_get_hex_digit(1) << 4) + sr_get_hex_digit(1);
value[6] = (sr_get_hex_digit(1) << 4) + sr_get_hex_digit(1); fpreg_buf[6] = (sr_get_hex_digit(1) << 4) + sr_get_hex_digit(1);
value[7] = (sr_get_hex_digit(1) << 4) + sr_get_hex_digit(1); fpreg_buf[7] = (sr_get_hex_digit(1) << 4) + sr_get_hex_digit(1);
value[8] = 0; fpreg_buf[8] = 0;
value[9] = 0; fpreg_buf[9] = 0;
gr_expect_prompt(); gr_expect_prompt();
supply_register(regno, value); supply_register(regno, fpreg_buf);
} }
return; return;
@ -536,23 +536,24 @@ bug_store_register (regno)
read_register(regno)); read_register(regno));
else else
{ {
unsigned char *value = &registers[REGISTER_BYTE(regno)]; unsigned char *fpreg_buf =
(unsigned char *)&registers[REGISTER_BYTE(regno)];
sprintf(buffer, "rs %s %1x_%02x%1x_%1x%02x%02x%02x%02x%02x%02x;d", sprintf(buffer, "rs %s %1x_%02x%1x_%1x%02x%02x%02x%02x%02x%02x;d",
regname, regname,
/* sign */ /* sign */
(value[0] >> 7) & 0xf, (fpreg_buf[0] >> 7) & 0xf,
/* exponent */ /* exponent */
value[0] & 0x7f, fpreg_buf[0] & 0x7f,
(value[1] >> 8) & 0xf, (fpreg_buf[1] >> 8) & 0xf,
/* fraction */ /* fraction */
value[1] & 0xf, fpreg_buf[1] & 0xf,
value[2], fpreg_buf[2],
value[3], fpreg_buf[3],
value[4], fpreg_buf[4],
value[5], fpreg_buf[5],
value[6], fpreg_buf[6],
value[7]); fpreg_buf[7]);
} }
sr_write_cr(buffer); sr_write_cr(buffer);
@ -684,7 +685,7 @@ bug_write_memory (memaddr, myaddr, len)
int checksum; int checksum;
int x; int x;
int retries; int retries;
char buffer[(srec_bytes + 8) << 1]; char *buffer = alloca ((srec_bytes + 8) << 1);
retries = 0; retries = 0;

View File

@ -76,10 +76,8 @@ usage(proto, junk)
if (junk != NULL) if (junk != NULL)
fprintf_unfiltered(gdb_stderr, "Unrecognized arguments: `%s'.\n", junk); fprintf_unfiltered(gdb_stderr, "Unrecognized arguments: `%s'.\n", junk);
/* FIXME-now: service@host? */ error ("Usage: target %s [DEVICE [SPEED [DEBUG]]]\n\
where DEVICE is the name of a device or HOST:PORT", proto, proto);
error("Usage: target %s <device <speed <debug>>>\n\
or target %s <host> <port>\n", proto, proto);
return; return;
} }
@ -167,6 +165,13 @@ gr_open(args, from_tty, gr)
if (sr_get_desc() != NULL) if (sr_get_desc() != NULL)
gr_close (0); gr_close (0);
/* If no args are specified, then we use the device specified by a
previous command or "set remotedevice". But if there is no
device, better stop now, not dump core. */
if (sr_get_device () == NULL)
usage (gr->ops->to_shortname, NULL);
sr_set_desc(SERIAL_OPEN (sr_get_device())); sr_set_desc(SERIAL_OPEN (sr_get_device()));
if (!sr_get_desc()) if (!sr_get_desc())
perror_with_name((char *) sr_get_device()); perror_with_name((char *) sr_get_device());
@ -430,22 +435,18 @@ void
gr_files_info (ops) gr_files_info (ops)
struct target_ops *ops; struct target_ops *ops;
{ {
char *file = "nothing"; #ifdef __GO32__
printf_filtered ("\tAttached to DOS asynctsr\n");
if (exec_bfd) #else
file = bfd_get_filename (exec_bfd); printf_filtered ("\tAttached to %s at %d baud\n",
sr_get_device(), sr_get_baud_rate());
#endif
if (exec_bfd) if (exec_bfd)
{ {
#ifdef __GO32__ printf_filtered ("\tand running program %s\n",
printf_filtered ("\tAttached to DOS asynctsr\n"); bfd_get_filename (exec_bfd));
#else
printf_filtered ("\tAttached to %s at %d baud\n",
sr_get_device(), sr_get_baud_rate());
#endif
} }
printf_filtered ("\tand running program %s\n", file);
printf_filtered ("\tusing the %s protocol.\n", ops->to_shortname); printf_filtered ("\tusing the %s protocol.\n", ops->to_shortname);
} }