From 2f3773a0cd64dd682b80b2d7a6d7d8f793b84026 Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Sun, 1 Feb 1998 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1998-02-01 --- pc/scsi.c | 43 +++++++++++++++---------------------------- 1 file changed, 15 insertions(+), 28 deletions(-) diff --git a/pc/scsi.c b/pc/scsi.c index ef20ab4369238077d4351f7bec670e4fdc336499..bc4295805190dd21dcaeaaab9f5b5981ef11871a 100644 --- a/pc/scsi.c +++ b/pc/scsi.c @@ -310,32 +310,20 @@ scsibio(Target *t, char lun, int dir, void *b, long n, long bsize, long bno) uchar cmd[10]; int s, cdbsiz, nbytes; - if(bno <= 0x1fffff && n < 256) { - cmd[0] = 0x0A; - if(dir == SCSIread) - cmd[0] = 0x08; - cmd[1] = (lun<<5) | bno >> 16; - cmd[2] = bno>>8; - cmd[3] = bno; - cmd[4] = n; - cmd[5] = 0; - cdbsiz = 6; - } - else { - cmd[0] = 0x2A; - if(dir == SCSIread) - cmd[0] = 0x28; - cmd[1] = (lun<<5); - cmd[2] = bno>>24; - cmd[3] = bno>>16; - cmd[4] = bno>>8; - cmd[5] = bno; - cmd[6] = 0; - cmd[7] = n>>8; - cmd[8] = n; - cmd[9] = 0; - cdbsiz = 10; - } + cmd[0] = CMDwrite10; + if(dir == SCSIread) + cmd[0] = CMDread10; + cmd[1] = (lun<<5); + cmd[2] = bno>>24; + cmd[3] = bno>>16; + cmd[4] = bno>>8; + cmd[5] = bno; + cmd[6] = 0; + cmd[7] = n>>8; + cmd[8] = n; + cmd[9] = 0; + cdbsiz = 10; + nbytes = n*bsize; s = scsiexec(t, dir, cmd, cdbsiz, b, &nbytes); if(s != STok) { @@ -501,7 +489,6 @@ scsibufsize(Target *t, char lun, int size) int s, nbytes; uchar cmd[6], *d; - nbytes = 12; memset(cmd, 0, sizeof(cmd)); @@ -528,7 +515,7 @@ scsibufsize(Target *t, char lun, int size) int scsireadcdda(Target *t, char lun, int, void *b, long n, long bsize, long bno) { - uchar cmd[10]; + uchar cmd[12]; int s, nbytes; memset(cmd, 0, sizeof(cmd));