| SAS_PHYMAP_LOOKUP_UA(9F) | Kernel Functions for Drivers | SAS_PHYMAP_LOOKUP_UA(9F) | 
sas_phymap_lookup_ua,
    sas_phymap_lookup_uapriv,
    sas_phymap_phy2ua,
    sas_phymap_ua_free,
    sas_phymap_uahasphys,
    sas_phymap_ua2phys,
    sas_phymap_phys_next,
    sas_phymap_phys_free — SAS
    phymap utility functions
#include
    <sys/scsi/scsi.h>
char *
  
  sas_phymap_lookup_ua(sas_phymap_t
    *phymap, uint64_t local,
    uint64_t remote);
void *
  
  sas_phymap_lookup_uapriv(sas_phymap_t
    *phymap, char *ua);
int
  
  sas_phymap_uahasphys(sas_phymap_t
    *phymap, char *ua);
char *
  
  sas_phymap_phy2ua(sas_phymap_t
    *phymap, int phy);
void
  
  sas_phymap_ua_free(char
  *ua);
sas_phymap_phys_t *
  
  sas_phymap_ua2phys(sas_phymap_t
    *phymap, char *ua);
int
  
  sas_phymap_phys_next(sas_phymap_phys_t
    *phys);
void
  
  sas_phymap_phys_free(sas_phymap_phys_t
    *phys);
Evolving - This interface is still evolving in illumos. API and ABI stability is not guaranteed.
The functions described here are all utility functions for
    operating on a phymap and the entities it creates.
  
   For more information on phymaps, see
    phymap(9) and
    sas_phymap_create(9F).
The
    sas_phymap_lookup_ua()
    function finds the unit address of the logical port that corresponds to the
    tuple of the local and remote
    WWN. If a logical port exists for that tuple, then a pointer to its system
    generated unit-address is returned. This string is managed by the system and
    it must not be modified or freed. If it cannot be found, then
    NULL is returned.
The
    sas_phymap_lookup_uapriv()
    function returns the private value that was stored during the activate
    callback of the logical port represented by the unit address
    ua that is a part of the phymap
    phymap.
The
    sas_phymap_uahasphys()
    function is used to determine whether or not the logical port represented by
    the unit address specified in ua that is a part of the
    phymap phymap has any phys. If phys are found, then
    the function returns 1.
The
    sas_phymap_phy2ua()
    function attempts to map a given phy specified by phy
    to its unit-address in the map phymap. This function
    will allocate memory for the character string, thus it can be modified. The
    caller must call the sas_phymap_ua_free function to
    release the memory that was allocated. The
    sas_phymap_ua_free function should not be used with
    the string returned from the sas_phymap_lookup_ua()
    function.
The
    sas_phymap_ua2phys()
    function creates a collection of phys that exist on a given logical port
    represented by the unit-address ua in the map
    phymap. This set can be iterated by calling the
    sas_phyap_phys_next()
    function. Each time the function is called, an entry is returned. When the
    value -1 is returned it indicates that the set is empty.
    Regardless of whether or not the set has been iterated over, the caller must
    call the
    sas_phymap_phys_free()
    function to release the memory associated with the set.
All functions may be used in user, kernel, and interrupt context.
Upon successful completion, the
    sas_phymap_lookup_ua() and
    sas_phymap_phy2ua() function returns a pointer to
    the unit-address. If the port or phy could not be found or another error
    occurred, then the function returns NULL.
Upon successful completion, the
    sas_phymap_lookup_uapriv() function returns a
    pointer to the port's private data, if any exists. Otherwise, if the port
    could not be found or another error occurred, then the function returns
    NULL. Upon successful completion, the
    sas_phymap_uahasphys() returns 1
    to indicate that the unit-address has phys. If the unit-address has no phys,
    then it returns 0. If an error occurred or the port
    doesn't exist, then the function returns 0.
Upon successful completion, the
    sas_phymap_ua2phys() function returns a pointer to
    an allocated phy set. Otherwise, it returns
  NULL.
The sas_phymap_phys_next() function
    returns a non-negative integer indicating a present phy or it returns
    -1 to indicate that no values remain.
| April 20, 2017 | OmniOS |