cleaner silo overrun prints; print unit number when reset
authorBill Joy <wnj@ucbvax.Berkeley.EDU>
Sat, 7 Mar 1981 03:30:54 +0000 (19:30 -0800)
committerBill Joy <wnj@ucbvax.Berkeley.EDU>
Sat, 7 Mar 1981 03:30:54 +0000 (19:30 -0800)
SCCS-vsn: sys/vax/uba/dz.c 4.20
SCCS-vsn: sys/vax/uba/dh.c 4.27

usr/src/sys/vax/uba/dh.c
usr/src/sys/vax/uba/dz.c

index a37208b..ae319be 100644 (file)
@@ -1,4 +1,4 @@
-/*     dh.c    4.26    81/02/27        */
+/*     dh.c    4.27    81/03/06        */
 
 #include "dh.h"
 #if NDH > 0
 
 #include "dh.h"
 #if NDH > 0
@@ -322,6 +322,7 @@ dhrint(dh)
        register struct dhdevice *addr;
        register struct tty *tp0;
        register struct uba_dinfo *ui;
        register struct dhdevice *addr;
        register struct tty *tp0;
        register struct uba_dinfo *ui;
+       int overrun = 0;
 
        ui = dhinfo[dh];
        if (ui == 0 || ui->ui_alive == 0)
 
        ui = dhinfo[dh];
        if (ui == 0 || ui->ui_alive == 0)
@@ -342,8 +343,10 @@ dhrint(dh)
                        if ((tp->t_flags&(EVENP|ODDP))==EVENP
                         || (tp->t_flags&(EVENP|ODDP))==ODDP )
                                continue;
                        if ((tp->t_flags&(EVENP|ODDP))==EVENP
                         || (tp->t_flags&(EVENP|ODDP))==ODDP )
                                continue;
-               if (c & DH_DO)
-                       printf("O");
+               if ((c & DH_DO) && overrun == 0) {
+                       printf("dh%d: silo overflow\n", dh);
+                       overrun = 1;
+               }
                if (c & DH_FE)
                        /*
                         * At framing error (break) generate
                if (c & DH_FE)
                        /*
                         * At framing error (break) generate
@@ -458,7 +461,7 @@ dhxint(dh)
        addr = (struct dhdevice *)ui->ui_addr;
        if (addr->un.dhcsr & DH_NXM) {
                addr->un.dhcsr |= DH_CNI;
        addr = (struct dhdevice *)ui->ui_addr;
        if (addr->un.dhcsr & DH_NXM) {
                addr->un.dhcsr |= DH_CNI;
-               printf("dh%d NXM\n", dh);
+               printf("dh%d: NXM\n", dh);
        }
        sbar = &dhsar[dh];
        bar = *sbar & ~addr->dhbar;
        }
        sbar = &dhsar[dh];
        bar = *sbar & ~addr->dhbar;
@@ -609,7 +612,6 @@ dhreset(uban)
 
        if (dh_ubinfo[uban] == 0)
                return;
 
        if (dh_ubinfo[uban] == 0)
                return;
-       printf(" dh");
        ubarelse(uban, &dh_ubinfo[uban]);
        dh_ubinfo[uban] = uballoc(uban, (caddr_t)cfree,
            512+nclist*sizeof (struct cblock), 0);
        ubarelse(uban, &dh_ubinfo[uban]);
        dh_ubinfo[uban] = uballoc(uban, (caddr_t)cfree,
            512+nclist*sizeof (struct cblock), 0);
@@ -619,6 +621,7 @@ dhreset(uban)
                ui = dhinfo[dh];
                if (ui == 0 || ui->ui_alive == 0 || ui->ui_ubanum != uban)
                        continue;
                ui = dhinfo[dh];
                if (ui == 0 || ui->ui_alive == 0 || ui->ui_ubanum != uban)
                        continue;
+               printf(" dh%d", dh);
                ((struct dhdevice *)ui->ui_addr)->un.dhcsr |= DH_IE;
                ((struct dhdevice *)ui->ui_addr)->dhsilo = 16;
                unit = dh * 16;
                ((struct dhdevice *)ui->ui_addr)->un.dhcsr |= DH_IE;
                ((struct dhdevice *)ui->ui_addr)->dhsilo = 16;
                unit = dh * 16;
index 5eaa4d5..f96be96 100644 (file)
@@ -1,4 +1,4 @@
-/*     dz.c    4.19    %G%     */
+/*     dz.c    4.20    %G%     */
 
 #include "dz.h"
 #if NDZ > 0
 
 #include "dz.h"
 #if NDZ > 0
@@ -223,6 +223,7 @@ dzrint(dz)
        register struct device *dzaddr;
        register struct tty *tp0;
        register int unit;
        register struct device *dzaddr;
        register struct tty *tp0;
        register int unit;
+       int overrun = 0;
  
        if ((dzact & (1<<dz)) == 0)
                return;
  
        if ((dzact & (1<<dz)) == 0)
                return;
@@ -242,8 +243,10 @@ dzrint(dz)
                                c = 0;
                        else
                                c = tun.t_intrc;
                                c = 0;
                        else
                                c = tun.t_intrc;
-               if (c&DZ_DO)
-                       printf("o");
+               if (c&DZ_DO && overrun == 0) {
+                       printf("dz%d: silo overflow\n", dz);
+                       overrun = 1;
+               }
                if (c&DZ_PE)    
                        if (((tp->t_flags & (EVENP|ODDP)) == EVENP)
                          || ((tp->t_flags & (EVENP|ODDP)) == ODDP))
                if (c&DZ_PE)    
                        if (((tp->t_flags & (EVENP|ODDP)) == EVENP)
                          || ((tp->t_flags & (EVENP|ODDP)) == ODDP))
@@ -473,16 +476,13 @@ dzreset(uban)
        register int unit;
        register struct tty *tp;
        register struct uba_dinfo *ui;
        register int unit;
        register struct tty *tp;
        register struct uba_dinfo *ui;
-       int any = 0;
 
        for (unit = 0; unit < NDZLINE; unit++) {
                ui = dzinfo[unit >> 3];
                if (ui == 0 || ui->ui_ubanum != uban || ui->ui_alive == 0)
                        continue;
 
        for (unit = 0; unit < NDZLINE; unit++) {
                ui = dzinfo[unit >> 3];
                if (ui == 0 || ui->ui_ubanum != uban || ui->ui_alive == 0)
                        continue;
-               if (any == 0) {
-                       printf(" dz");
-                       any++;
-               }
+               if (unit%8 == 0)
+                       printf(" dz%d", unit>>3);
                tp = &dz_tty[unit];
                if (tp->t_state & (ISOPEN|WOPEN)) {
                        dzparam(unit);
                tp = &dz_tty[unit];
                if (tp->t_state & (ISOPEN|WOPEN)) {
                        dzparam(unit);