User`s manual
SBCSCSI/D1D-1
D
RETURNED ERRORS
Status Field
Command status returned in the status field of siop_struc is subdivided into
the following structure as extracted from the header file ncr.h.
/*
* command structure STATUS field structure definition
*/
typedef struct siop_stat {
UCHAR sense_key; /* not used (MSB) */
UCHAR sdl_key; /* not used */
UCHAR siop_key; /* non SCSI status from SIOP */
UCHAR status_key; /* SCSI status byte from SIOP (LSB) */
} SIOP_STAT;
All bytes of the status field contained in siop_struc are cleared by the Firmware
for initiator and configuration mode commands upon siop_cmd() entry. For
target mode commands, only the fields sense_key, sdl_key, and siop_key are
cleared upon siop_cmd() entry so that the Firmware target mode application
can return a SCSI bus status to the initiator in the status_key field.
The status field is not valid until the Firmware calls the return status routine
supplied by the user in the siop_struc. Only the status_key and siop_key fields
are set by the Firmware. The remaining fields, sense_key and sdl_key, are not
accessed by the Firmware but are reserved for use by the user.
status_key Error Codes
The first field, status_key, is returned only for initiator mode commands. This
is the status returned by the target device during the SCSI bus status phase.
Returned values for this field and recommended responses follow.
SS_GOOD (0x00)
This is the SCSI status of GOOD. This status indicates that the target has
successfully completed the command. No corrective action is necessary.
SS_CHECK (0x02)
This is the SCSI status of CHECK CONDITION. This status indicates that the
target has preserved sense data for the initiator. The user should send a SCSI
request sense command to the target to get the sense data from the target.