version 1.20, 1999/02/02 13:01:36 |
version 1.20.2.4, 2000/01/23 12:41:20 |
Line 300 scsipi_interpret_sense(xs) |
|
Line 300 scsipi_interpret_sense(xs) |
|
return (0); |
return (0); |
if ((xs->flags & SCSI_SILENT) != 0) |
if ((xs->flags & SCSI_SILENT) != 0) |
return (EIO); |
return (EIO); |
|
/* |
|
* If we're probing and the device indicates LUNs |
|
* aren't supported, shut up about it. |
|
*/ |
|
if ((xs->flags & SCSI_PROBE) != 0 && |
|
sense->add_sense_code == 0x25 && |
|
sense->add_sense_code_qual == 0x00) |
|
return (EINVAL); |
error = EINVAL; |
error = EINVAL; |
break; |
break; |
case SKEY_UNIT_ATTENTION: |
case SKEY_UNIT_ATTENTION: |
Line 415 scsipi_size(sc_link, flags) |
|
Line 423 scsipi_size(sc_link, flags) |
|
*/ |
*/ |
if (scsipi_command(sc_link, (struct scsipi_generic *)&scsipi_cmd, |
if (scsipi_command(sc_link, (struct scsipi_generic *)&scsipi_cmd, |
sizeof(scsipi_cmd), (u_char *)&rdcap, sizeof(rdcap), |
sizeof(scsipi_cmd), (u_char *)&rdcap, sizeof(rdcap), |
2, 20000, NULL, flags | SCSI_DATA_IN) != 0) { |
SCSIPIRETRIES, 20000, NULL, flags | SCSI_DATA_IN) != 0) { |
sc_link->sc_print_addr(sc_link); |
sc_link->sc_print_addr(sc_link); |
printf("could not get size\n"); |
printf("could not get size\n"); |
return (0); |
return (0); |
Line 443 scsipi_test_unit_ready(sc_link, flags) |
|
Line 451 scsipi_test_unit_ready(sc_link, flags) |
|
|
|
return (scsipi_command(sc_link, |
return (scsipi_command(sc_link, |
(struct scsipi_generic *)&scsipi_cmd, sizeof(scsipi_cmd), |
(struct scsipi_generic *)&scsipi_cmd, sizeof(scsipi_cmd), |
0, 0, 2, 10000, NULL, flags)); |
0, 0, SCSIPIRETRIES, 10000, NULL, flags)); |
} |
} |
|
|
/* |
/* |
Line 468 scsipi_inquire(sc_link, inqbuf, flags) |
|
Line 476 scsipi_inquire(sc_link, inqbuf, flags) |
|
return (scsipi_command(sc_link, |
return (scsipi_command(sc_link, |
(struct scsipi_generic *) &scsipi_cmd, sizeof(scsipi_cmd), |
(struct scsipi_generic *) &scsipi_cmd, sizeof(scsipi_cmd), |
(u_char *) inqbuf, sizeof(struct scsipi_inquiry_data), |
(u_char *) inqbuf, sizeof(struct scsipi_inquiry_data), |
2, 10000, NULL, SCSI_DATA_IN | flags)); |
SCSIPIRETRIES, 10000, NULL, SCSI_DATA_IN | flags)); |
} |
} |
|
|
/* |
/* |
Line 489 scsipi_prevent(sc_link, type, flags) |
|
Line 497 scsipi_prevent(sc_link, type, flags) |
|
scsipi_cmd.how = type; |
scsipi_cmd.how = type; |
return (scsipi_command(sc_link, |
return (scsipi_command(sc_link, |
(struct scsipi_generic *) &scsipi_cmd, sizeof(scsipi_cmd), |
(struct scsipi_generic *) &scsipi_cmd, sizeof(scsipi_cmd), |
0, 0, 2, 5000, NULL, flags)); |
0, 0, SCSIPIRETRIES, 5000, NULL, flags)); |
} |
} |
|
|
/* |
/* |
Line 511 scsipi_start(sc_link, type, flags) |
|
Line 519 scsipi_start(sc_link, type, flags) |
|
scsipi_cmd.how = type; |
scsipi_cmd.how = type; |
return (scsipi_command(sc_link, |
return (scsipi_command(sc_link, |
(struct scsipi_generic *) &scsipi_cmd, sizeof(scsipi_cmd), |
(struct scsipi_generic *) &scsipi_cmd, sizeof(scsipi_cmd), |
0, 0, 2, type == SSS_START ? 30000 : 10000, NULL, flags)); |
0, 0, SCSIPIRETRIES, (type & SSS_START) ? 30000 : 10000, |
|
NULL, flags)); |
} |
} |
|
|
/* |
/* |
|
|
* returned SUCCESSFULLY_QUEUED when the command was |
* returned SUCCESSFULLY_QUEUED when the command was |
* submitted), we need to free the scsipi_xfer here. |
* submitted), we need to free the scsipi_xfer here. |
*/ |
*/ |
if (SCSIPI_XFER_ASYNC(xs)) |
if (SCSIPI_XFER_ASYNC(xs)) { |
|
int s = splbio(); |
scsipi_free_xs(xs, SCSI_NOSLEEP); |
scsipi_free_xs(xs, SCSI_NOSLEEP); |
|
splx(s); |
|
} |
if (bp) |
if (bp) |
biodone(bp); |
biodone(bp); |
} |
} |