JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
man pages section 9: DDI and DKI Properties and Data Structures     Oracle Solaris 11 Information Library
search filter icon
search icon

Document Information

Preface

Introduction

Data Structures for Drivers

aio_req(9S)

audio_engine_ops(9S)

blksize(9P)

buf(9S)

cb_ops(9S)

copyreq(9S)

copyresp(9S)

datab(9S)

dblk(9S)

ddi_device_acc_attr(9S)

ddi_dma_attr(9S)

ddi_dma_cookie(9S)

ddi_dmae_req(9S)

ddi_dma_lim(9S)

ddi_dma_lim_sparc(9S)

ddi_dma_lim_x86(9S)

ddi_dma_req(9S)

ddi_fm_error(9S)

ddi-forceattach(9P)

ddi_idevice_cookie(9S)

ddi-no-autodetach(9P)

device-blksize(9P)

device-nblocks(9P)

devmap_callback_ctl(9S)

dev_ops(9S)

fmodsw(9S)

free_rtn(9S)

gld_mac_info(9S)

gld_stats(9S)

hook_nic_event(9S)

hook_pkt_event(9S)

hook_t(9S)

inquiry-device-type(9P)

inquiry-product-id(9P)

inquiry-revision-id(9P)

inquiry-serial-no(9P)

inquiry-vendor-id(9P)

iocblk(9S)

iovec(9S)

kstat(9S)

kstat_intr(9S)

kstat_io(9S)

kstat_named(9S)

linkblk(9S)

lso_basic_tcp_ipv4(9S)

mac_callbacks(9S)

mac_capab_lso(9S)

mac_capab_rings(9S)

mac_group_info(9S)

mac_register(9S)

mac_ring_info(9S)

mblk(9S)

modldrv(9S)

modlinkage(9S)

modlmisc(9S)

modlstrmod(9S)

module_info(9S)

msgb(9S)

Nblock(9P)

net_inject_t(9S)

net_instance_t(9S)

no-involuntary-power-cycles(9P)

pm(9P)

pm-components(9P)

qband(9S)

qinit(9S)

queclass(9S)

queue(9S)

removable-media(9P)

scsi_address(9S)

scsi_arq_status(9S)

scsi_asc_key_strings(9S)

scsi_device(9S)

scsi_extended_sense(9S)

scsi_hba_tran(9S)

scsi_inquiry(9S)

scsi_pkt(9S)

scsi_status(9S)

size(9P)

streamtab(9S)

stroptions(9S)

tuple(9S)

uio(9S)

usb_bulk_request(9S)

usb_callback_flags(9S)

usb_cfg_descr(9S)

usb_client_dev_data(9S)

usb_completion_reason(9S)

usb_ctrl_request(9S)

usb_dev_descr(9S)

usb_dev_qlf_descr(9S)

usb_ep_descr(9S)

usb_if_descr(9S)

usb_intr_request(9S)

usb_isoc_request(9S)

usb_other_speed_cfg_descr(9S)

usb_request_attributes(9S)

usb_string_descr(9S)

scsi_extended_sense

- SCSI extended sense structure

Synopsis

#include <sys/scsi/scsi.h>

Interface Level

Solaris DDI specific (Solaris DDI).

Description

The scsi_extended_sense structure for error codes 0x70 (current errors) and 0x71 (deferred errors) is returned on a successful REQUEST SENSE command. SCSI-2 compliant targets are required to return at least the first 18 bytes of this structure. This structure is part of scsi_device(9S) structure.

Structure Members

uchar_t  es_valid   :1;     /* Sense data is valid */
uchar_t  es_class   :3;     /* Error Class- fixed at 0x7 */
uchar_t  es_code    :4;     /* Vendor Unique error code */
uchar_t  es_segnum;         /* Segment number: for COPY cmd only */
uchar_t  es_filmk   :1;     /* File Mark Detected */
uchar_t  es_eom     :1;     /* End of Media */
uchar_t  es_ili     :1;     /* Incorrect Length Indicator */
uchar_t  es_key     :4;     /* Sense key */
uchar_t  es_info_1;         /* Information byte 1 */
uchar_t  es_info_2;         /* Information byte 2 */
uchar_t  es_info_3;         /* Information byte 3 */
uchar_t  es_info_4;         /* Information byte 4 */
uchar_t  es_add_len;        /* Number of additional bytes */
uchar_t  es_cmd_info[4];    /* Command specific information */
uchar_t  es_add_code;       /* Additional Sense Code */
uchar_t  es_qual_code;      /* Additional Sense Code Qualifier */
uchar_t  es_fru_code;       /* Field Replaceable Unit Code */
uchar_t  es_skey_specific[3]; /* Sense Key Specific information */

es_valid, if set, indicates that the information field contains valid information.

es_class should be 0x7.

es_code is either 0x0 or 0x1.

es_segnum contains the number of the current segment descriptor if the REQUEST SENSE command is in response to a COPY, COMPARE, and COPY AND VERIFY command.

es_filmk, if set, indicates that the current command had read a file mark or set mark (sequential access devices only).

es_eom, if set, indicates that an end-of-medium condition exists (sequential access and printer devices only).

es_ili, if set, indicates that the requested logical block length did not match the logical block length of the data on the medium.

es_key indicates generic information describing an error or exception condition. The following sense keys are defined:

KEY_NO_SENSE

Indicates that there is no specific sense key information to be reported.

KEY_RECOVERABLE_ERROR

Indicates that the last command completed successfully with some recovery action performed by the target.

KEY_NOT_READY

Indicates that the logical unit addressed cannot be accessed.

KEY_MEDIUM_ERROR

Indicates that the command terminated with a non-recovered error condition that was probably caused by a flaw on the medium or an error in the recorded data.

KEY_HARDWARE_ERROR

Indicates that the target detected a non-recoverable hardware failure while performing the command or during a self test.

KEY_ILLEGAL_REQUEST

Indicates that there was an illegal parameter in the CDB or in the additional parameters supplied as data for some commands.

KEY_UNIT_ATTENTION

Indicates that the removable medium might have been changed or the target has been reset.

KEY_WRITE_PROTECT/KEY_DATA_PROTECT

Indicates that a command that reads or writes the medium was attempted on a block that is protected from this operation.

KEY_BLANK_CHECK

Indicates that a write-once device or a sequential access device encountered blank medium or format-defined end-of-data indication while reading or a write-once device encountered a non-blank medium while writing.

KEY_VENDOR_UNIQUE

This sense key is available for reporting vendor-specific conditions.

KEY_COPY_ABORTED

Indicates that a COPY, COMPARE, and COPY AND VERIFY command was aborted.

KEY_ABORTED_COMMAND

Indicates that the target aborted the command.

KEY_EQUAL

Indicates that a SEARCH DATA command has satisfied an equal comparison.

KEY_VOLUME_OVERFLOW

Indicates that a buffered peripheral device has reached the end-of-partition and data might remain in the buffer that has not been written to the medium.

KEY_MISCOMPARE

Indicates that the source data did not match the data read from the medium.

KEY_RESERVE

Indicates that the target is currently reserved by a different initiator.

es_info_{1,2,3,4} is device-type or command specific.

es_add_len indicates the number of additional sense bytes to follow.

es_cmd_info contains information that depends on the command that was executed.

es_add_code (ASC) indicates further information related to the error or exception condition reported in the sense key field.

es_qual_code (ASCQ) indicates detailed information related to the additional sense code.

es_fru_code (FRU) indicates a device-specific mechanism to unit that has failed.

es_skey_specific is defined when the value of the sense-key specific valid bit (bit 7) is 1. This field is reserved for sense keys not defined above.

See Also

scsi_device(9S)

ANSI Small Computer System Interface-2 (SCSI-2)

Writing Device Drivers