LIBSMHBAAPI(3LIB)LIBSMHBAAPI(3LIB)NAME
libSMHBAAPI, libsmhbaapi, SMHBA_GetAdapterAttributes, SMHBA_GetAdapter‐
PortAttributes, SMHBA_GetBindingCapability, SMHBA_GetBindingSupport,
SMHBA_GetDiscoveredPortAttributes, SMHBA_GetFCPhyAttributes,
SMHBA_GetLUNStatistics, SMHBA_GetNumberofPorts, SMHBA_GetPersistent‐
Binding, SMHBA_GetPhyStatistics, SMHBA_GetPortAttributesByWWN,
SMHBA_GetPortType, SMHBA_GetProtocolStatistics, SMHBA_GetSASPhyAt‐
tributes, SMHBA_GetTargetMapping, SMHBA_GetVendorLibraryAttributes,
SMHBA_GetVersion, SMHBA_GetWrapperLibraryAttributes, SMHBA_Register‐
ForAdapterAddEvents, SMHBA_RegisterForAdapterEvents, SMHBA_Register‐
ForAdapterPhyStatEvents, SMHBA_RegisterForAdapterPortEvents, SMHBA_Reg‐
isterForAdapterPortStatEvents, SMHBA_RegisterForTargetEvents,
SMHBA_RegisterLibrary, SMHBA_RemoveAllPersistentBindings,
SMHBA_RemovePersistentBinding, SMHBA_ScsiInquiry, SMHBA_ScsiReadCapac‐
ity, 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 Sereal
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 fol‐
lowing 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 Managment 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(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_LoadLi‐
brary().
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_GetAdapter‐
Name().
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 Channle 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(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 Pro‐ │
│ │ gramming Interface (SM- │
│ │ HBA) │
└────────────────────┴────────────────────────────┘
SEE ALSOsmhba.conf(4), attributes(5)
Sep 28, 2009 LIBSMHBAAPI(3LIB)