SCSI_HBA_TRAN_ALLOC(9F) Kernel Functions for Drivers
NAME
scsi_hba_tran_alloc, scsi_hba_tran_free - allocate and free transport
structures
SYNOPSIS
#include <sys/scsi/scsi.h>
scsi_hba_tran_t *scsi_hba_tran_alloc(
dev_info_t *dip,
int flags);
void scsi_hba_tran_free(
scsi_hba_tran_t *hba_tran);
INTERFACE LEVEL
illumos architecture specific (illumos DDI).
PARAMETERS
dip Pointer to a
dev_info structure, defining the
HBA driver
instance.
flag Flag modifiers. The only possible flag value is
SCSI_HBA_CANSLEEP (memory allocation may sleep).
hba_tran Pointer to a
scsi_hba_tran(9S) structure.
DESCRIPTION
For
scsi_hba_tran_alloc():
The
scsi_hba_tran_alloc() function allocates a
scsi_hba_tran(9S) structure for a
HBA driver. The
HBA must use this structure to
register its transport vectors with the system by using
scsi_hba_attach_setup(9F).
If the flag
SCSI_HBA_CANSLEEP is set in
flags,
scsi_hba_tran_alloc() may sleep when allocating resources; otherwise it may not sleep, and
callers should be prepared to deal with allocation failures.
For
scsi_hba_tran_free():
The
scsi_hba_tran_free() function is used to free the
scsi_hba_tran(9S) structure allocated by
scsi_hba_tran_alloc().
RETURN VALUES
The
scsi_hba_tran_alloc() function returns a pointer to the allocated
transport structure, or
NULL if no space is available.
CONTEXT
The
scsi_hba_tran_alloc() function can be called from user,
interrupt, or kernel context. Drivers must not allow
scsi_hba_tran_alloc() to sleep if called from an interrupt routine.
The
scsi_hba_tran_free() function can be called from user, interrupt,
or kernel context context.
SEE ALSO
scsi_hba_attach_setup(9F),
scsi_hba_tran(9S) Writing Device Drivers January 16, 2006 SCSI_HBA_TRAN_ALLOC(9F)