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

illumos August 30, 1995 TRAN_GETCAP(9E)