BSD 4_4_Lite2 release
[unix-history] / usr / src / sys / net / if_sl.c
index 56ce96f..e6ef3ad 100644 (file)
@@ -30,7 +30,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- *     @(#)if_sl.c     8.6 (Berkeley) 2/1/94
+ *     @(#)if_sl.c     8.9 (Berkeley) 1/9/95
  */
 
 /*
  */
 
 /*
@@ -176,8 +176,6 @@ struct sl_softc sl_softc[NSL];
 #define TRANS_FRAME_END                0xdc            /* transposed frame end */
 #define TRANS_FRAME_ESCAPE     0xdd            /* transposed frame esc */
 
 #define TRANS_FRAME_END                0xdc            /* transposed frame end */
 #define TRANS_FRAME_ESCAPE     0xdd            /* transposed frame esc */
 
-extern struct timeval time;
-
 static int slinit __P((struct sl_softc *));
 static struct mbuf *sl_btom __P((struct sl_softc *, int));
 
 static int slinit __P((struct sl_softc *));
 static struct mbuf *sl_btom __P((struct sl_softc *, int));
 
@@ -245,6 +243,7 @@ slopen(dev, tp)
        register struct sl_softc *sc;
        register int nsl;
        int error;
        register struct sl_softc *sc;
        register int nsl;
        int error;
+       int s;
 
        if (error = suser(p->p_ucred, &p->p_acflag))
                return (error);
 
        if (error = suser(p->p_ucred, &p->p_acflag))
                return (error);
@@ -259,6 +258,9 @@ slopen(dev, tp)
                        tp->t_sc = (caddr_t)sc;
                        sc->sc_ttyp = tp;
                        sc->sc_if.if_baudrate = tp->t_ospeed;
                        tp->t_sc = (caddr_t)sc;
                        sc->sc_ttyp = tp;
                        sc->sc_if.if_baudrate = tp->t_ospeed;
+                       s = spltty();
+                       tp->t_state |= TS_ISOPEN | TS_XCLUDE;
+                       splx(s);
                        ttyflush(tp, FREAD | FWRITE);
                        return (0);
                }
                        ttyflush(tp, FREAD | FWRITE);
                        return (0);
                }
@@ -279,6 +281,7 @@ slclose(tp)
        ttywflush(tp);
        s = splimp();           /* actually, max(spltty, splnet) */
        tp->t_line = 0;
        ttywflush(tp);
        s = splimp();           /* actually, max(spltty, splnet) */
        tp->t_line = 0;
+       tp->t_state = 0;
        sc = (struct sl_softc *)tp->t_sc;
        if (sc != NULL) {
                if_down(&sc->sc_if);
        sc = (struct sl_softc *)tp->t_sc;
        if (sc != NULL) {
                if_down(&sc->sc_if);
@@ -300,7 +303,7 @@ slclose(tp)
 int
 sltioctl(tp, cmd, data, flag)
        struct tty *tp;
 int
 sltioctl(tp, cmd, data, flag)
        struct tty *tp;
-       int cmd;
+       u_long cmd;
        caddr_t data;
        int flag;
 {
        caddr_t data;
        int flag;
 {
@@ -631,7 +634,7 @@ slinput(c, tp)
        sc = (struct sl_softc *)tp->t_sc;
        if (sc == NULL)
                return;
        sc = (struct sl_softc *)tp->t_sc;
        if (sc == NULL)
                return;
-       if (c & TTY_ERRORMASK || ((tp->t_state & TS_CARR_ON) == 0 &&
+       if ((c & TTY_ERRORMASK) || ((tp->t_state & TS_CARR_ON) == 0 &&
            (tp->t_cflag & CLOCAL) == 0)) {
                sc->sc_flags |= SC_ERROR;
                return;
            (tp->t_cflag & CLOCAL) == 0)) {
                sc->sc_flags |= SC_ERROR;
                return;
@@ -789,7 +792,7 @@ newpack:
 int
 slioctl(ifp, cmd, data)
        register struct ifnet *ifp;
 int
 slioctl(ifp, cmd, data)
        register struct ifnet *ifp;
-       int cmd;
+       u_long cmd;
        caddr_t data;
 {
        register struct ifaddr *ifa = (struct ifaddr *)data;
        caddr_t data;
 {
        register struct ifaddr *ifa = (struct ifaddr *)data;