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)