mcd.c (58345) | mcd.c (58934) |
---|---|
1/* 2 * Copyright 1993 by Holger Veit (data part) 3 * Copyright 1993 by Brian Moore (audio part) 4 * Changes Copyright 1993 by Gary Clark II 5 * Changes Copyright (C) 1994-1995 by Andrey A. Chernov, Moscow, Russia 6 * 7 * Rewrote probe routine to work on newer Mitsumi drives. 8 * Additional changes (C) 1994 by Jordan K. Hubbard --- 26 unchanged lines hidden (view full) --- 35 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, 36 * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 37 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 38 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 39 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 40 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 41 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 42 * | 1/* 2 * Copyright 1993 by Holger Veit (data part) 3 * Copyright 1993 by Brian Moore (audio part) 4 * Changes Copyright 1993 by Gary Clark II 5 * Changes Copyright (C) 1994-1995 by Andrey A. Chernov, Moscow, Russia 6 * 7 * Rewrote probe routine to work on newer Mitsumi drives. 8 * Additional changes (C) 1994 by Jordan K. Hubbard --- 26 unchanged lines hidden (view full) --- 35 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, 36 * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 37 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 38 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 39 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 40 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 41 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 42 * |
43 * $FreeBSD: head/sys/dev/mcd/mcd.c 58345 2000-03-20 10:44:49Z phk $ | 43 * $FreeBSD: head/sys/dev/mcd/mcd.c 58934 2000-04-02 15:24:56Z phk $ |
44 */ 45static const char COPYRIGHT[] = "mcd-driver (C)1993 by H.Veit & B.Moore"; 46 47#include "mcd.h" 48#include <sys/param.h> 49#include <sys/systm.h> 50#include <sys/conf.h> 51#include <sys/fcntl.h> --- 345 unchanged lines hidden (view full) --- 397 /* test validity */ 398/*MCD_TRACE("strategy: buf=0x%lx, unit=%ld, block#=%ld bcount=%ld\n", 399 bp,unit,bp->b_blkno,bp->b_bcount);*/ 400 if (unit >= NMCD || bp->b_blkno < 0) { 401 printf("mcdstrategy: unit = %d, blkno = %ld, bcount = %ld\n", 402 unit, (long)bp->b_blkno, bp->b_bcount); 403 printf("mcd: mcdstratregy failure"); 404 bp->b_error = EINVAL; | 44 */ 45static const char COPYRIGHT[] = "mcd-driver (C)1993 by H.Veit & B.Moore"; 46 47#include "mcd.h" 48#include <sys/param.h> 49#include <sys/systm.h> 50#include <sys/conf.h> 51#include <sys/fcntl.h> --- 345 unchanged lines hidden (view full) --- 397 /* test validity */ 398/*MCD_TRACE("strategy: buf=0x%lx, unit=%ld, block#=%ld bcount=%ld\n", 399 bp,unit,bp->b_blkno,bp->b_bcount);*/ 400 if (unit >= NMCD || bp->b_blkno < 0) { 401 printf("mcdstrategy: unit = %d, blkno = %ld, bcount = %ld\n", 402 unit, (long)bp->b_blkno, bp->b_bcount); 403 printf("mcd: mcdstratregy failure"); 404 bp->b_error = EINVAL; |
405 bp->b_flags |= B_ERROR; | 405 bp->b_ioflags |= BIO_ERROR; |
406 goto bad; 407 } 408 409 /* if device invalidated (e.g. media change, door open), error */ 410 if (!(cd->flags & MCDVALID)) { 411MCD_TRACE("strategy: drive not valid\n"); 412 bp->b_error = EIO; 413 goto bad; --- 29 unchanged lines hidden (view full) --- 443 bufqdisksort(&cd->head, bp); 444 splx(s); 445 446 /* now check whether we can perform processing */ 447 mcd_start(unit); 448 return; 449 450bad: | 406 goto bad; 407 } 408 409 /* if device invalidated (e.g. media change, door open), error */ 410 if (!(cd->flags & MCDVALID)) { 411MCD_TRACE("strategy: drive not valid\n"); 412 bp->b_error = EIO; 413 goto bad; --- 29 unchanged lines hidden (view full) --- 443 bufqdisksort(&cd->head, bp); 444 splx(s); 445 446 /* now check whether we can perform processing */ 447 mcd_start(unit); 448 return; 449 450bad: |
451 bp->b_flags |= B_ERROR; | 451 bp->b_ioflags |= BIO_ERROR; |
452done: 453 bp->b_resid = bp->b_bcount; 454 biodone(bp); 455 return; 456} 457 458static void mcd_start(int unit) 459{ --- 719 unchanged lines hidden (view full) --- 1179readerr: 1180 if (mbx->retry-- > 0) { 1181 printf("mcd%d: retrying\n",unit); 1182 state = MCD_S_BEGIN1; 1183 goto loop; 1184 } 1185harderr: 1186 /* invalidate the buffer */ | 452done: 453 bp->b_resid = bp->b_bcount; 454 biodone(bp); 455 return; 456} 457 458static void mcd_start(int unit) 459{ --- 719 unchanged lines hidden (view full) --- 1179readerr: 1180 if (mbx->retry-- > 0) { 1181 printf("mcd%d: retrying\n",unit); 1182 state = MCD_S_BEGIN1; 1183 goto loop; 1184 } 1185harderr: 1186 /* invalidate the buffer */ |
1187 bp->b_flags |= B_ERROR; | 1187 bp->b_ioflags |= BIO_ERROR; |
1188 bp->b_resid = bp->b_bcount; 1189 biodone(bp); 1190 1191 cd->flags &= ~(MCDMBXBSY|MCDREADRAW); 1192 mcd_start(mbx->unit); 1193 return; 1194 1195changed: --- 638 unchanged lines hidden --- | 1188 bp->b_resid = bp->b_bcount; 1189 biodone(bp); 1190 1191 cd->flags &= ~(MCDMBXBSY|MCDREADRAW); 1192 mcd_start(mbx->unit); 1193 return; 1194 1195changed: --- 638 unchanged lines hidden --- |