summaryrefslogtreecommitdiff
path: root/sys/i386/isa/cy.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/i386/isa/cy.c')
-rw-r--r--sys/i386/isa/cy.c32
1 files changed, 6 insertions, 26 deletions
diff --git a/sys/i386/isa/cy.c b/sys/i386/isa/cy.c
index bd8d7a49930b..7852317cf456 100644
--- a/sys/i386/isa/cy.c
+++ b/sys/i386/isa/cy.c
@@ -27,7 +27,7 @@
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: cy.c,v 1.12 1995/07/29 04:05:53 bde Exp $
+ * $Id: cy.c,v 1.13 1995/07/29 08:33:06 bde Exp $
*/
#include "cy.h"
@@ -1599,31 +1599,6 @@ repeat:
if (incc <= 0 || !(tp->t_state & TS_ISOPEN))
continue;
/*
- * XXX only do this when we bypass ttyinput.
- */
- if (tp->t_rawq.c_cc + incc >= RB_I_HIGH_WATER
- && (com->state & CS_RTS_IFLOW || tp->t_iflag & IXOFF)
- && !(tp->t_state & TS_TBLOCK)
- /*
- * XXX - need flow control for all line disciplines.
- * Only have it in standard one now.
- */
- && linesw[tp->t_line].l_rint == ttyinput) {
- int putc_status = 0;
-
- if ((tp->t_iflag & IXOFF
- && tp->t_cc[VSTOP] != _POSIX_VDISABLE
- && (putc_status = putc(tp->t_cc[VSTOP],
- &tp->t_outq)) == 0)
- || com->state & CS_RTS_IFLOW) {
- tp->t_state |= TS_TBLOCK;
- ttstart(tp);
- if (putc_status != 0)
- /* Try again later. */
- tp->t_state &= ~TS_TBLOCK;
- }
- }
- /*
* Avoid the grotesquely inefficient lineswitch routine
* (ttyinput) in "raw" mode. It usually takes about 450
* instructions (that's without canonical processing or echo!).
@@ -1631,6 +1606,11 @@ repeat:
* call overhead).
*/
if (tp->t_state & TS_CAN_BYPASS_L_RINT) {
+ if (tp->t_rawq.c_cc + incc >= RB_I_HIGH_WATER
+ && (com->state & CS_RTS_IFLOW
+ || tp->t_iflag & IXOFF)
+ && !(tp->t_state & TS_TBLOCK))
+ ttyblock(tp);
tk_nin += incc;
tk_rawcc += incc;
tp->t_rawcc += incc;