man Pages(9S): DDI and DKI Data Structures
只搜寻这本书
以 PDF 格式下载本书

NAME

scsi_device - SCSI device structure

SYNOPSIS

#include <sys/scsi/scsi.h>

INTERFACE LEVEL

Solaris DDI specific (Solaris DDI).

DESCRIPTION

The scsi_device structure stores common information about each SCSI logical unit, including pointers to areas that contain both generic and device specific information. There is one scsi_device structure for each logical unit attached to the system. The host adapter driver initializes part of this structure prior to probe(9E) and destroys this structure after a probe failure or successful detach(9E).

STRUCTURE ELEMENTS

struct scsi_address
sd_address;
/* Routing information * /
dev_info_t                    * sd_dev;      /* Cross-reference to our dev_info_t * /
kmutex_t                      sd_mutex;      /* Mutex for this device * /
struct scsi_inquiry           * sd_inq;      /* scsi_inquiry data structure * /
struct scsi_extended_sense    * sd_sense;    /* Optional request sense buffer ptr * /
caddr_t                       sd_private;    /* Target drivers private data * /

sd_address contains the routing information that the target driver normally copies into a scsi_pkt(9S) structure using the collection of makecom(9F) functions. The SCSA library routines use this information to determine which host adapter, SCSI bus, and target/lun a command is intended for. This structure is initialized by the host adapter driver.
sd_dev is a pointer to the corresponding dev_info structure. This pointer is initialized by the host adapter driver.
sd_mutex is a mutual exclusion lock for this device. It is used to serialize access to a device. The host adapter driver initializes this mutex. See mutex(9F).
sd_inq is initially NULL (zero). After executing scsi_probe(9F) this field contains the inquiry data associated with the particular device.
sd_sense is initially NULL (zero). If the target driver wants to use this field for storing REQUEST SENSE data, it should allocate an scsi_extended_sense(9S) buffer and set this field to the address of this buffer.
sd_private is reserved for the use of target drivers and should generally be used to point to target specific data structures.

SEE ALSO

detach(9E), probe(9E), makecom(9F), mutex(9F), scsi_probe(9F), scsi_extended_sense(9S), scsi_pkt(9S)
Writing Device Drivers