|
|
1.1 root 1: /*
2: * DEC STD 144 bad block replacement
3: * given a cylinder, track, sector
4: * return a replacement block
5: * the return is an offset:
6: * lbn = (size of disk) - (size of a track) - repno
7: */
8:
9: #include "sys/bad144.h"
10:
11: int
12: bad144rep(bt, cyl, trk, sec)
13: register struct bad144 *bt;
14: {
15: register int i;
16: register long blk, bblk;
17:
18: blk = ((long)cyl << 16) + (trk << 8) + sec;
19: for (i = 0; i < NBADDESC; i++) {
20: bblk = ((long)bt->bt_bad[i].bt_cyl << 16) + bt->bt_bad[i].bt_trksec;
21: if (blk == bblk)
22: return (i);
23: if (blk < bblk || bblk < 0)
24: break;
25: }
26: return (-1);
27: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.