Interface Libraries libhbaapi(3LIB)
NAME
libhbaapi - Common Fibre Channel HBA information library
SYNOPSIS
cc [ flag... ] file... -lHBAAPI [ library... ]
#include
DESCRIPTION
The functions in this library access Fibre Channel HBA data. Fibre Channel 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 statisticso Mapping between FCP-2 discovered devices and
operating system SCSI information o Discovered devices port attributeso SCSI commands for discovered FCP-2 devices (Report
LUNS, Read Capacity, and Inquiry) o Common Transport commands to discover Fabric details INTERFACESThe shared object libhbaapi.so.1 provides the public inter-
faces defined below. See Intro(3) for additional information on shared object interfaces.HBA_CloseAdapter HBA_FreeLibrary
HBA_GetAdapterAttributes HBA_GetAdapterName
HBA_GetAdapterPortAttributes HBA_GetBindingCapability
HBA_GetBindingSupport HBA_GetDiscoveredPortAttributes
HBA_GetEventBuffer HBA_GetFC4Statistics
HBA_GetFCPStatistics HBA_GetFcpPersistentBinding
HBA_GetFcpTargetMapping HBA_GetFcpTargetMappingV2
HBA_GetNumberOfAdapters HBA_GetPersistentBindingV2
HBA_GetPortAttributesByWWN HBA_GetPortStatistics
HBA_GetRNIDMgmtInfo HBA_GetVendorLibraryAttributes
HBA_GetVersion HBA_GetWrapperLibraryAttributes
HBA_LoadLibrary HBA_OpenAdapter
HBA_OpenAdapterByWWN HBA_RefreshAdapterConfiguration
HBA_RefreshInformation HBA_RegisterForAdapterAddEvents
SunOS 5.11 Last change: 1 Sep 2003 1
Interface Libraries libhbaapi(3LIB)
HBA_RegisterForAdapterEvents HBA_RegisterForAdapterPortEvents
HBA_RegisterForAdapterPortStatEvents HBA_RegisterForLinkEvents
HBA_RegisterForTargetEvents HBA_RemoveAllPersistentBindings
HBA_RemoveCallback HBA_RemovePersistentBinding
HBA_ResetStatistics HBA_ScsiInquiryV2
HBA_ScsiReadCapacityV2 HBA_ScsiReportLUNsV2
HBA_SendCTPassThru HBA_SendCTPassThruV2
HBA_SendLIRR HBA_SendRLS
HBA_SendRNID HBA_SendRNIDV2
HBA_SendRPL HBA_SendRPS
HBA_SendReadCapacity HBA_SendReportLUNs
HBA_SendSRL HBA_SendScsiInquiry
HBA_SetBindingSupport HBA_SetPersistentBindingV2
HBA_SetRNIDMgmtInfo
USAGE
Client applications link with the Common Library (using-lHBAAPI) to access the interfaces. The Common Library
dynamically loads individual Vendor-Specific Libraries (VSL)
listed in /etc/hba.conf described on the hba.conf(4).Using the libhbaapi involves the following steps:
1. Optionally determining the version of the libraryby calling HBA_GetVersion(3HBAAPI).
2. Initializing the Common Library by callingHBA_LoadLibrary(3HBAAPI).
3. Determine the number of HBAs known to the common library by callingHBA_GetNumberOfAdapters(3HBAAPI).
4. Determine each HBA name in turn by callingHBA_GetAdapterName(3HBAAPI).
5. Open each HBA in turn by callingHBA_OpenAdapter(3HBAAPI).
6. Operate on a given HBA by calling the following:o HBA_GetAdapterAttributes(3HBAAPI)
o HBA_GetAdapterPortAttributes(3HBAAPI)
o HBA_GetDiscoveredPortAttributes(3HBAAPI)
o HBA_GetPortAttributesByWWN(3HBAAPI)
o HBA_SendCTPassThru(3HBAAPI)
SunOS 5.11 Last change: 1 Sep 2003 2
Interface Libraries libhbaapi(3LIB)
o HBA_SendCTPassThruV2(3HBAAPI)
o HBA_GetEventBuffer(3HBAAPI)
o HBA_SetRNIDMgmtInfo(3HBAAPI)
o HBA_GetRNIDMgmtInfo(3HBAAPI)
o HBA_SendRNID(3HBAAPI)
o HBA_SendRNIDV2(3HBAAPI)
o HBA_RefreshInformation(3HBAAPI)
o HBA_RefreshAdapterConfiguration(3HBAAPI)
o HBA_GetVendorLibraryAttributes(3HBAAPI)
o HBA_GetWrapperLibraryAttributes(3HBAAPI)
o HBA_ResetStatistics(3HBAAPI)
o HBA_GetFcpTargetMapping(3HBAAPI)
o HBA_GetFcpTargetMappingV2(3HBAAPI)
o HBA_GetFcpPersistentBinding(3HBAAPI)
o HBA_SendScsiInquiry(3HBAAPI)
o HBA_SendReportLUNs(3HBAAPI)
o HBA_ScsiReportLUNsV2(3HBAAPI)
o HBA_SendReadCapacity(3HBAAPI)
o HBA_SendRLS(3HBAAPI)
7. Close open HBAs by callingHBA_CloseAdapter(3HBAAPI).
8. Unload the library by callingHBA_FreeLibrary(3HBAAPI).
ERRORS
Errors are generally returned from the underlying VSL and can include any of the following values:HBA_STATUS_OK
Request completed successfully. (No Error)SunOS 5.11 Last change: 1 Sep 2003 3
Interface Libraries libhbaapi(3LIB)
HBA_STATUS_ERROR
Non-specific error encountered.
HBA_STATUS_ERROR_NOT_SUPPORTED
The VSL does not support this interface.HBA_STATUS_ERROR_INVALID_HANDLE
The handle argument does not refer to an open HBA han-
dle.HBA_STATUS_ERROR_ARG
An argument in the request was invalid.HBA_STATUS_ERROR_ILLEGAL_WWN
A WWN in the request was not recognized.HBA_STATUS_ERROR_ILLEGAL_INDEX
An index in the request was not recognized.HBA_STATUS_ERROR_MORE_DATA
A larger buffer is required to complete the requested operation.HBA_STATUS_ERROR_STALE_DATA
The state of the HBA has changed, possibly due to Dynamic Reconfiguration or devices being added or removed. The caller should callHBA_RefreshInformation(3HBAAPI) and reissue any
discovery logic to reset all indexes related to this HBA.HBA_STATUS_SCSI_CHECK_CONDITION
A SCSI check-condition was encountered during the I/O
operation. Not all VSLs report this error value. Somemight return HBA_STATUS_ERROR when a check-condition is
SunOS 5.11 Last change: 1 Sep 2003 4
Interface Libraries libhbaapi(3LIB)
encountered, or HBA_STATUS_OK.
HBA_STATUS_ERROR_BUSY
The requested device is busy. A retry might be effec-
tive.HBA_STATUS_ERROR_TRY_AGAIN
The requested I/O timed out. A retry might be effec-
tive.HBA_STATUS_ERROR_UNAVAILABLE
The requested HBA has been removed or deactivated. All other error values are reserved.ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:SunOS 5.11 Last change: 1 Sep 2003 5
Interface Libraries libhbaapi(3LIB)
_____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
| ___________________________|______________________________|__
| Availability | system/library/storage/fibre|-
| | channel/hbaapi (32-bit) |
| ____________________________|______________________________|_
| | SUNWcfclx (64-bit) |
| ____________________________|______________________________|_
| Interface Stability | Committed || ____________________________|______________________________|_
| | Standard: FC-HBA Version 4 |
| | (API version 2) ||_____________________________|______________________________|
| MT-Level | Safe |
|_____________________________|______________________________|
| Standard | FC-MI 1.92 (API version 1) |
|_____________________________|______________________________|
SEE ALSO
HBA_GetAdapterAttributes(3HBAAPI),
HBA_GetAdapterName(3HBAAPI),
HBA_GetAdapterPortAttributes(3HBAAPI),
HBA_GetBindingCapability(3HBAAPI),
HBA_GetDiscoveredPortAttributes(3HBAAPI),
HBA_GetEventBuffer(3HBAAPI),
HBA_GetFcpPersistentBinding(3HBAAPI),
HBA_GetFcpTargetMapping(3HBAAPI),
HBA_GetNumberOfAdapters(3HBAAPI),
HBA_GetPortAttributesByWWN(3HBAAPI),
HBA_GetPortStatistics(3HBAAPI), HBA_GetVersion(3HBAAPI),
HBA_GetWrapperLibraryAttributes(3HBAAPI),
HBA_LoadLibrary(3HBAAPI), HBA_OpenAdapter(3HBAAPI),
HBA_RefreshInformation(3HBAAPI),
HBA_RegisterForAdapterEvents(3HBAAPI),
HBA_SendCTPassThru(3HBAAPI), HBA_SendRLS(3HBAAPI),
HBA_SendScsiInquiry(3HBAAPI), HBA_SetRNIDMgmtInfo(3HBAAPI),
hba.conf(4), attributes(5)T11 FC-MI Specification
SunOS 5.11 Last change: 1 Sep 2003 6