SCSI_HBA_INIT(9F)       Kernel Functions for Drivers       SCSI_HBA_INIT(9F)
NAME
       scsi_hba_init, scsi_hba_fini - SCSI Host Bus Adapter system
       initialization and completion routines
SYNOPSIS
       #include <sys/scsi/scsi.h>       
int scsi_hba_init(
struct modlinkage *modlp);       
void scsi_hba_fini(
struct modlinkage *modlp);
INTERFACE LEVEL
       illumos architecture specific (illumos DDI).
PARAMETERS
       modlp                 Pointer to the Host Bus Adapters module linkage structure.
DESCRIPTION
   scsi_hba_init()       scsi_hba_init() is the system-provided initialization routine for       
SCSI HBA drivers.  The 
scsi_hba_init() function registers the 
HBA in
       the system and allows the driver to accept configuration requests on
       behalf of 
SCSI target drivers. The 
scsi_hba_init() routine must be
       called in the 
HBA's 
_init(9E) routine before 
mod_install(9F) is
       called. If 
mod_install(9F) fails, the 
HBA's 
_init(9E) should call       
scsi_hba_fini() before returning failure.   
scsi_hba_fini()       scsi_hba_fini() is the system provided completion routine for 
SCSI       HBA drivers. 
scsi_hba_fini() removes all of the system references for
       the 
HBA that were created in 
scsi_hba_init(). The 
scsi_hba_fini()       routine should be called in the 
HBA's 
_fini(9E) routine if       
mod_remove(9F) is successful.
RETURN VALUES
       scsi_hba_init() returns 
0 if successful, and a non-zero value
       otherwise. If 
scsi_hba_init() fails, the HBA's 
_init() entry point
       should return the value returned by 
scsi_hba_init().
CONTEXT
       scsi_hba_init() and 
scsi_hba_fini() should be called from 
_init(9E)       or 
_fini(9E), respectively.
SEE ALSO
       _fini(9E), 
_init(9E), 
mod_install(9F), 
mod_remove(9F),       
scsi_pktalloc(9F), 
scsi_pktfree(9F), 
scsi_hba_tran(9S)       Writing Device DriversNOTES
       The 
HBA is responsible for ensuring that no 
DDI request routines are
       called on behalf of its 
SCSI target drivers once 
scsi_hba_fini() is
       called.
                              November 1, 1993             SCSI_HBA_INIT(9F)