/* Remote serial interface for local (hardwired) serial ports for GO32.
- Copyright (C) 1992-2013 Free Software Foundation, Inc.
+ Copyright (C) 1992-2016 Free Software Foundation, Inc.
Contributed by Nigel Stephens, Algorithmics Ltd. (nigel@algor.co.uk).
#include "defs.h"
#include "gdbcmd.h"
#include "serial.h"
-#include "gdb_string.h"
-
-
/*
* NS16550 UART registers
*/
}
\f
+/* Implementation of the serial_ops flush_output method. */
+
+static int
+dos_flush_output (struct serial *scb)
+{
+ return 0;
+}
+
+/* Implementation of the serial_ops setparity method. */
static int
-dos_noop (struct serial *scb)
+dos_setparity (struct serial *scb, int parity)
+{
+ return 0;
+}
+
+/* Implementation of the serial_ops drain_output method. */
+
+static int
+dos_drain_output (struct serial *scb)
{
return 0;
}
then = rawclock () + (timeout * RAWHZ);
while ((c = dos_getc (port)) < 0)
{
+ QUIT;
+
if (timeout >= 0 && (rawclock () - then) >= 0)
return SERIAL_TIMEOUT;
}
return NULL;
}
- state = (struct dos_ttystate *) xmalloc (sizeof *state);
+ state = XNEW (struct dos_ttystate);
*state = *port;
return (serial_ttystate) state;
}
{
struct dos_ttystate *state;
- state = (struct dos_ttystate *) xmalloc (sizeof *state);
+ state = XNEW (struct dos_ttystate);
*state = *(struct dos_ttystate *) ttystate;
return (serial_ttystate) state;
size_t fifosize = port->fifo ? 16 : 1;
long then;
size_t cnt;
- const char *str = buf;
+ const char *str = (const char *) buf;
while (count > 0)
{
+ QUIT;
+
/* Send the data, fifosize bytes at a time. */
cnt = fifosize > count ? count : fifosize;
port->txbusy = 1;
}
-static struct serial_ops dos_ops =
+static const struct serial_ops dos_ops =
{
"hardwire",
- 0,
dos_open,
dos_close,
NULL, /* fdopen, not implemented */
dos_readchar,
dos_write,
- dos_noop, /* flush output */
+ dos_flush_output,
dos_flush_input,
dos_sendbreak,
dos_raw,
dos_noflush_set_tty_state,
dos_setbaudrate,
dos_setstopbits,
- dos_noop, /* Wait for output to drain. */
+ dos_setparity,
+ dos_drain_output,
(void (*)(struct serial *, int))NULL /* Change into async mode. */
};