BSD 4_3 release
[unix-history] / usr / src / sys / vaxif / if_css.c
index e47f840..6c0e332 100644 (file)
@@ -1,6 +1,13 @@
-/*      if_css.c     6.1     83/07/29     */
+/*
+ * Copyright (c) 1982, 1986 Regents of the University of California.
+ * All rights reserved.  The Berkeley software License Agreement
+ * specifies the terms and conditions for redistribution.
+ *
+ *     @(#)if_css.c    7.1 (Berkeley) 6/5/86
+ */
 
 #include "css.h"
 
 #include "css.h"
+#if NCSS > 0
 
 /*
  * DEC/CSS IMP11-A ARPAnet IMP interface driver.
 
 /*
  * DEC/CSS IMP11-A ARPAnet IMP interface driver.
  * device css0 ....  cssxint cssrint
  *
  * If you get it wrong, it will still autoconfig, but will just
  * device css0 ....  cssxint cssrint
  *
  * If you get it wrong, it will still autoconfig, but will just
- * sit there with RECIEVE IDLE indicated on the front panel.
+ * sit there with RECEIVE IDLE indicated on the front panel.
  */
 #include "../machine/pte.h"
 
  */
 #include "../machine/pte.h"
 
-#include "../h/param.h"
-#include "../h/systm.h"
-#include "../h/mbuf.h"
-#include "../h/buf.h"
-#include "../h/protosw.h"
-#include "../h/socket.h"
-#include "../h/vmmac.h"
+#include "param.h"
+#include "systm.h"
+#include "mbuf.h"
+#include "buf.h"
+#include "protosw.h"
+#include "socket.h"
+#include "vmmac.h"
 
 #include "../net/if.h"
 #include "../netimp/if_imp.h"
 
 #include "../vax/cpu.h"
 #include "../vax/mtpr.h"
 
 #include "../net/if.h"
 #include "../netimp/if_imp.h"
 
 #include "../vax/cpu.h"
 #include "../vax/mtpr.h"
-#include "../vaxif/if_cssreg.h"
-#include "../vaxif/if_uba.h"
+#include "if_cssreg.h"
+#include "if_uba.h"
 #include "../vaxuba/ubareg.h"
 #include "../vaxuba/ubavar.h"
 
 #include "../vaxuba/ubareg.h"
 #include "../vaxuba/ubavar.h"
 
@@ -129,7 +136,7 @@ cssattach(ui)
         } *ifimp;
 
         if ((ifimp = (struct ifimpcb *)impattach(ui, cssreset)) == 0)
         } *ifimp;
 
         if ((ifimp = (struct ifimpcb *)impattach(ui, cssreset)) == 0)
-                panic("cssattach");             /* XXX */
+                return;
         sc->css_if = &ifimp->ifimp_if;
         ip = &ifimp->ifimp_impcb;
         sc->css_ic = ip;
         sc->css_if = &ifimp->ifimp_if;
         ip = &ifimp->ifimp_impcb;
         sc->css_ic = ip;
@@ -156,6 +163,7 @@ cssreset(unit, uban)
                 return;
         printf(" css%d", unit);
         sc = &css_softc[unit];
                 return;
         printf(" css%d", unit);
         sc = &css_softc[unit];
+       sc->css_if->if_flags &= ~IFF_RUNNING;
         /* must go through IMP to allow it to set state */
         (*sc->css_if->if_init)(unit);
 }
         /* must go through IMP to allow it to set state */
         (*sc->css_if->if_init)(unit);
 }
@@ -189,8 +197,10 @@ cssinit(unit)
         if (if_ubainit(&sc->css_ifuba, ui->ui_ubanum, 0,(int)btoc(IMPMTU)) == 0) {
                 printf("css%d: can't initialize\n", unit);
                ui->ui_alive = 0;
         if (if_ubainit(&sc->css_ifuba, ui->ui_ubanum, 0,(int)btoc(IMPMTU)) == 0) {
                 printf("css%d: can't initialize\n", unit);
                ui->ui_alive = 0;
+               sc->css_if->if_flags &= ~(IFF_UP | IFF_RUNNING);
                return(0);
         }
                return(0);
         }
+       sc->css_if->if_flags |= IFF_RUNNING;
         addr = (struct cssdevice *)ui->ui_addr;
 
         /* reset the imp interface. */
         addr = (struct cssdevice *)ui->ui_addr;
 
         /* reset the imp interface. */
@@ -359,10 +369,10 @@ cssrint(unit)
        }
 
         /*
        }
 
         /*
-         * The last parameter is always 0 since using
+         * The offset parameter is always 0 since using
          * trailers on the ARPAnet is insane.
          */
          * trailers on the ARPAnet is insane.
          */
-        m = if_rubaget(&sc->css_ifuba, len, 0);
+        m = if_rubaget(&sc->css_ifuba, len, 0, sc->css_if);
         if (m == 0)
                 goto setup;
         if ((addr->css_icsr & IN_EOM) == 0) {
         if (m == 0)
                 goto setup;
         if ((addr->css_icsr & IN_EOM) == 0) {
@@ -389,3 +399,4 @@ setup:
         addr->css_icsr =
                 IN_HRDY | CSS_IE | IN_WEN | ((info & 0x30000) >> 12) | CSS_GO;
 }
         addr->css_icsr =
                 IN_HRDY | CSS_IE | IN_WEN | ((info & 0x30000) >> 12) | CSS_GO;
 }
+#endif