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