Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

detach(9E)

probe(9E)

makecom(9F)

mutex(9F)

scsi_probe(9F)

scsi_extended_sense(9S)

scsi_pkt(9S)

scsi_device(9S)

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 MEMBERS

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

SunOS 5.5/x86  —  Last change: 19 Feb 1993

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026