projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
name changes
[unix-history]
/
usr
/
src
/
sys
/
vax
/
uba
/
dz.c
diff --git
a/usr/src/sys/vax/uba/dz.c
b/usr/src/sys/vax/uba/dz.c
index
5d61b98
..
5456799
100644
(file)
--- a/
usr/src/sys/vax/uba/dz.c
+++ b/
usr/src/sys/vax/uba/dz.c
@@
-1,4
+1,4
@@
-/* dz.c 4.1
3
%G% */
+/* dz.c 4.1
6
%G% */
#include "dz.h"
#if NDZ11 > 0
#include "dz.h"
#if NDZ11 > 0
@@
-16,6
+16,7
@@
#include "../h/map.h"
#include "../h/pte.h"
#include "../h/buf.h"
#include "../h/map.h"
#include "../h/pte.h"
#include "../h/buf.h"
+#include "../h/vm.h"
#include "../h/uba.h"
#include "../h/conf.h"
#include "../h/pdma.h"
#include "../h/uba.h"
#include "../h/conf.h"
#include "../h/pdma.h"
@@
-26,11
+27,11
@@
/*
* Driver information for auto-configuration stuff.
*/
/*
* Driver information for auto-configuration stuff.
*/
-int dz
cntrlr(), dzslave
(), dzrint();
+int dz
probe(), dzattach
(), dzrint();
struct uba_dinfo *dzinfo[NDZ11];
u_short dzstd[] = { 0 };
struct uba_driver dzdriver =
struct uba_dinfo *dzinfo[NDZ11];
u_short dzstd[] = { 0 };
struct uba_driver dzdriver =
- { dz
cntrlr, dzslave, 0
, 0, dzstd, "dz", dzinfo };
+ { dz
probe, 0, dzattach
, 0, dzstd, "dz", dzinfo };
#define NDZ (NDZ11*8)
#define NDZ (NDZ11*8)
@@
-82,6
+83,7
@@
struct device {
* Software copy of dzbrk since it isn't readable
*/
char dz_brk[NDZ11];
* Software copy of dzbrk since it isn't readable
*/
char dz_brk[NDZ11];
+char dzsoftCAR[NDZ11];
/*
* The dz doesn't interrupt on carrier transitions, so
/*
* The dz doesn't interrupt on carrier transitions, so
@@
-97,13
+99,15
@@
struct pdma dzpdma[NDZ];
char dz_speeds[] =
{ 0,020,021,022,023,024,0,025,026,027,030,032,034,036,0,0 };
char dz_speeds[] =
{ 0,020,021,022,023,024,0,025,026,027,030,032,034,036,0,0 };
-dzcntrlr(ui, reg)
- struct uba_dinfo *ui;
+dzprobe(reg)
caddr_t reg;
{
register int br, cvec;
register struct device *dzaddr = (struct device *)reg;
caddr_t reg;
{
register int br, cvec;
register struct device *dzaddr = (struct device *)reg;
+#ifdef lint
+ br = 0; br = cvec; cvec = br;
+#endif
dzaddr->dzcsr = DZ_TIE|DZ_MSE;
dzaddr->dztcr = 1; /* enable any line */
DELAY(100000);
dzaddr->dzcsr = DZ_TIE|DZ_MSE;
dzaddr->dztcr = 1; /* enable any line */
DELAY(100000);
@@
-113,24
+117,24
@@
dzcntrlr(ui, reg)
return (1);
}
return (1);
}
-/*
- * Called by auto-configure to initialize good dz's;
- * set up pdma structures.
- */
-dzslave(ui, reg, slaveno, uban)
+dzattach(ui)
register struct uba_dinfo *ui;
register struct uba_dinfo *ui;
- caddr_t reg;
{
register struct pdma *pdp = &dzpdma[ui->ui_unit*8];
register struct tty *tp = &dz_tty[ui->ui_unit*8];
{
register struct pdma *pdp = &dzpdma[ui->ui_unit*8];
register struct tty *tp = &dz_tty[ui->ui_unit*8];
- register int cnt;
+ register int cnt
r
;
- for (cnt
= 0; cnt < 8; cnt
++) {
- pdp->p_addr = (struct device *)
reg
;
+ for (cnt
r = 0; cntr < 8; cntr
++) {
+ pdp->p_addr = (struct device *)
ui->ui_addr
;
pdp->p_arg = (int)tp;
pdp->p_fcn = dzxint;
pdp++, tp++;
}
pdp->p_arg = (int)tp;
pdp->p_fcn = dzxint;
pdp++, tp++;
}
+ dzsoftCAR[ui->ui_unit] = ui->ui_flags;
+ if (dz_timer == 0) {
+ dz_timer++;
+ timeout(dzscan, (caddr_t)0, HZ);
+ }
return (1);
}
return (1);
}
@@
-147,10
+151,6
@@
dzopen(dev, flag)
u.u_error = ENXIO;
return;
}
u.u_error = ENXIO;
return;
}
- if (dz_timer == 0) {
- dz_timer++;
- timeout(dzscan, (caddr_t)0, HZ);
- }
tp = &dz_tty[unit];
tp->t_addr = (caddr_t)&dzpdma[unit];
tp->t_oproc = dzstart;
tp = &dz_tty[unit];
tp->t_addr = (caddr_t)&dzpdma[unit];
tp->t_oproc = dzstart;
@@
-222,7
+222,6
@@
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 s;
if ((dzact & (1<<dz)) == 0)
return;
if ((dzact & (1<<dz)) == 0)
return;
@@
-426,13
+425,11
@@
dzscan()
for (i = 0; i < dz_cnt ; i++) {
dzaddr = dzpdma[i].p_addr;
for (i = 0; i < dz_cnt ; i++) {
dzaddr = dzpdma[i].p_addr;
+ if (dzaddr == 0)
+ continue;
tp = &dz_tty[i];
bit = 1<<(i&07);
tp = &dz_tty[i];
bit = 1<<(i&07);
-#ifdef BERT
- if (dzaddr->dzmsr & bit || i == 6 || i == 7) {
-#else
- if (dzaddr->dzmsr & bit) {
-#endif
+ if ((dzsoftCAR[i>>3]&bit) || (dzaddr->dzmsr&bit)) {
/* carrier present */
if ((tp->t_state & CARR_ON) == 0) {
wakeup((caddr_t)&tp->t_rawq);
/* carrier present */
if ((tp->t_state & CARR_ON) == 0) {
wakeup((caddr_t)&tp->t_rawq);