X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gdb%2Fser-go32.c;h=bf7bffbe58440393b9fa1dd9971f7ffe6e9e96c1;hb=12a8555a5402b46da5ad39e29156c0d6b3a81a78;hp=bbcf6afe60c4302079ac4ec609c544505f17c277;hpb=236af5e336970a6b58cd17e0a2981bd96f3d09a0;p=external%2Fbinutils.git diff --git a/gdb/ser-go32.c b/gdb/ser-go32.c index bbcf6af..bf7bffb 100644 --- a/gdb/ser-go32.c +++ b/gdb/ser-go32.c @@ -1,5 +1,5 @@ /* Remote serial interface for local (hardwired) serial ports for GO32. - Copyright (C) 1992-2015 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. Contributed by Nigel Stephens, Algorithmics Ltd. (nigel@algor.co.uk). @@ -593,9 +593,26 @@ dos_close (struct serial *scb) } +/* Implementation of the serial_ops flush_output method. */ static int -dos_noop (struct serial *scb) +dos_flush_output (struct serial *scb) +{ + return 0; +} + +/* Implementation of the serial_ops setparity method. */ + +static int +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; } @@ -616,6 +633,8 @@ dos_readchar (struct serial *scb, int timeout) then = rawclock () + (timeout * RAWHZ); while ((c = dos_getc (port)) < 0) { + QUIT; + if (timeout >= 0 && (rawclock () - then) >= 0) return SERIAL_TIMEOUT; } @@ -643,7 +662,7 @@ dos_get_tty_state (struct serial *scb) return NULL; } - state = (struct dos_ttystate *) xmalloc (sizeof *state); + state = XNEW (struct dos_ttystate); *state = *port; return (serial_ttystate) state; } @@ -653,7 +672,7 @@ dos_copy_tty_state (struct serial *scb, serial_ttystate ttystate) { 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; @@ -670,17 +689,6 @@ dos_set_tty_state (struct serial *scb, serial_ttystate ttystate) } static int -dos_noflush_set_tty_state (struct serial *scb, serial_ttystate new_ttystate, - serial_ttystate old_ttystate) -{ - struct dos_ttystate *state; - - state = (struct dos_ttystate *) new_ttystate; - dos_setbaudrate (scb, state->baudrate); - return 0; -} - -static int dos_flush_input (struct serial *scb) { struct dos_ttystate *port = &ports[scb->fd]; @@ -790,10 +798,12 @@ dos_write (struct serial *scb, const void *buf, size_t count) 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; @@ -853,7 +863,7 @@ static const struct serial_ops dos_ops = NULL, /* fdopen, not implemented */ dos_readchar, dos_write, - dos_noop, /* flush output */ + dos_flush_output, dos_flush_input, dos_sendbreak, dos_raw, @@ -861,11 +871,10 @@ static const struct serial_ops dos_ops = dos_copy_tty_state, dos_set_tty_state, dos_print_tty_state, - dos_noflush_set_tty_state, dos_setbaudrate, dos_setstopbits, - dos_noop, - dos_noop, /* Wait for output to drain. */ + dos_setparity, + dos_drain_output, (void (*)(struct serial *, int))NULL /* Change into async mode. */ }; @@ -878,7 +887,7 @@ gdb_pipe (int pdes[2]) } static void -dos_info (char *arg, int from_tty) +info_serial_command (const char *arg, int from_tty) { struct dos_ttystate *port; #ifdef DOS_STATS @@ -906,9 +915,6 @@ dos_info (char *arg, int from_tty) #endif } -/* -Wmissing-prototypes */ -extern initialize_file_ftype _initialize_ser_dos; - void _initialize_ser_dos (void) { @@ -978,6 +984,6 @@ Show COM4 interrupt request."), NULL, NULL, /* FIXME: i18n: */ &setlist, &showlist); - add_info ("serial", dos_info, + add_info ("serial", info_serial_command, _("Print DOS serial port status.")); }