Go to main content

man pages section 9: DDI and DKI Driver Entry Points

Exit Print View

Updated: Thursday, June 13, 2019
 
 

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 in Oracle Solaris 11.4

Notes

A target driver may call tran_dmafree() on packets for which no DMA resources were allocated.