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

Document Information

Preface

Introduction

Data Structures for Drivers

aio_req(9S)

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)

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-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_register(9S)

mblk(9S)

modldrv(9S)

modlinkage(9S)

modlstrmod(9S)

module_info(9S)

msgb(9S)

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)

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_inquiry

- SCSI inquiry structure

Synopsis

#include <sys/scsi/scsi.h>

Interface Level

Solaris DDI specific (Solaris DDI).

Description

The scsi_inquiry structure contains 36 required bytes, followed by a variable number of vendor-specific parameters. Bytes 59 through 95, if returned, are reserved for future standardization. This structure is part of scsi_device(9S) structure and typically filled in by scsi_probe(9F).

Structure Members

uchar_t  inq_dtype;         /* Periph. qualifier, dev. type */
uchar_t  inq_rmb      :1;   /* Removable media */
uchar_t  inq_qual     :7;   /* Dev. type qualifier */
uchar_t  inq_iso      :2;   /* ISO version */
uchar_t  inq_ecma     :3;   /* ANSI version */
uchar_t  inq_aenc     :1;   /* Async event notif. cap. */
uchar_t  inq_trmiop   :1;   /* Supports TERMINATE I/O PROC msg */
uchar_t  inq_rdf      :4;   /* Response data format */
uchar_t  inq_len;           /* Additional length */
uchar_t  inq_reladdr  :1;   /* Supports relative addressing */
uchar_t  inq_wbus32   :1;   /* Supports 32 bit wide data xfers */
uchar_t  inq_wbus16   :1;   /* Supports 16 bit wide data xfers */
uchar_t  inq_sync     :1;   /* Supports synchron. data xfers */
uchar_t  inq_linked   :1;   /* Supports linked commands */
uchar_t  inq_cmd_que  :1;   /* Supports command queueing */
uchar_t  inq_sftre    :1;   /* Supports Soft Reset option */
char     inq_vid[8];        /* Vendor ID */
char     inq_pid[16];       /* Product ID */
char     inq_revision[4];   /* Revision level */

inq_dtype identifies the type of device. Bits 0 - 4 represent the Peripheral Device Type and bits 5 - 7 represent the Peripheral Qualifier. The following values are appropriate for Peripheral Device Type field:

DTYPE_ARRAY_CTRL

Array controller device (for example, RAID).

DTYPE_DIRECT

Direct-access device (for example, magnetic disk).

DTYPE_ESI

Enclosure services device.

DTYPE_SEQUENTIAL

Sequential-access device (for example, magnetic tape).

DTYPE_PRINTER

Printer device.

DTYPE_PROCESSOR

Processor device.

DTYPE_WORM

Write-once device (for example, some optical disks).

DTYPE_RODIRECT

CD-ROM device.

DTYPE_SCANNER

Scanner device.

DTYPE_OPTICAL

Optical memory device (for example, some optical disks).

DTYPE_CHANGER

Medium Changer device (for example, jukeboxes).

DTYPE_COMM

Communications device.

DTYPE_UNKNOWN

Unknown or no device type.

DTYPE_MASK

Mask to isolate Peripheral Device Type field.

The following values are appropriate for the Peripheral Qualifier field:

DPQ_POSSIBLE

The specified peripheral device type is currently connected to this logical unit. If the target cannot determine whether or not a physical device is currently connected, it uses this peripheral qualifier when returning the INQUIRY data. This peripheral qualifier does not imply that the device is ready for access by the initiator.

DPQ_SUPPORTED

The target is capable of supporting the specified peripheral device type on this logical unit. However, the physical device is not currently connected to this logical unit.

DPQ_NEVER

The target is not capable of supporting a physical device on this logical unit. For this peripheral qualifier, the peripheral device type shall be set to DTYPE_UNKNOWN to provide compatibility with previous versions of SCSI. For all other peripheral device type values, this peripheral qualifier is reserved.

DPQ_VUNIQ

This is a vendor-unique qualifier.

DTYPE_NOTPRESENT is the peripheral qualifier DPQ_NEVER and the peripheral device type DTYPE_UNKNOWN combined.

inq_rmb, if set, indicates that the medium is removable.

inq_qual is a device type qualifier.

inq_iso indicates ISO version.

inq_ecma indicates ECMA version.

inq_ansi indicates ANSI version.

inq_aenc, if set, indicates that the device supports asynchronous event notification capability as defined in SCSI-2 specification.

inq_trmiop, if set, indicates that the device supports the TERMINATE I/O PROCESS message.

inq_rdf, if reset, indicates the INQUIRY data format is as specified in SCSI-1.

inq_inq_len is the additional length field that specifies the length in bytes of the parameters.

inq_reladdr, if set, indicates that the device supports the relative addressing mode of this logical unit.

inq_wbus32, if set, indicates that the device supports 32-bit wide data transfers.

inq_wbus16, if set, indicates that the device supports 16-bit wide data transfers.

inq_sync, if set, indicates that the device supports synchronous data transfers.

inq_linked, if set, indicates that the device supports linked commands for this logical unit.

inq_cmdque, if set, indicates that the device supports tagged command queueing.

inq_sftre, if reset, indicates that the device responds to the RESET condition with the hard RESET alternative. If this bit is set, this indicates that the device responds with the soft RESET alternative.

inq_vid contains eight bytes of ASCII data identifying the vendor of the product.

inq_pid contains sixteen bytes of ASCII data as defined by the vendor.

inq_revision contains four bytes of ASCII data as defined by the vendor.

See Also

scsi_probe(9F), scsi_device(9S)

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

Writing Device Drivers