- if ((tp->t_state & CARR_ON) == 0) {
- wakeup((caddr_t)&tp->t_rawq);
- tp->t_state |= CARR_ON;
- }
- } else {
- if ((tp->t_state&CARR_ON) &&
- (tp->t_local&LNOHANG)==0) {
- /* carrier lost */
- if (tp->t_state&ISOPEN) {
- gsignal(tp->t_pgrp, SIGHUP);
- gsignal(tp->t_pgrp, SIGCONT);
- dzaddr->dzdtr &= ~bit;
- flushtty(tp, FREAD|FWRITE);
- }
- tp->t_state &= ~CARR_ON;
- }
+ if ((tp->t_state & TS_CARR_ON) == 0)
+ (void)(*linesw[tp->t_line].l_modem)(tp, 1);
+ } else if ((tp->t_state&TS_CARR_ON) &&
+ (*linesw[tp->t_line].l_modem)(tp, 0) == 0)
+ dzaddr->dzdtr &= ~bit;
+ }
+ for (i = 0; i < NDZ; i++) {
+ ave(dzrate[i], dzchars[i], 8);
+ if (dzchars[i] > dzhighrate && ((dzsilos & (1 << i)) == 0)) {
+ dzpdma[i << 3].p_addr->dzcsr = DZ_IEN | DZ_SAE;
+ dzsilos |= (1 << i);
+ dztransitions++; /*DEBUG*/
+ } else if ((dzsilos & (1 << i)) && (dzrate[i] < dzlowrate)) {
+ dzpdma[i << 3].p_addr->dzcsr = DZ_IEN;
+ dzsilos &= ~(1 << i);