[Com0com-cvs] com0com handflow.c,1.5,1.6
The virtual serial port driver for Windows.
Brought to you by:
vfrolov
From: Vyacheslav F. <vf...@us...> - 2006-05-19 12:16:30
|
Update of /cvsroot/com0com/com0com In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv13144 Modified Files: handflow.c Log Message: Implemented SERIAL_XOFF_CONTINUE Index: handflow.c =================================================================== RCS file: /cvsroot/com0com/com0com/handflow.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** handflow.c 17 May 2006 15:31:14 -0000 1.5 --- handflow.c 19 May 2006 12:16:19 -0000 1.6 *************** *** 20,23 **** --- 20,26 ---- * * $Log$ + * Revision 1.6 2006/05/19 12:16:19 vfrolov + * Implemented SERIAL_XOFF_CONTINUE + * * Revision 1.5 2006/05/17 15:31:14 vfrolov * Implemented SERIAL_TRANSMIT_TOGGLE *************** *** 76,81 **** // Set local side ! if ((pNewHandFlow->FlowReplace & SERIAL_AUTO_TRANSMIT) == 0) SetXonXoffHolding(pIoPortLocal, C0C_XCHAR_ON); if (!pHandFlow || --- 79,88 ---- // Set local side ! if (pHandFlow && ! ((pDevExt->handFlow.FlowReplace & SERIAL_AUTO_TRANSMIT) != 0) && ! ((pHandFlow->FlowReplace & SERIAL_AUTO_TRANSMIT) == 0)) ! { SetXonXoffHolding(pIoPortLocal, C0C_XCHAR_ON); + } if (!pHandFlow || *************** *** 166,169 **** --- 173,178 ---- if (C0C_BUFFER_BUSY(pReadBuf) > (C0C_BUFFER_SIZE(pReadBuf) - pNewHandFlow->XoffLimit)) { pIoPortLocal->writeHoldingRemote |= SERIAL_TX_WAITING_FOR_XON; + if ((pNewHandFlow->FlowReplace & SERIAL_XOFF_CONTINUE) == 0) + pIoPortLocal->writeHolding |= SERIAL_TX_WAITING_FOR_XON; pIoPortLocal->sendXonXoff = C0C_XCHAR_OFF; pIoPortLocal->tryWrite = TRUE; *************** *** 173,176 **** --- 182,186 ---- if (pIoPortLocal->writeHoldingRemote & SERIAL_TX_WAITING_FOR_XON) { pIoPortLocal->writeHoldingRemote &= ~SERIAL_TX_WAITING_FOR_XON; + pIoPortLocal->writeHolding &= ~SERIAL_TX_WAITING_FOR_XON; if (pIoPortLocal->sendXonXoff != C0C_XCHAR_OFF) { // XOFF was sent so send XON *************** *** 246,249 **** --- 256,261 ---- if (pHandFlowLocal->FlowReplace & SERIAL_AUTO_RECEIVE) { pIoPortLocal->writeHoldingRemote |= SERIAL_TX_WAITING_FOR_XON; + if ((pHandFlowLocal->FlowReplace & SERIAL_XOFF_CONTINUE) == 0) + pIoPortLocal->writeHolding |= SERIAL_TX_WAITING_FOR_XON; pIoPortLocal->sendXonXoff = C0C_XCHAR_OFF; pIoPortLocal->tryWrite = TRUE; *************** *** 266,269 **** --- 278,282 ---- if (pHandFlowLocal->FlowReplace & SERIAL_AUTO_RECEIVE) { pIoPortLocal->writeHoldingRemote &= ~SERIAL_TX_WAITING_FOR_XON; + pIoPortLocal->writeHolding &= ~SERIAL_TX_WAITING_FOR_XON; pIoPortLocal->sendXonXoff = C0C_XCHAR_ON; pIoPortLocal->tryWrite = TRUE; |