Changed cncheckc() interface so that it is 8-bit clean - return -1

instead of 0 if there is no input.

syscons.c:
Added missing spl locking in sccncheckc().  Return the same value as
sccngetc() would.  It is wrong for sccngetc() to return non-ASCII, but
stripping the non-ASCII bits doesn't help.
This commit is contained in:
Bruce Evans 1996-09-14 04:27:46 +00:00
parent 40b55a34ae
commit daed6ffd24
12 changed files with 40 additions and 25 deletions

View File

@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)clock.c 7.2 (Berkeley) 5/12/91
* $Id: clock.c,v 1.66 1996/07/30 19:26:47 bde Exp $
* $Id: clock.c,v 1.67 1996/08/02 21:16:26 bde Exp $
*/
/*
@ -605,7 +605,7 @@ startrtclock()
if (bootverbose) {
printf(
"Press a key on the console to abort clock calibration\n");
while (!cncheckc())
while (cncheckc() == -1)
calibrate_clocks();
}
#endif

View File

@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)clock.c 7.2 (Berkeley) 5/12/91
* $Id: clock.c,v 1.66 1996/07/30 19:26:47 bde Exp $
* $Id: clock.c,v 1.67 1996/08/02 21:16:26 bde Exp $
*/
/*
@ -605,7 +605,7 @@ startrtclock()
if (bootverbose) {
printf(
"Press a key on the console to abort clock calibration\n");
while (!cncheckc())
while (cncheckc() == -1)
calibrate_clocks();
}
#endif

View File

@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* from: @(#)com.c 7.5 (Berkeley) 5/16/91
* $Id: sio.c,v 1.144 1996/07/17 22:07:23 julian Exp $
* $Id: sio.c,v 1.145 1996/09/06 23:08:05 phk Exp $
*/
#include "opt_comconsole.h"
@ -2415,7 +2415,7 @@ siocncheckc(dev)
if (inb(iobase + com_lsr) & LSR_RXRDY)
c = inb(iobase + com_data);
else
c = 0;
c = -1;
siocnclose(&sp);
splx(s);
return (c);

View File

@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* $Id: syscons.c,v 1.169 1996/09/09 19:02:26 sos Exp $
* $Id: syscons.c,v 1.170 1996/09/10 19:14:49 peter Exp $
*/
#include "sc.h"
@ -1428,7 +1428,12 @@ sccngetc(dev_t dev)
int
sccncheckc(dev_t dev)
{
return (scgetc(1) & 0xff);
int c, s;
s = spltty();
c = scgetc(1);
splx(s);
return(c == NOKEY ? -1 : c); /* c == -1 can't happen */
}
static void

View File

@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)clock.c 7.2 (Berkeley) 5/12/91
* $Id: clock.c,v 1.66 1996/07/30 19:26:47 bde Exp $
* $Id: clock.c,v 1.67 1996/08/02 21:16:26 bde Exp $
*/
/*
@ -605,7 +605,7 @@ startrtclock()
if (bootverbose) {
printf(
"Press a key on the console to abort clock calibration\n");
while (!cncheckc())
while (cncheckc() == -1)
calibrate_clocks();
}
#endif

View File

@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)clock.c 7.2 (Berkeley) 5/12/91
* $Id: clock.c,v 1.66 1996/07/30 19:26:47 bde Exp $
* $Id: clock.c,v 1.67 1996/08/02 21:16:26 bde Exp $
*/
/*
@ -605,7 +605,7 @@ startrtclock()
if (bootverbose) {
printf(
"Press a key on the console to abort clock calibration\n");
while (!cncheckc())
while (cncheckc() == -1)
calibrate_clocks();
}
#endif

View File

@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* from: @(#)com.c 7.5 (Berkeley) 5/16/91
* $Id: sio.c,v 1.144 1996/07/17 22:07:23 julian Exp $
* $Id: sio.c,v 1.145 1996/09/06 23:08:05 phk Exp $
*/
#include "opt_comconsole.h"
@ -2415,7 +2415,7 @@ siocncheckc(dev)
if (inb(iobase + com_lsr) & LSR_RXRDY)
c = inb(iobase + com_data);
else
c = 0;
c = -1;
siocnclose(&sp);
splx(s);
return (c);

View File

@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* $Id: syscons.c,v 1.169 1996/09/09 19:02:26 sos Exp $
* $Id: syscons.c,v 1.170 1996/09/10 19:14:49 peter Exp $
*/
#include "sc.h"
@ -1428,7 +1428,12 @@ sccngetc(dev_t dev)
int
sccncheckc(dev_t dev)
{
return (scgetc(1) & 0xff);
int c, s;
s = spltty();
c = scgetc(1);
splx(s);
return(c == NOKEY ? -1 : c); /* c == -1 can't happen */
}
static void

View File

@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)wd.c 7.2 (Berkeley) 5/9/91
* $Id: wd.c,v 1.116 1996/09/06 23:08:13 phk Exp $
* $Id: wd.c,v 1.117 1996/09/06 23:32:41 pst Exp $
*/
/* TODO:
@ -1714,7 +1714,7 @@ wddump(dev_t dev)
static int wddoingadump = 0;
/* Toss any characters present prior to dump. */
while (cncheckc())
while (cncheckc() != -1)
;
/* Check for acceptable device. */
@ -1875,7 +1875,7 @@ out:
blknum = blknext;
/* Operator aborting dump? */
if (cncheckc())
if (cncheckc() != -1)
return (EINTR);
}
return (0);

View File

@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)clock.c 7.2 (Berkeley) 5/12/91
* $Id: clock.c,v 1.66 1996/07/30 19:26:47 bde Exp $
* $Id: clock.c,v 1.67 1996/08/02 21:16:26 bde Exp $
*/
/*
@ -605,7 +605,7 @@ startrtclock()
if (bootverbose) {
printf(
"Press a key on the console to abort clock calibration\n");
while (!cncheckc())
while (cncheckc() == -1)
calibrate_clocks();
}
#endif

View File

@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* from: @(#)com.c 7.5 (Berkeley) 5/16/91
* $Id: sio.c,v 1.144 1996/07/17 22:07:23 julian Exp $
* $Id: sio.c,v 1.145 1996/09/06 23:08:05 phk Exp $
*/
#include "opt_comconsole.h"
@ -2415,7 +2415,7 @@ siocncheckc(dev)
if (inb(iobase + com_lsr) & LSR_RXRDY)
c = inb(iobase + com_data);
else
c = 0;
c = -1;
siocnclose(&sp);
splx(s);
return (c);

View File

@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* $Id: syscons.c,v 1.169 1996/09/09 19:02:26 sos Exp $
* $Id: syscons.c,v 1.170 1996/09/10 19:14:49 peter Exp $
*/
#include "sc.h"
@ -1428,7 +1428,12 @@ sccngetc(dev_t dev)
int
sccncheckc(dev_t dev)
{
return (scgetc(1) & 0xff);
int c, s;
s = spltty();
c = scgetc(1);
splx(s);
return(c == NOKEY ? -1 : c); /* c == -1 can't happen */
}
static void