X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/putty/blobdiff_plain/e8c03e4c459322585f89917be8809a4eb6ed424b..115393d8e6050cc174ef15cc7cfaca23a81a3b89:/unix/uxser.c diff --git a/unix/uxser.c b/unix/uxser.c index 24b0124c..59f8aa74 100644 --- a/unix/uxser.c +++ b/unix/uxser.c @@ -129,9 +129,51 @@ static const char *serial_configure(Serial serial, Config *cfg) #ifdef B115200 CHECKBAUD(115200); #endif +#ifdef B153600 + CHECKBAUD(153600); +#endif #ifdef B230400 CHECKBAUD(230400); #endif +#ifdef B307200 + CHECKBAUD(307200); +#endif +#ifdef B460800 + CHECKBAUD(460800); +#endif +#ifdef B500000 + CHECKBAUD(500000); +#endif +#ifdef B576000 + CHECKBAUD(576000); +#endif +#ifdef B921600 + CHECKBAUD(921600); +#endif +#ifdef B1000000 + CHECKBAUD(1000000); +#endif +#ifdef B1152000 + CHECKBAUD(1152000); +#endif +#ifdef B1500000 + CHECKBAUD(1500000); +#endif +#ifdef B2000000 + CHECKBAUD(2000000); +#endif +#ifdef B2500000 + CHECKBAUD(2500000); +#endif +#ifdef B3000000 + CHECKBAUD(3000000); +#endif +#ifdef B3500000 + CHECKBAUD(3500000); +#endif +#ifdef B4000000 + CHECKBAUD(4000000); +#endif #undef CHECKBAUD #undef SETBAUD cfsetispeed(&options, bflag); @@ -342,6 +384,14 @@ static int serial_select_result(int fd, int event) */ finished = TRUE; } else if (ret < 0) { +#ifdef EAGAIN + if (errno == EAGAIN) + return 1; /* spurious */ +#endif +#ifdef EWOULDBLOCK + if (errno == EWOULDBLOCK) + return 1; /* spurious */ +#endif perror("read serial port"); exit(1); } else if (ret > 0) { @@ -536,5 +586,7 @@ Backend serial_backend = { serial_provide_logctx, serial_unthrottle, serial_cfg_info, - 1 + "serial", + PROT_SERIAL, + 0 };