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)