diff --git a/sys/kern/tty_conf.c b/sys/kern/tty_conf.c index e1f1e44c88ad..15dcae61f4a4 100644 --- a/sys/kern/tty_conf.c +++ b/sys/kern/tty_conf.c @@ -1,4 +1,4 @@ -/* $NetBSD: tty_conf.c,v 1.24 1998/12/10 15:09:18 christos Exp $ */ +/* $NetBSD: tty_conf.c,v 1.25 2000/09/21 23:31:14 eeh Exp $ */ /*- * Copyright (c) 1982, 1986, 1991, 1993 @@ -101,6 +101,18 @@ int stripinput __P((int c, struct tty *tp)); int stripstart __P((struct tty *tp)); #endif +#include "kbd.h" +#if NKBD > 0 +int sunkbdinput __P((int c, struct tty *tp)); +int sunkbdstart __P((struct tty *tp)); +int sunkbdstart __P((struct tty *tp)); +#endif + +#include "ms.h" +#if NMS > 0 +int sunmsinput __P((int c, struct tty *tp)); +#endif + struct linesw linesw[] = { { ttylopen, ttylclose, ttread, ttwrite, nullioctl, @@ -148,6 +160,30 @@ struct linesw linesw[] = { ttynodisc, ttyerrclose, ttyerrio, ttyerrio, nullioctl, ttyerrinput, ttyerrstart, nullmodem }, #endif + +/* + * The following are special line disciplines for Sun style Keybaords and Mice. + * Since they are used to handle special hardware they are enabled if/when the + * hardware is detected and you cannot switch in or out of them by normal means. + * + * All I/O currently goes through the keyboard and mouse device nodes so the + * TTY does no I/O itself. + */ +#if NKBD > 0 + { ttylopen, ttylclose, ttyerrio, ttyerrio, nullioctl, + sunkbdinput, sunkbdstart, nullmodem }, /* 7- SUNKBDDISC */ +#else + { ttynodisc, ttyerrclose, ttyerrio, ttyerrio, nullioctl, + ttyerrinput, ttyerrstart, nullmodem }, +#endif + +#if NMS > 0 + { ttylopen, ttylclose, ttyerrio, ttyerrio, nullioctl, + sunmsinput, ttstart, nullmodem }, /* 8- SUNMOUSEDISC */ +#else + { ttynodisc, ttyerrclose, ttyerrio, ttyerrio, nullioctl, + ttyerrinput, ttyerrstart, nullmodem }, +#endif }; int nlinesw = sizeof(linesw) / sizeof(linesw[0]);