TRAN_GETCAP(9E)              Driver Entry Points             TRAN_GETCAP(9E)
NAME
       tran_getcap, tran_setcap - get/set SCSI transport capability
SYNOPSIS
       #include <sys/scsi/scsi.h>       
int prefixtran_getcap(
struct scsi_address *ap, 
char *cap, 
int whom);       
int prefixtran_setcap(
struct scsi_address *ap, 
char *cap, 
int value,            
int whom);
INTERFACE LEVEL
       illumos architecture specific (illumos DDI).
PARAMETERS
       ap                 Pointer to the 
scsi_address(9S) structure.       
cap                 Pointer to the string capability identifier.       
value                 Defines the new state of the capability.       
whom                 Specifies whether all targets or only the specified target
                 is affected.
DESCRIPTION
       The 
tran_getcap() and 
tran_setcap() vectors in the 
scsi_hba_tran(9S)       structure must be initialized during the 
HBA driver's 
attach(9E) to
       point to 
HBA entry points to be called when a target driver calls       
scsi_ifgetcap(9F) and 
scsi_ifsetcap(9F).       
tran_getcap() is called to get the current value of a capability
       specific to features provided by the 
HBA hardware or driver.  The
       name of the capability 
cap is the 
NULL terminated capability string.
       If 
whom is non-zero, the request is for the current value of the
       capability defined for the target specified by the  
scsi_address(9S)       structure pointed to by 
ap; if 
whom is 
0, all targets are affected;
       else, the target specified by the 
scsi_address structure pointed to
       by 
ap is affected.       
tran_setcap() is called to set the value of the capability 
cap to the
       value of 
value. If 
whom is non-zero, the capability should be set for
       the target specified by the 
scsi_address(9S) structure pointed to by       
ap; if 
whom is 
0, all targets are affected; else, the target
       specified by the 
scsi_address structure pointed to by 
ap is affected.
       It is recommended that 
HBA drivers do not support setting
       capabilities for all targets, that is, 
whom is 
0.
       A device may support only a subset of the defined capabilities.
       Refer to 
scsi_ifgetcap(9F) for the list of defined capabilities.       
HBA drivers should use 
scsi_hba_lookup_capstr(9F) to match 
cap       against the canonical capability strings.
RETURN VALUES
       tran_setcap() must return  
1 if the capability was successfully set
       to the new value, 
0 if the 
HBA  driver does not support changing the
       capability, and  
-1 if the capability was not defined.       
tran_getcap() must return the current value of a capability or 
-1 if
       the capability was not defined.
SEE ALSO
       attach(9E), 
scsi_hba_attach(9F), 
scsi_hba_lookup_capstr(9F),       
scsi_ifgetcap(9F), 
scsi_address(9S), 
scsi_hba_tran(9S)       Writing Device Drivers                               August 30, 1995               TRAN_GETCAP(9E)