LIBSMHBAAPI(3LIB) Interface Libraries LIBSMHBAAPI(3LIB)


NAME


libSMHBAAPI, libsmhbaapi, SMHBA_GetAdapterAttributes,
SMHBA_GetAdapterPortAttributes, SMHBA_GetBindingCapability,
SMHBA_GetBindingSupport, SMHBA_GetDiscoveredPortAttributes,
SMHBA_GetFCPhyAttributes, SMHBA_GetLUNStatistics, SMHBA_GetNumberofPorts,
SMHBA_GetPersistentBinding, SMHBA_GetPhyStatistics,
SMHBA_GetPortAttributesByWWN, SMHBA_GetPortType,
SMHBA_GetProtocolStatistics, SMHBA_GetSASPhyAttributes,
SMHBA_GetTargetMapping, SMHBA_GetVendorLibraryAttributes,
SMHBA_GetVersion, SMHBA_GetWrapperLibraryAttributes,
SMHBA_RegisterForAdapterAddEvents, SMHBA_RegisterForAdapterEvents,
SMHBA_RegisterForAdapterPhyStatEvents,
SMHBA_RegisterForAdapterPortEvents,
SMHBA_RegisterForAdapterPortStatEvents, SMHBA_RegisterForTargetEvents,
SMHBA_RegisterLibrary, SMHBA_RemoveAllPersistentBindings,
SMHBA_RemovePersistentBinding, SMHBA_ScsiInquiry, SMHBA_ScsiReadCapacity,
SMHBA_ScsiReportLuns, SMHBA_SendECHO, SMHBA_SendSMPPassThru,
SMHBA_SendTEST, SMHBA_SetBindingSupport, SMHBA_SetPersistentBinding -
Common Storage Management HBA information library

SYNOPSIS


cc [ flag... ] file... -lSMHBAAPI [ library... ]
#include <smhbaapi.h>


DESCRIPTION


The functions in this library access Fibre Channel and/or Serial Attached
SCSI HBA data depending on vendor provided implementation underneath.


HBA information is provided through a standard interface in a vendor
independent manner. This common interface provides access to the
following information:

o Local HBA attributes

o Local HBA port attributes and statistics

o Mapping between discovered devices and operating system SCSI
information

o Discovered devices port attributes

o SCSI commands for discovered devices (Report LUNS, Read
Capacity, and Inquiry)

o Storage Management Protocol commands to discover Serial
Attached SCSI configuration details

o Common Transport commands to discover Fibre Channel Fabric
details

INTERFACES


The shared object libSMHBAAPI.so.1 provides the public interfaces defined
below. See Intro(3) for additional information on shared object
interfaces.


HBA_CloseAdapter HBA_FreeLibrary
HBA_GetAdapterName HBA_GetNumberOfAdapters
HBA_GetRNIDMgmtInfo HBA_LoadLibrary
HBA_OpenAdapter HBA_RefreshAdapterConfiguration
HBA_RefreshInformation HBA_RegisterForLinkEvents
HBA_RemoveCallback HBA_SendCTPassThruV2
HBA_SendLIRR HBA_SendRLS
HBA_SendRNIDV2 HBA_SendRPL
HBA_SendRPS HBA_SendSRL
HBA_SetRNIDMgmtInfo SMHBA_GetAdapterAttributes
SMHBA_GetAdapterPortAttributes SMHBA_GetBindingCapability
SMHBA_GetBindingSupport SMHBA_GetDiscoveredPortAttributes
SMHBA_GetFCPhyAttributes SMHBA_GetLUNStatistics
SMHBA_GetNumberofPorts SMHBA_GetPersistentBinding
SMHBA_GetPhyStatistics SMHBA_GetPortAttributesByWWN
SMHBA_GetPortType SMHBA_GetProtocolStatistics
SMHBA_GetSASPhyAttributes SMHBA_GetTargetMapping
SMHBA_GetVendorLibraryAttributes SMHBA_GetVersion
SMHBA_GetWrapperLibraryAttributes SMHBA_RegisterForAdapterAddEvents
SMHBA_RegisterForAdapterEvents SMHBA_RegisterForAdapterPhyStatEvents
SMHBA_RegisterForAdapterPortEvents SMHBA_RegisterForAdapterPortStatEvents
SMHBA_RegisterForTargetEvents SMHBA_RegisterLibrary
SMHBA_RemoveAllPersistentBindings SMHBA_RemovePersistentBinding
SMHBA_ScsiInquiry SMHBA_ScsiReadCapacity
SMHBA_ScsiReportLuns SMHBA_SendECHO
SMHBA_SendSMPPassThru SMHBA_SendTEST
SMHBA_SetBindingSupport SMHBA_SetPersistentBinding


USAGE


Client applications link with the Common Library (using -lSMHBAAPI) to
access the interfaces. The Common Library dynamically loads individual
Vendor-Specific Libraries (VSL) listed in /etc/smhba.conf and described
on smhba.conf(5).


Using the libSMHBAAPI involves the following steps:

1. Optionally determining the version of the library by calling
SMHBA_GetVersion().

2. Initializing the Common Library by calling HBA_LoadLibrary().

3. Determine the number of HBAs known to the common library by
calling HBA_GetNumberOfAdapters().

4. Determine each HBA name in turn by calling
HBA_GetAdapterName().

5. Open each HBA in turn by calling HBA_OpenAdapter().

6. Operate on a given HBA by calling the following:

o SMHBA_GetAdapterAttributes()

o SMHBA_GetAdapterPortAttributes()

o SMHBA_GetDiscoveredPortAttributes()

o SMHBA_GetPortAttributesByWWN()

o SMHBA_GetNumberofPorts()

o SMHBA_GetPortType()

o SMHBA_GetProtocolStatistics()

o SMHBA_GetPhyStatistics()

o SMHBA_GetBindingCapability()

o SMHBA_GetBindingSupport()

o SMHBA_SetBindingSupport()

o SMHBA_GetTargetMapping()

o SMHBA_GetPersistentBinding()

o SMHBA_SetPersistentBinding()

o SMHBA_RemoveAllPersistentBindings()

o SMHBA_GetLUNStatistics()

o SMHBA_SendScsiInquiry()

o SMHBA_SendReportLuns()

o SMHBA_SendReadCapacity()

o SMHBA_RegisterForAdapterAddEvents()

o SMHBA_RegisterForAdapterEvents()

o SMHBA_RegisterForAdapterPortEvents()

o SMHBA_RegisterForAdapterPortStatEvents()

o SMHBA_RegisterForAdapterPhyStatEvents()

o SMHBA_RegisterForTargetEvents()

o HBA_RegisterForLinkEvents()

o HBA_RemoveCallback()
For Serial Attached HBA

o SMHBA_GetSASPhyAttributes()

o SMHBA_SendSMPPassThru()
For Fibre Channel HBA

o SMHBA_GetFCPhyAttributes()

o HBA_SendCTPassThruV2()

o HBA_SetRNIDMgmtInfo()

o HBA_GetRNIDMgmtInfo()

o HBA_SendRNIDV2()

o HBA_SendRPL()

o HBA_SendRPS()

o HBA_SendSRL()

o HBA_SendLIRR()

o HBA_SendRLS()

o HBA_SendTEST()

o HBA_SendECHO()

7. Close open HBAs by calling HBA_CloseAdapter().

8. Unload the library by calling HBA_FreeLibrary().

ATTRIBUTES


See attributes(7) for descriptions of the following attributes:


+--------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------------------+
|Interface Stability | Committed |
+--------------------+-----------------------------+
|MT-Level | MT-Safe |
+--------------------+-----------------------------+
|Standard | ANSI INCITS 428 Storage |
| | Management Host Bus Adapter |
| | Application Programming |
| | Interface (SM-HBA) |
+--------------------+-----------------------------+

SEE ALSO


smhba.conf(5), attributes(7)


August 19, 2019 LIBSMHBAAPI(3LIB)