return desc;
}
+/* Read a single character from the remote end, masking it down to 7 bits. */
+
static int
-send_resp (desc, c)
+readchar (desc, timeout)
serial_t desc;
- char c;
+ int timeout;
{
- int i;
+ int ch;
- SERIAL_WRITE (desc, &c, 1);
- i = SERIAL_READCHAR (desc, 2);
-
- if (i >= 0)
- return i;
+ ch = SERIAL_READCHAR (desc, timeout);
- switch (i)
+ switch (ch)
{
+ case SERIAL_EOF:
+ error ("SPARClite remote connection closed");
case SERIAL_ERROR:
- perror_with_name ("Remote communication error");
+ perror_with_name ("SPARClite communication error");
case SERIAL_TIMEOUT:
- error ("Remote timeout");
- case SERIAL_EOF:
- error ("Remote connection closed");
+ error ("SPARClite remote timeout");
+ default:
+ return ch;
}
}
+static int
+send_resp (desc, c)
+ serial_t desc;
+ char c;
+{
+ SERIAL_WRITE (desc, &c, 1);
+ return readchar (desc, 2);
+}
+
static void
close_tty (ignore)
int ignore;
store_unsigned_integer (buffer + 1, 4, entry);
SERIAL_WRITE (remote_desc, buffer, 1 + 4);
- i = SERIAL_READCHAR (remote_desc, 2);
+ i = readchar (remote_desc, 2);
if (i != 0x55)
error ("Can't start SparcLite. Error code %d\n", i);
}
error ("Bad response from load command (0x%x)", i);
SERIAL_WRITE (remote_desc, buffer, 4 + 4 + len);
- i = SERIAL_READCHAR (remote_desc, 2);
- if (i < 0)
- error ("I/O error in serial code. Return code %d\n", i);
+ i = readchar (remote_desc, 2);
if (i != checksum)
error ("Bad checksum from load command (0x%x)", i);