scsi_validate_sense(9f) [opensolaris man page]
scsi_validate_sense(9F) Kernel Functions for Drivers scsi_validate_sense(9F) NAME
scsi_validate_sense - find descriptor in SCSI sense data SYNOPSIS
#include <sys/scsi/scsi.h> int scsi_validate_sense(uint8_t *sense_buffer, int sense_buf_len, int *flags); INTERFACE LEVEL
Solaris DDI specific (Solaris DDI). PARAMETERS
sense_buffer Pointer to a buffer containing SCSI sense data. The sense data is expected in wire format starting at the response code. sense_buf_len Length of sense buffer in bytes. flags Returns additional properties of the sense data. DESCRIPTION
The scsi_validate_sense() function returns the format of the sense data contained in the provided sense buffer. If the response code field in the sense data is not recognized or if there is not enough sense data to include sense key, asc, and ascq then scsi_validate_sense() returns SENSE_UNUSABLE. If the buffer contains usable sense data in fixed format, the function returns SENSE_FIXED_FORMAT. If the buffer contains usable sense data in descriptor format, the function returns SENSE_DESCR_FORMAT. The following flags may be set as appropriate depending on the sense data: SNS_BUF_OVERFLOW The sense data buffer provided for the request is too small to hold all the sense data. SNS_BUF_DEFERRED The sense data contained in the buffer relates to an error that has occurred during the processing of a successfully completed command, such as a cached write that could not be commited to the media. RETURN VALUES
SENSE_UNUSABLE The response code from the sense data is unrecognized or not enough sense data present to provide the sense key, asc, and ascq. SENSE_FIXED_FORMAT The sense data in the buffer is in "fixed format". SENSE_DESCR_FORMAT The sense data in the buffer is in "descriptor format". CONTEXT
The scsi_validate_sense() function can be called from user or interrupt context. SEE ALSO
scsi_ext_sense_fields(9F), scsi_find_sense_descr(9F), scsi_sense_asc(9F), scsi_sense_ascq(9F), scsi_sense_cmdspecific_uint64(9F), scsi_sense_info_uint64(9F), scsi_sense_key(9F) SunOS 5.11 29 Jun 2006 scsi_validate_sense(9F)
Check Out this Related Man Page
scsi_arq_status(9S) Data Structures for Drivers scsi_arq_status(9S) NAME
scsi_arq_status - SCSI auto request sense structure SYNOPSIS
#include <sys/scsi/scsi.h> INTERFACE LEVEL
Solaris DDI specific (Solaris DDI) DESCRIPTION
When auto request sense has been enabled using scsi_ifsetcap(9F) and the "auto-rqsense" capability, the target driver must allocate a sta- tus area in the SCSI packet structure for the auto request sense structure (see scsi_pkt(9S)). In the event of a check condition, the transport layer automatically executes a request sense command. This check ensures that the request sense information does not get lost. The auto request sense structure supplies the SCSI status of the original command, the transport information pertaining to the request sense command, and the request sense data. STRUCTURE MEMBERS
struct scsi_status sts_status; /* SCSI status */ struct scsi_status sts_rqpkt_status; /* SCSI status of request sense cmd */ uchar_t sts_rqpkt_reason; /* reason completion */ uchar_t sts_rqpkt_resid; /* residue */ uint_t sts_rqpkt_state; /* state of command */ uint_t sts_rqpkt_statistics;/* statistics */ struct scsi_extended_sense sts_sensedata; /* actual sense data */ sts_status is the SCSI status of the original command. If the status indicates a check condition, the transport layer might have performed an auto request sense command. sts_rqpkt_status is the SCSI status of the request sense command. sts_rqpkt_reason is the completion reason of the request sense command. If the reason is not CMD_CMPLT, then the request sense command did not complete normally. sts_rqpkt_resid is the residual count of the data transfer and indicates the number of data bytes that have not been transferred. The auto request sense command requests SENSE_LENGTH bytes. sts_rqpkt_state has bit positions representing the five most important statuses that a SCSI command can go obtain. sts_rqpkt_statistics maintains transport-related statistics of the request sense command. sts_sensedata contains the actual sense data if the request sense command completed normally. SEE ALSO
scsi_ifgetcap(9F), scsi_init_pkt(9F), scsi_extended_sense(9S), scsi_pkt(9S) Writing Device Drivers SunOS 5.11 30 Sep 1996 scsi_arq_status(9S)