* Copyright 1973 Bell Telephone Laboratories Inc
struct { char lbyte
, hbyte
; };
40600, 0, /* cyl 0 thru 202 */
40600, 203, /* cyl 203 thru 405 */
9200, 0, /* cyl 0 thru 45 */
9200, 360, /* cyl 360 thru 405 */
-1, 0, /* cyl 0 thru 327 */
-1, 78, /* cyl 78 thru 405 */
* Use av_back to save track+sector,
p1
= &rp_sizes
[bp
->b_dev
.d_minor
&07];
if (bp
->b_dev
.d_minor
>= (NRP
<<3) ||
bp
->b_blkno
>= p1
->nblocks
) {
bp
->trksec
= (p1
%20)<<8 | p2
;
if ((p1
= rptab
.d_actf
)==0)
for (; p2
= p1
->av_forw
; p1
= p2
) {
if (p1
->cylin
<= bp
->cylin
|| p1
->cylin
>= bp
->cylin
&& bp
->cylin
> p2
->cylin
)
if ((bp
= rptab
.d_actf
) == 0)
RPADDR
->rpda
= bp
->trksec
;
devstart(bp
, &RPADDR
->rpca
, bp
->cylin
, bp
->b_dev
.d_minor
>>3);
if (RPADDR
->rpcs
< 0) { /* error bit */
deverror(bp
, RPADDR
->rper
);
if(RPADDR
->rpds
& (SUFU
|SUSI
|HNF
)) {
RPADDR
->rpcs
.lbyte
= HSEEK
|GO
;
while ((RPADDR
->rpds
&SUSU
) && --ctr
);
while ((RPADDR
->rpcs
&READY
) == 0 && --ctr
);
if (++rptab
.d_errcnt
<= 10) {
rptab
.d_actf
= bp
->av_forw
;
bp
->b_resid
= RPADDR
->rpwc
;
physio(rpstrategy
, &rrpbuf
, dev
, B_READ
);
physio(rpstrategy
, &rrpbuf
, dev
, B_WRITE
);
c
= lshift(u
.u_offset
, -9);
c
=+ ldiv(u
.u_count
+511, 512);
if(c
> rp_sizes
[dev
.d_minor
& 07].nblocks
) {