1 /* 2 * Copyright (c) 1982, 1986, 1990, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * %sccs.include.redist.c% 6 * 7 * @(#)dkbad.c 8.2 (Berkeley) 01/12/94 8 */ 9 10 #ifndef NOBADSECT 11 #include <sys/param.h> 12 #include <sys/buf.h> 13 #include <sys/dkbad.h> 14 15 /* 16 * Search the bad sector table looking for 17 * the specified sector. Return index if found. 18 * Return -1 if not found. 19 */ 20 21 isbad(bt, cyl, trk, sec) 22 register struct dkbad *bt; 23 int cyl, trk, sec; 24 { 25 register int i; 26 register long blk, bblk; 27 28 blk = ((long)cyl << 16) + (trk << 8) + sec; 29 for (i = 0; i < 126; i++) { 30 bblk = ((long)bt->bt_bad[i].bt_cyl << 16) + bt->bt_bad[i].bt_trksec; 31 if (blk == bblk) 32 return (i); 33 if (blk < bblk || bblk < 0) 34 break; 35 } 36 return (-1); 37 } 38 #endif 39