tran_dmafree(9E) Driver Entry Points tran_dmafree(9E)NAME
tran_dmafree - SCSI HBA DMA deallocation entry point
SYNOPSIS
#include <sys/scsi/scsi.h>
void prefixtran_dmafree(struct scsi_address *ap, struct scsi_pkt *pkt);
INTERFACE LEVEL
Solaris architecture specific (Solaris DDI).
ARGUMENTS
ap A pointer to a scsi_address structure. See scsi_address(9S).
pkt A pointer to a scsi_pkt structure. See scsi_pkt(9S).
DESCRIPTION
The tran_dmafree() vector in the scsi_hba_tran structure must be initialized during the HBA driver's attach() to point to an HBA entry
point to be called when a target driver calls scsi_dmafree(9F). See attach(9E) and scsi_hba_tran(9S).
tran_dmafree() must deallocate any DMA resources previously allocated to this pkt in a call to tran_init_pkt(9E). tran_dmafree() should
not free the structure pointed to by pkt itself. Since tran_destroy_pkt(9E) must also free DMA resources, it is important that the HBA
driver keeps accurate note of whether scsi_pkt(9S) structures have DMA resources allocated.
SEE ALSO attach(9E), tran_destroy_pkt(9E), tran_init_pkt(9E), scsi_dmafree(9F), scsi_dmaget(9F), scsi_hba_attach(9F), scsi_init_pkt(9F),
scsi_address(9S), scsi_hba_tran(9S), scsi_pkt(9S)
Writing Device Drivers
NOTES
A target driver may call tran_dmafree() on packets for which no DMA resources were allocated.
SunOS 5.10 30 Aug 1995 tran_dmafree(9E)
Check Out this Related Man Page
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
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 */
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.
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
SunOS 5.10 20 Sep 1994 scsi_hba_tran(9S)