Data Structures for Drivers scsi_hba_tran(9S)
NAME
scsi_hba_tran - SCSI Host Bus Adapter (HBA) driver transport
vector structureSYNOPSIS
#include
INTERFACE LEVEL
Solaris architecture specific (Solaris DDI).DESCRIPTION
A scsi_hba_tran_t structure defines vectors that an HBA
driver exports to SCSA interfaces so that HBA specific func-
tions can be executed. STRUCTURE MEMBERSdev_info_t *tran_hba_dip; /* HBAs dev_info
pointer */void *tran_hba_private; /* HBA softstate */
void *tran_tgt_private; /* HBA target private
pointer */struct scsi_device *tran_sd; /* scsi_device */
int (*tran_tgt_init)( ); /* Transport target */
Initialization */int (*tran_tgt_probe)( ); /* Transport target
probe */void (*tran_tgt_free)( ); /* Transport target
free */int (*tran_start)( ); /* Transport start */
int (*tran_reset)( ); /* Transport reset */
int (*tran_abort)( ); /* Transport abort */
int (*tran_getcap)( ); /* Capability
retrieval */int (*tran_setcap)( ); /* Capability
establishment */struct scsi_pkt *(*tran_init_pkt)( ); /* Packet and DMA
allocation */void (*tran_destroy_pkt)( ); /* Packet and DMA */
deallocation */void (*tran_dmafree)( ); /* DMA deallocation */
void (*tran_sync_pkt)( ); /* Sync DMA */
void (*tran_reset_notify)( );/* Bus reset
notification */int (*tran_bus_reset)( ); /* Reset bus only */
int (*tran_quiesce)( ); /* Quiesce a bus */
int (*tran_unquiesce)( ); /* Unquiesce a bus */
int (*tran_setup_pkt)( ); /* Initialization
for pkt */int (*tran_teardown_pkt)( );/* Deallocation */
int (*tran_pkt_constructor) ( );
/* Constructor */SunOS 5.11 Last change: 30 May 2006 1
Data Structures for Drivers scsi_hba_tran(9S)
int (*tran_pkt_destructor) ( );
/* Destructor */int tran_hba_len; /* # bytes for
pkt_ha_private */
int tran_interconnect_type; /* transport
interconnect */tran_hba_dip dev_info pointer to the HBA that
supplies the scsi_hba_tran struc-
ture.tran_hba_private Private pointer that the HBA
driver can use to refer to the device's soft state structure.tran_tgt_private Private pointer that the HBA can
use to refer to per-target
specific data. This field can only be used when theSCSI_HBA_TRAN_CLONE flag is speci-
fied in scsi_hba_attach(9F). In
this case, the HBA driver must initialize this field in itstran_tgt_init(9E) entry point.
tran_sd Pointer to scsi_device(9S) struc-
ture if cloning; otherwise NULL.tran_tgt_init Function entry that allows per-
target HBA initialization, if necessary.tran_tgt_probe Function entry that allows per-
target scsi_probe(9F) customiza-
tion, if necessary.tran_tgt_free Function entry that allows per-
target HBA deallocation, if neces-
sary.tran_start Function entry that starts a SCSI
command execution on the HBA hardware.SunOS 5.11 Last change: 30 May 2006 2
Data Structures for Drivers scsi_hba_tran(9S)
tran_reset Function entry that resets a SCSI
bus or target device.tran_abort Function entry that aborts one
SCSI command, or all pending SCSI commands.tran_getcap Function entry that retrieves a
SCSI capability.tran_setcap Function entry that sets a SCSI
capability.tran_init_pkt Function entry that allocates a
scsi_pkt structure.
tran_destroy_pkt Function entry that frees a
scsi_pkt structure allocated by
tran_init_pkt.
tran_dmafree Function entry that frees DMA
resources that were previouslyallocated by tran_init_pkt. Not
called for HBA drivers that pro-
vide a tran_setup_pkt entry point.
tran_sync_pkt Synchronizes data in pkt after a
data transfer has been completed. Not called for HBA drivers thatprovide a tran_setup_pkt entry
point.tran_reset_notify Function entry that allows a tar-
get to register a bus reset notif-
ication request with the HBA driver.tran_bus_reset Function entry that resets the
SCSI bus without resetting tar-
gets.SunOS 5.11 Last change: 30 May 2006 3
Data Structures for Drivers scsi_hba_tran(9S)
tran_quiesce Function entry that waits for all
outstanding commands to completeand blocks (or queues) any I/O requests issued.
tran_unquiesce Function entry that allows I/O
activities to resume on the SCSI bus.tran_setup_pkt Optional entry point that initial-
izes a scsi_pkt structure. See
tran_setup_pkt(9E).
tran_teardown_pkt Entry point that releases
resources allocated bytran_setup_pkt.
tran_pkt_constructor Additional optional entry point
that performs the actions of a constructor. Seetran_setup_pkt(9E).
tran_pkt_destructor Additional optional entry point
that performs the actions of a destructor. Seetran_setup_pkt(9E).
tran_hba_len Size of pkt_ha_private. See
tran_setup_pkt(9E).
tran_interconnect_type Integer value that denotes the
interconnect type of the transport as defined in the services.h header file.SEE ALSO
tran_abort(9E), tran_bus_reset(9E), tran_destroy_pkt(9E),
tran_dmafree(9E), tran_getcap(9E), tran_init_pkt(9E),
tran_quiesce(9E), tran_reset(9E), tran_reset_notify(9E),
tran_setcap(9E), tran_setup_pkt(9E), tran_start(9E),
tran_sync_pkt(9E), tran_tgt_free(9E), tran_tgt_init(9E),
tran_tgt_probe(9E), tran_unquiesce(9E), ddi_dma_sync(9F),
scsi_hba_attach(9F), scsi_hba_pkt_alloc(9F),
scsi_hba_pkt_free(9F), scsi_probe(9F), scsi_device(9S),
SunOS 5.11 Last change: 30 May 2006 4
Data Structures for Drivers scsi_hba_tran(9S)
scsi_pkt(9S)
Writing Device DriversSunOS 5.11 Last change: 30 May 2006 5