X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=serialport.c;h=9697b7c1158a60a05efad37f2171c139ded90076;hb=1d5d2a166f582e06aa2848fe9ca9c33f85acd45d;hp=522cafa5e014eebb705bce00da23653a31232d44;hpb=8cf7c6978f9fa9c7ec706440080c10755f357b5c;p=libserialport.git diff --git a/serialport.c b/serialport.c index 522cafa..9697b7c 100644 --- a/serialport.c +++ b/serialport.c @@ -46,7 +46,8 @@ #include "linux/serial.h" #include "linux_termios.h" #if defined(TCGETX) && defined(TCSETX) && defined(HAVE_TERMIOX) -#define USE_TERMIOX +// FIXME: Temporarily disabled, breaks all lib functionality on some systems. +// #define USE_TERMIOX #endif #endif @@ -525,7 +526,7 @@ enum sp_return sp_flush(struct sp_port *port, enum sp_buffer buffers) flags = TCIOFLUSH; else if (buffers & SP_BUF_INPUT) flags = TCIFLUSH; - if (buffers & SP_BUF_OUTPUT) + else if (buffers & SP_BUF_OUTPUT) flags = TCOFLUSH; /* Returns 0 upon success, -1 upon failure. */ @@ -1028,7 +1029,7 @@ static enum sp_return set_config(struct sp_port *port, struct port_data *data, /* Non-standard baud rate */ if (i == NUM_STD_BAUDRATES) { #ifdef __APPLE__ - /* Set "dummy" baud rate */ + /* Set "dummy" baud rate. */ if (cfsetspeed(&data->term, B9600) < 0) return SP_ERR_FAIL; baud_nonstd = config->baudrate; @@ -1096,18 +1097,17 @@ static enum sp_return set_config(struct sp_port *port, struct port_data *data, #ifdef USE_TERMIOX data->flow &= ~(RTS_FLOW | CTS_FLOW); switch (config->rts) { - case SP_RTS_OFF: - case SP_RTS_ON: - controlbits = TIOCM_RTS; - if (ioctl(port->fd, config->rts == SP_RTS_ON ? TIOCMBIS : TIOCMBIC, - &controlbits) < 0) - return SP_ERR_FAIL; - break; - case SP_RTS_FLOW_CONTROL: - data->flow |= RTS_FLOW; - break; - default: - break; + case SP_RTS_OFF: + case SP_RTS_ON: + controlbits = TIOCM_RTS; + if (ioctl(port->fd, config->rts == SP_RTS_ON ? TIOCMBIS : TIOCMBIC, &controlbits) < 0) + return SP_ERR_FAIL; + break; + case SP_RTS_FLOW_CONTROL: + data->flow |= RTS_FLOW; + break; + default: + break; } if (config->cts == SP_CTS_FLOW_CONTROL) data->flow |= CTS_FLOW; @@ -1152,18 +1152,17 @@ static enum sp_return set_config(struct sp_port *port, struct port_data *data, #ifdef USE_TERMIOX data->flow &= ~(DTR_FLOW | DSR_FLOW); switch (config->dtr) { - case SP_DTR_OFF: - case SP_DTR_ON: - controlbits = TIOCM_DTR; - if (ioctl(port->fd, config->dtr == SP_DTR_ON ? TIOCMBIS : TIOCMBIC, - &controlbits) < 0) - return SP_ERR_FAIL; - break; - case SP_DTR_FLOW_CONTROL: - data->flow |= DTR_FLOW; - break; - default: - break; + case SP_DTR_OFF: + case SP_DTR_ON: + controlbits = TIOCM_DTR; + if (ioctl(port->fd, config->dtr == SP_DTR_ON ? TIOCMBIS : TIOCMBIC, &controlbits) < 0) + return SP_ERR_FAIL; + break; + case SP_DTR_FLOW_CONTROL: + data->flow |= DTR_FLOW; + break; + default: + break; } if (config->dsr == SP_DSR_FLOW_CONTROL) data->flow |= DSR_FLOW;