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

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

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

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

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

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(4).

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().

See attributes(5) 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)

smhba.conf(4), attributes(5)
August 19, 2019