1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-17 15:27:36 +00:00

Fix error in multiport part:

while input char not entered, output was suspended
This commit is contained in:
Andrey A. Chernov 1994-02-02 16:41:26 +00:00
parent f5645fe75b
commit 04af1a4e41
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=1076
3 changed files with 12 additions and 15 deletions

View File

@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* from: @(#)com.c 7.5 (Berkeley) 5/16/91
* $Id: sio.c,v 1.24 1994/01/31 08:52:12 ache Exp $
* $Id: sio.c,v 1.25 1994/01/31 19:07:59 ache Exp $
*/
#include "sio.h"
@ -872,16 +872,15 @@ siointr(unit)
possibly_more_intrs = FALSE;
for (unit = 0; unit < NSIO; ++unit) {
com = com_addr(unit);
if (com != NULL
&& (inb(com->int_id_port) & IIR_IMASK)
!= IIR_NOPEND) {
if (com != NULL) {
/*
* XXX call comintr1() instead of here from
* comwakeup(). The interrupt edge problem
* only exists for real interrupts.
*/
comintr1(com);
possibly_more_intrs = TRUE;
if ((inb(com->int_id_port) & IIR_IMASK) != IIR_NOPEND)
possibly_more_intrs = TRUE;
}
}
} while (possibly_more_intrs);

View File

@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* from: @(#)com.c 7.5 (Berkeley) 5/16/91
* $Id: sio.c,v 1.24 1994/01/31 08:52:12 ache Exp $
* $Id: sio.c,v 1.25 1994/01/31 19:07:59 ache Exp $
*/
#include "sio.h"
@ -872,16 +872,15 @@ siointr(unit)
possibly_more_intrs = FALSE;
for (unit = 0; unit < NSIO; ++unit) {
com = com_addr(unit);
if (com != NULL
&& (inb(com->int_id_port) & IIR_IMASK)
!= IIR_NOPEND) {
if (com != NULL) {
/*
* XXX call comintr1() instead of here from
* comwakeup(). The interrupt edge problem
* only exists for real interrupts.
*/
comintr1(com);
possibly_more_intrs = TRUE;
if ((inb(com->int_id_port) & IIR_IMASK) != IIR_NOPEND)
possibly_more_intrs = TRUE;
}
}
} while (possibly_more_intrs);

View File

@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* from: @(#)com.c 7.5 (Berkeley) 5/16/91
* $Id: sio.c,v 1.24 1994/01/31 08:52:12 ache Exp $
* $Id: sio.c,v 1.25 1994/01/31 19:07:59 ache Exp $
*/
#include "sio.h"
@ -872,16 +872,15 @@ siointr(unit)
possibly_more_intrs = FALSE;
for (unit = 0; unit < NSIO; ++unit) {
com = com_addr(unit);
if (com != NULL
&& (inb(com->int_id_port) & IIR_IMASK)
!= IIR_NOPEND) {
if (com != NULL) {
/*
* XXX call comintr1() instead of here from
* comwakeup(). The interrupt edge problem
* only exists for real interrupts.
*/
comintr1(com);
possibly_more_intrs = TRUE;
if ((inb(com->int_id_port) & IIR_IMASK) != IIR_NOPEND)
possibly_more_intrs = TRUE;
}
}
} while (possibly_more_intrs);