SCSI_HBA_TRAN(9S) Data Structures for Drivers SCSI_HBA_TRAN(9S)

NAME


scsi_hba_tran - SCSI Host Bus Adapter (HBA) driver transport vector
structure

SYNOPSIS


#include <sys/scsi/scsi.h>


INTERFACE LEVEL


illumos architecture specific (illumos DDI).

DESCRIPTION


A scsi_hba_tran_t structure defines vectors that an HBA driver
exports to SCSA interfaces so that HBA specific functions can be
executed.

STRUCTURE MEMBERS


dev_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 */
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 structure.


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 the
SCSI_HBA_TRAN_CLONE flag is specified in
scsi_hba_attach(9F). In this case, the HBA
driver must initialize this field in its
tran_tgt_init(9E) entry point.


tran_sd
Pointer to scsi_device(9S) structure 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) customization, if necessary.


tran_tgt_free
Function entry that allows per-target HBA
deallocation, if necessary.


tran_start
Function entry that starts a SCSI command
execution on the HBA hardware.


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 previously allocated by
tran_init_pkt. Not called for HBA drivers
that provide 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 that provide a tran_setup_pkt
entry point.


tran_reset_notify
Function entry that allows a target to
register a bus reset notification request
with the HBA driver.


tran_bus_reset
Function entry that resets the SCSI bus
without resetting targets.


tran_quiesce
Function entry that waits for all
outstanding commands to complete and 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 initializes a
scsi_pkt structure. See tran_setup_pkt(9E).


tran_teardown_pkt
Entry point that releases resources
allocated by tran_setup_pkt.


tran_pkt_constructor
Additional optional entry point that
performs the actions of a constructor. See
tran_setup_pkt(9E).


tran_pkt_destructor
Additional optional entry point that
performs the actions of a destructor. See
tran_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), scsi_pkt(9S)


Writing Device Drivers

May 30, 2006 SCSI_HBA_TRAN(9S)

tribblix@gmail.com :: GitHub :: Privacy