scsi_hba_attach(9f) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

scsi_hba_attach(9f)

scsi_hba_attach_setup(9F)      Kernel Functions      scsi_hba_attach_setup(9F)

NAME
       scsi_hba_attach_setup,  scsi_hba_attach, scsi_hba_detach - SCSI HBA at‐
       tach and detach routines

SYNOPSIS
       #include <sys/scsi/scsi.h>

       int scsi_hba_attach_setup(dev_info_t *dip, ddi_dma_attr_t *hba_dma_attr,
            scsi_hba_tran_t *hba_tran, int hba_flags);


       int scsi_hba_attach(dev_info_t *dip, ddi_dma_lim_t *hba_lim,
            scsi_hba_tran_t *hba_tran, int hba_flags, void *hba_options);


       int scsi_hba_detach(dev_info_t *dip);

INTERFACE LEVEL
       Solaris architecture specific (Solaris DDI).

PARAMETERS
       dip             Pointer to the dev_info_t structure that refers to  the
                       instance of the HBA device.


       hba_lim         Pointer to a ddi_dma_lim(9S) structure.


       hba_tran        Pointer to a scsi_hba_tran(9S) structure.


       hba_flags       Flag   modifiers.   The   defined   flag   values   are
                       SCSI_HBA_TRAN_CLONE,       SCSI_HBA_TRAN_SCB,       and
                       SCSI_HBA_TRAN_CDB.


       hba_options     Optional features provided by the HBA driver for future
                       extensions; must be NULL.


       hba_dma_attr    Pointer to a ddi_dma_attr(9S) structure.


DESCRIPTION
       The  scsi_hba_attach_setup() function is the recommended interface over
       the scsi_hba_attach() function.

   scsi_hba_attach_setup() scsi_hba_attach()
       The scsi_hba_attach() function registers the hba_lim DMA limits and the
       hba_tran transport vectors of each instance of the HBA  device  defined
       by dip. The scsi_hba_attach_setup() function registers the hba_dma_attr
       DMA  attributes  and the hba_tran transport vectors of each instance of
       the HBA device defined by dip. The HBA driver can  pass  different  DMA
       limits or DMA attributes and the transport vectors for each instance of
       the device to support any constraints imposed by the HBA itself.


       The  scsi_hba_attach()  and  scsi_hba_attach_setup()  functions use the
       dev_bus_ops field in the dev_ops(9S) structure. The HBA  driver  should
       initialize  this  field  to  NULL  before  calling scsi_hba_attach() or
       scsi_hba_attach_setup().


       If SCSI_HBA_TRAN_CLONE is requested in hba_flags, the  hba_tran  struc‐
       ture  is  cloned  once for each target that is attached to the HBA. The
       structure is cloned before the tran_tgt_init(9E) entry point is  called
       to  initialize  a target. At all subsequent HBA entry points, including
       tran_tgt_init(9E), the scsi_hba_tran_t structure passed as an  argument
       or  found  in  a  scsi_address  structure is the cloned scsi_hba_tran_t
       structure, which allows the HBA to use the  tran_tgt_private  field  in
       the  scsi_hba_tran_t  structure  to  point  to per-target data. The HBA
       should free only the same scsi_hba_tran_t structure allocated when  the
       HBA  detaches. All cloned scsi_hba_tran_t structures that are allocated
       by the system are freed by the system.


       The flags SCSI_HBA_TRAN_CDB and SCSI_HBA_TRAN_SCB are only  valid  when
       tran_setup_pkt() is used. See tran_setup_pkt(9E) for information on us‐
       ing these flags.


       The  scsi_hba_attach()  and  scsi_hba_attach_setup() functions attach a
       number of integer-valued properties to dip, unless  properties  of  the
       same  name  are  already attached to the node. An HBA driver should re‐
       trieve these configuration parameters via ddi_prop_get_int(9F), and re‐
       spect any settings for features provided the HBA.

       scsi-options              Optional  SCSI  configuration bits


       SCSI_OPTIONS_DR           If not set, the HBA should not grant  Discon‐
                                 nect privileges to target devices.


       SCSI_OPTIONS_TAG          If  not  set,  the  HBA should not operate in
                                 Command Tagged Queueing mode.


       SCSI_OPTIONS_PARITY       If not set, the HBA  should  not  operate  in
                                 parity mode.


       SCSI_OPTIONS_QAS          If  not  set,  the HBA should not make use of
                                 the Quick Arbitration Select feature. Consult
                                 your Sun hardware documentation to  determine
                                 whether your machine supports QAS.


       SCSI_OPTIONS_FAST         If  not  set,  the HBA should not operate the
                                 bus in FAST SCSI mode.


       SCSI_OPTIONS_FAST20       If not set, the HBA should  not  operate  the
                                 bus in FAST20 SCSI mode.


       SCSI_OPTIONS_FAST40       If  not  set,  the HBA should not operate the
                                 bus in FAST40 SCSI mode.


       SCSI_OPTIONS_FAST80       If not set, the HBA should  not  operate  the
                                 bus in FAST80 SCSI mode.


       SCSI_OPTIONS_FAST160      If  not  set,  the HBA should not operate the
                                 bus in FAST160 SCSI mode.


       SCSI_OPTIONS_FAST320      If not set, the HBA should  not  operate  the
                                 bus in FAST320 SCSI mode.


       SCSI_OPTIONS_WIDE         If  not  set,  the HBA should not operate the
                                 bus in WIDE SCSI mode.


       SCSI_OPTIONS_SYNC         If not set, the HBA should  not  operate  the
                                 bus in synchronous transfer mode.


       scsi-reset-delay          SCSI  bus  or  device reset recovery time, in
                                 milliseconds.


       scsi-selection-timeout    Default SCSI selection phase  timeout  value,
                                 in  milliseconds.  Please refer to individual
                                 HBA man pages for any  HBA-specific  informa‐
                                 tion


   scsi_hba_detach()
       The  scsi_hba_detach() function removes the reference to the DMA limits
       or attributes structure and the transport vector for the given instance
       of an HBA driver.

RETURN VALUES
       The scsi_hba_attach(), scsi_hba_attach_setup(),  and  scsi_hba_detach()
       functions  return DDI_SUCCESS if the function call succeeds, and return
       DDI_FAILURE on failure.

CONTEXT
       The scsi_hba_attach() and scsi_hba_attach_setup() functions  should  be
       called from attach(9E). The scsi_hba_detach() function should be called
       from detach(9E).

SEE ALSO
       attach(9E),    detach(9E),    tran_setup_pkt(9E),    tran_tgt_init(9E),
       ddi_prop_get_int(9F), ddi_dma_attr(9S),  ddi_dma_lim(9S),  dev_ops(9S),
       scsi_address(9S), scsi_hba_tran(9S)


       Writing Device Drivers in Oracle Solaris 11.4

NOTES
       It  is the HBA driver's responsibility to ensure that no more transport
       requests will be taken on behalf of any SCSI target device driver after
       scsi_hba_detach() is called.


       The scsi_hba_attach() function is obsolete and will be discontinued  in
       a future release. This function is replaced by scsi_hba_attach_setup().

Oracle Solaris 11.4               27 Nov 2017        scsi_hba_attach_setup(9F)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3