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_hba_tran

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

Synopsis

#include <sys/scsi/scsi.h>

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 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_interconnect_type;  /* transport interconnect */
tran_hba_dip

dev_info pointer to the HBA supplying 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

The function entry allowing per-target HBA initialization, if necessary.

tran_tgt_probe

The function entry allowing per-target scsi_probe(9F) customization, if necessary.

tran_tgt_free

The function entry allowing per-target HBA deallocation, if necessary.

tran_start

The function entry that starts a SCSI command execution on the HBA hardware.

tran_reset

The function entry that resets a SCSI bus or target device.

tran_abort

The function entry that aborts one SCSI command, or all pending SCSI commands.

tran_getcap

The function entry that retrieves a SCSI capability.

tran_setcap

The function entry that sets a SCSI capability.

tran_init_pkt

The function entry that allocates a scsi_pkt structure.

tran_destroy_pkt

The function entry that frees a scsi_pkt structure allocated by tran_init_pkt.

tran_dmafree

The function entry that frees DMA resources that were previously allocated by tran_init_pkt.

tran_sync_pkt

Synchronize data in pkt after a data transfer has been completed.

tran_reset_notify

The function entry allowing a target to register a bus reset notification request with the HBA driver.

tran_bus_reset

The function entry that resets the SCSI bus without resetting targets.

tran_quiesce

The function entry that waits for all outstanding commands to complete and blocks (or queues) any I/O requests issued.

tran_unquiesce

The function entry that allows I/O activities to resume on the SCSI bus.

tran_interconnect_type

Integer value denoting 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_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