#define MASKREG(reg) ((reg)&0xffff)
register struct mtdevice
*mtaddr
= (struct mtdevice
*)mbadrv(io
->i_unit
);
for (i
= 0; mttypes
[i
]; i
++)
if (mttypes
[i
] == (mtaddr
->mtdt
&MBDT_TYPE
))
mbainit(UNITTOMBA(io
->i_unit
));
while ((mtaddr
->mtid
& MTID_RDY
) == 0)
mtstrategy(io
, MT_SFORWF
);
register int errcnt
, s
, ic
;
register struct mtdevice
*mtaddr
=
(struct mtdevice
*)mbadrv(io
->i_unit
);
if (func
== READ
|| func
== WRITE
) {
mtaddr
->mtca
= 1<<2; /* 1 record */
s
= mtaddr
->mter
& MTER_INTCODE
;
mtaddr
->mtncs
[0] = (-io
->i_cc
<< 8)|func
|MT_GO
;
mtaddr
->mtas
= mtaddr
->mtas
; /* clear attention */
ic
= mtaddr
->mtner
& MTER_INTCODE
;
printf("mt hard error: er=%b\n",
while ((mtaddr
->mtid
& MTID_RDY
) == 0)
printf("mt error: er=%b\n",
printf("mt: unrecovered error\n");
printf("mt: recovered by retry\n");
return (io
->i_cc
); /* NO PARTIAL RECORD READS!!! */