/* test_unit_ready.c /*
#include
#include
#include
#include
#include "send_scsi_cmd.h"
#define SENSE_BYTES 18 // La dimensione del buffer di sense.
int main(int argc, char *argv[])
{
// Sintassi: nome del device, numero dell'unità.
ULONG unit;
if(argc > 2)
{
if(sscanf(argv[2], "%lu", &unit))
{
WORD retval;
UBYTE command[6] = { SCSI_TEST_UNIT_READY, 0, 0, 0, 0, 0};
UBYTE sensereturn[SENSE_BYTES];
struct sizedbuffer cmd, data, sense;
cmd.buf = command;
cmd.len = 6;
data.buf = NULL;
data.len = 0; // Nessuna fase dati!!
sense.buf = sensereturn;
sense.len = SENSE_BYTES;
retval = Send_SCSI_CMD( argv[1],
unit,
0L,
&cmd,
&data,
&sense,
0,
SCSIF_AUTOSENSE
);
if((retval >> 8) == HFERR_BadStatus) // CHECK_CONDITION
printf("Unità non presente!\n");
else if(retval >> 8)
printf("Errore all'apertura dell'unità: %u\n", (retval >> 8));
else if(retval == 0)
printf("Unità presente.\n");
else printf("Stato sconosciuto: %x\n", retval);
}
}
return 0;
}