summaryrefslogtreecommitdiffstats
path: root/sys/scsi/ch.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/scsi/ch.c')
-rw-r--r--sys/scsi/ch.c140
1 files changed, 57 insertions, 83 deletions
diff --git a/sys/scsi/ch.c b/sys/scsi/ch.c
index ba7cdcd..a76d522 100644
--- a/sys/scsi/ch.c
+++ b/sys/scsi/ch.c
@@ -1,16 +1,7 @@
/*
- */
-/*
- * HISTORY
- *
- *
- * PATCHES MAGIC LEVEL PATCH THAT GOT US HERE
- * -------------------- ----- ----------------------
- * CURRENT PATCH LEVEL: 1 00098
- * -------------------- ----- ----------------------
+ * Written by Julian Elischer (julian@tfs.com)
*
- * 16 Feb 93 Julian Elischer ADDED for SCSI system
- *
+ * $Id$
*/
#include <sys/types.h>
@@ -118,13 +109,13 @@ struct scsi_switch *scsi_switch;
\*******************************************************/
if((ch_mode_sense(unit, SCSI_NOSLEEP | SCSI_NOMASK /*| SCSI_SILENT*/)))
{
- printf(" ch%d: scsi changer, %d slot(s) %d drive(s) %d arm(s) %d i/e-slot(s) \n",
+ printf("ch%d: scsi changer, %d slot(s) %d drive(s) %d arm(s) %d i/e-slot(s)\n",
unit, ch_data[unit].slots, ch_data[unit].drives, ch_data[unit].chms, ch_data[unit].imexs);
stat=CH_KNOWN;
}
else
{
- printf(" ch%d: scsi changer :- offline\n", unit);
+ printf("ch%d: scsi changer :- offline\n", unit);
stat=CH_OPEN;
}
ch_initialized[unit] = stat;
@@ -151,7 +142,7 @@ chopen(dev)
\*******************************************************/
if ( unit >= NCH )
{
- printf("ch %d > %d\n",unit,NCH);
+ printf("ch%d: ch %d > %d\n",unit,unit,NCH);
errcode = ENXIO;
return(errcode);
}
@@ -160,7 +151,7 @@ chopen(dev)
\*******************************************************/
if(ch_data[unit].flags & CH_OPEN)
{
- printf("CH%d already open\n",unit);
+ printf("ch%d: already open\n",unit);
errcode = ENXIO;
goto bad;
}
@@ -181,7 +172,7 @@ chopen(dev)
}
else
{
- printf(" ch%d: scsi changer :- offline\n", unit);
+ printf("ch%d: scsi changer :- offline\n", unit);
return(ENXIO);
}
}
@@ -203,7 +194,7 @@ chopen(dev)
if(!(ch_test_ready(unit,0)))
{
- printf("ch%d not ready\n",unit);
+ printf("ch%d: not ready\n",unit);
return(EIO);
}
@@ -549,7 +540,7 @@ int unit,flags;
}
if (ch_info_valid[unit]!=CH_KNOWN) {
if(!(flags & SCSI_SILENT))
- printf("could not mode sense for unit %d\n", unit);
+ printf("ch%d: could not mode sense\n", unit);
return(FALSE);
}
l=scsi_sense[0]-3;
@@ -713,7 +704,7 @@ retry: xs->error = XS_NOERROR;
break;
default:
retval = EIO;
- printf("st%d: unknown error category from scsi driver\n"
+ printf("ch%d: unknown error category from scsi driver\n"
,unit);
break;
}
@@ -734,7 +725,7 @@ retry: xs->error = XS_NOERROR;
}
else
{
- printf("chd: not set up\n",unit);
+ printf("ch%d: not set up\n",unit);
return(EINVAL);
}
return(retval);
@@ -828,59 +819,53 @@ struct scsi_xfer *xs;
case 0x1:
if(!silent)
{
- printf("st%d: soft error(corrected) ", unit);
+ printf("ch%d: soft error(corrected)", unit);
if(sense->error_code & SSD_ERRCODE_VALID)
{
- printf("block no. %d (decimal)\n",
+ printf(" block no. %d (decimal)",
(sense->ext.extended.info[0] <<24)|
(sense->ext.extended.info[1] <<16)|
(sense->ext.extended.info[2] <<8)|
(sense->ext.extended.info[3] ));
}
- else
- {
- printf("\n");
- }
+ printf("\n");
}
return(ESUCCESS);
case 0x2:
- if(!silent) printf("st%d: not ready\n ", unit);
+ if(!silent) printf("ch%d: not ready\n", unit);
ch_data[unit].lsterr=(sense->ext.extended.info[12]<<8)|
- sense->ext.extended.info[13] ;
+ sense->ext.extended.info[13] ;
return(ENODEV);
case 0x3:
if(!silent)
{
- printf("st%d: medium error ", unit);
+ printf("ch%d: medium error", unit);
if(sense->error_code & SSD_ERRCODE_VALID)
{
- printf("block no. %d (decimal)\n",
+ printf(" block no. %d (decimal)",
(sense->ext.extended.info[0] <<24)|
(sense->ext.extended.info[1] <<16)|
(sense->ext.extended.info[2] <<8)|
(sense->ext.extended.info[3] ));
}
- else
- {
- printf("\n");
- }
+ printf("\n");
}
return(EIO);
case 0x4:
- if(!silent) printf("st%d: non-media hardware failure\n ",
+ if(!silent) printf("ch%d: non-media hardware failure\n",
unit);
ch_data[unit].lsterr=(sense->ext.extended.info[12]<<8)|
- sense->ext.extended.info[13] ;
+ sense->ext.extended.info[13] ;
return(EIO);
case 0x5:
- if(!silent) printf("st%d: illegal request\n ", unit);
+ if(!silent) printf("ch%d: illegal request\n", unit);
ch_data[unit].lsterr=(sense->ext.extended.info[12]<<8)|
- sense->ext.extended.info[13] ;
+ sense->ext.extended.info[13] ;
return(EINVAL);
case 0x6:
- if(!silent) printf("st%d: Unit attention.\n ", unit);
+ if(!silent) printf("ch%d: Unit attention\n", unit);
ch_data[unit].lsterr=(sense->ext.extended.info[12]<<8)|
- sense->ext.extended.info[13] ;
+ sense->ext.extended.info[13] ;
ch_info_valid[unit] = FALSE;
if (ch_data[unit].flags & CH_OPEN) /* TEMP!!!! */
return(EIO);
@@ -889,98 +874,81 @@ struct scsi_xfer *xs;
case 0x7:
if(!silent)
{
- printf("st%d: attempted protection violation "
+ printf("ch%d: attempted protection violation"
, unit);
if(sense->error_code & SSD_ERRCODE_VALID)
{
- printf("block no. %d (decimal)\n",
+ printf(" block no. %d (decimal)\n",
(sense->ext.extended.info[0] <<24)|
(sense->ext.extended.info[1] <<16)|
(sense->ext.extended.info[2] <<8)|
(sense->ext.extended.info[3] ));
}
- else
- {
- printf("\n");
- }
+ printf("\n");
}
return(EACCES);
case 0x8:
if(!silent)
{
- printf("st%d: block wrong state (worm)\n "
+ printf("ch%d: block wrong state (worm)"
, unit);
if(sense->error_code & SSD_ERRCODE_VALID)
{
- printf("block no. %d (decimal)\n",
+ printf(" block no. %d (decimal)",
(sense->ext.extended.info[0] <<24)|
(sense->ext.extended.info[1] <<16)|
(sense->ext.extended.info[2] <<8)|
(sense->ext.extended.info[3] ));
}
- else
- {
- printf("\n");
- }
+ printf("\n");
}
return(EIO);
case 0x9:
- if(!silent) printf("st%d: vendor unique\n",
- unit);
+ if(!silent) printf("ch%d: vendor unique\n", unit);
return(EIO);
case 0xa:
- if(!silent) printf("st%d: copy aborted\n ",
- unit);
+ if(!silent) printf("ch%d: copy aborted\n", unit);
return(EIO);
case 0xb:
- if(!silent) printf("st%d: command aborted\n ",
- unit);
+ if(!silent) printf("ch%d: command aborted\n", unit);
ch_data[unit].lsterr=(sense->ext.extended.info[12]<<8)|
- sense->ext.extended.info[13] ;
+ sense->ext.extended.info[13] ;
return(EIO);
case 0xc:
if(!silent)
{
- printf("st%d: search returned\n ", unit);
+ printf("ch%d: search returned", unit);
if(sense->error_code & SSD_ERRCODE_VALID)
{
- printf("block no. %d (decimal)\n",
+ printf(" block no. %d (decimal)",
(sense->ext.extended.info[0] <<24)|
(sense->ext.extended.info[1] <<16)|
(sense->ext.extended.info[2] <<8)|
(sense->ext.extended.info[3] ));
}
- else
- {
- printf("\n");
- }
+ printf("\n");
}
return(ESUCCESS);
case 0xd:
- if(!silent) printf("st%d: volume overflow\n ",
- unit);
+ if(!silent) printf("ch%d: volume overflow\n", unit);
return(ENOSPC);
case 0xe:
if(!silent)
{
- printf("st%d: verify miscompare\n ", unit);
+ printf("ch%d: verify miscompare", unit);
if(sense->error_code & SSD_ERRCODE_VALID)
{
- printf("block no. %d (decimal)\n",
+ printf(" block no. %d (decimal)",
(sense->ext.extended.info[0] <<24)|
(sense->ext.extended.info[1] <<16)|
(sense->ext.extended.info[2] <<8)|
(sense->ext.extended.info[3] ));
}
- else
- {
- printf("\n");
- }
+ printf("\n");
}
return(EIO);
case 0xf:
- if(!silent) printf("st%d: unknown error key\n ",
- unit);
+ if(!silent) printf("ch%d: unknown error key\n", unit);
return(EIO);
}
break;
@@ -990,14 +958,20 @@ struct scsi_xfer *xs;
\***************************************************************/
default:
{
- if(!silent) printf("st%d: error code %d\n",
- unit,
- sense->error_code & SSD_ERRCODE);
- if(sense->error_code & SSD_ERRCODE_VALID)
- if(!silent) printf("block no. %d (decimal)\n",
- (sense->ext.unextended.blockhi <<16),
- + (sense->ext.unextended.blockmed <<8),
- + (sense->ext.unextended.blocklow ));
+ if(!silent)
+ {
+ printf("ch%d: error code %d",
+ unit,
+ sense->error_code & SSD_ERRCODE);
+ if(sense->error_code & SSD_ERRCODE_VALID)
+ {
+ printf(" block no. %d (decimal)",
+ (sense->ext.unextended.blockhi <<16),
+ + (sense->ext.unextended.blockmed <<8),
+ + (sense->ext.unextended.blocklow ));
+ }
+ printf("\n");
+ }
}
return(EIO);
}
OpenPOWER on IntegriCloud