JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
man pages section 3: Library Interfaces and Headers     Oracle Solaris 10 1/13 Information Library
search filter icon
search icon

Document Information

Preface

Introduction

Library Interfaces and Headers

acct(3HEAD)

acct.h(3HEAD)

aio(3HEAD)

aio.h(3HEAD)

ar(3HEAD)

archives(3HEAD)

archives.h(3HEAD)

ar.h(3HEAD)

assert(3HEAD)

assert.h(3HEAD)

complex(3HEAD)

complex.h(3HEAD)

cpio(3HEAD)

cpio.h(3HEAD)

dirent(3HEAD)

dirent.h(3HEAD)

errno(3HEAD)

errno.h(3HEAD)

fcntl(3HEAD)

fcntl.h(3HEAD)

fenv(3HEAD)

fenv.h(3HEAD)

float(3HEAD)

float.h(3HEAD)

floatingpoint(3HEAD)

floatingpoint.h(3HEAD)

fmtmsg(3HEAD)

fmtmsg.h(3HEAD)

fnmatch(3HEAD)

fnmatch.h(3HEAD)

ftw(3HEAD)

ftw.h(3HEAD)

glob(3HEAD)

glob.h(3HEAD)

grp(3HEAD)

grp.h(3HEAD)

iconv(3HEAD)

iconv.h(3HEAD)

if(3HEAD)

if.h(3HEAD)

in(3HEAD)

inet(3HEAD)

inet.h(3HEAD)

in.h(3HEAD)

inttypes(3HEAD)

inttypes.h(3HEAD)

ipc(3HEAD)

ipc.h(3HEAD)

iso646(3HEAD)

iso646.h(3HEAD)

langinfo(3HEAD)

langinfo.h(3HEAD)

lib300(3LIB)

lib300s(3LIB)

lib4014(3LIB)

lib450(3LIB)

libadm(3LIB)

libaio(3LIB)

libauto_ef(3LIB)

libbsdmalloc(3LIB)

libbsm(3LIB)

libc(3LIB)

libc_db(3LIB)

libcfgadm(3LIB)

libcommputil(3LIB)

libcontract(3LIB)

libcpc(3LIB)

libcrypt(3LIB)

libcurses(3LIB)

libcurses(3LIBUCB)

libdat(3LIB)

libdbm(3LIBUCB)

libdevid(3LIB)

libdevinfo(3LIB)

libdl(3LIB)

libdlpi(3LIB)

libdmi(3LIB)

libdmici(3LIB)

libdmimi(3LIB)

libdoor(3LIB)

libdtrace(3LIB)

libefi(3LIB)

libelf(3LIB)

libexacct(3LIB)

libfmevent(3LIB)

libform(3LIB)

libgen(3HEAD)

libgen(3LIB)

libgen.h(3HEAD)

libgss(3LIB)

libhbaapi(3LIB)

libidnkit(3LIB)

libintl(3LIB)

libkrb5(3LIB)

libkstat(3LIB)

libkvm(3LIB)

libl(3LIB)

liblayout(3LIB)

liblgrp(3LIB)

libm(3LIB)

libmail(3LIB)

libmalloc(3LIB)

libmapmalloc(3LIB)

libmd(3LIB)

libmd5(3LIB)

libmenu(3LIB)

libmlib(3LIB)

libmlib_mt(3LIB)

libmp(3LIB)

libMPAPI(3LIB)

libmpapi(3LIB)

libmtmalloc(3LIB)

libmvec(3LIB)

libnls(3LIB)

libnsl(3LIB)

libnvpair(3LIB)

libpam(3LIB)

libpanel(3LIB)

libpapi(3LIB)

libpctx(3LIB)

libpicl(3LIB)

libpicltree(3LIB)

libpkcs11(3LIB)

libplot(3LIB)

libpool(3LIB)

libposix4(3LIB)

libproject(3LIB)

libpthread(3LIB)

libresolv(3LIB)

librpcsoc(3LIBUCB)

librpcsvc(3LIB)

librsm(3LIB)

librt(3LIB)

librtld_db(3LIB)

libsasl(3LIB)

libscf(3LIB)

libsctp(3LIB)

libsec(3LIB)

libsecdb(3LIB)

libsendfile(3LIB)

libsip(3LIB)

libslp(3LIB)

libsmartcard(3LIB)

libsocket(3LIB)

libssagent(3LIB)

libssasnmp(3LIB)

libsys(3LIB)

libsysevent(3LIB)

libtecla(3LIB)

libtermcap(3LIB)

libtermcap(3LIBUCB)

libtermlib(3LIB)

libthread(3LIB)

libtnfctl(3LIB)

libtsalarm(3LIB)

libtsnet(3LIB)

libtsol(3LIB)

libucb(3LIBUCB)

libumem(3LIB)

libusb(3LIB)

libuuid(3LIB)

libv12n(3LIB)

libvolmgt(3LIB)

libvt0(3LIB)

libw(3LIB)

libwsreg(3LIB)

libxnet(3LIB)

libXtsol(3LIB)

libxtsol(3LIB)

liby(3LIB)

limits(3HEAD)

limits.h(3HEAD)

locale(3HEAD)

locale.h(3HEAD)

math(3HEAD)

math.h(3HEAD)

mman(3HEAD)

mman.h(3HEAD)

monetary(3HEAD)

monetary.h(3HEAD)

mqueue(3HEAD)

mqueue.h(3HEAD)

msg(3HEAD)

msg.h(3HEAD)

ndbm(3HEAD)

ndbm.h(3HEAD)

netdb(3HEAD)

netdb.h(3HEAD)

nl_types(3HEAD)

nl_types.h(3HEAD)

poll(3HEAD)

poll.h(3HEAD)

pthread(3HEAD)

pthread.h(3HEAD)

pwd(3HEAD)

pwd.h(3HEAD)

regex(3HEAD)

regex.h(3HEAD)

resource(3HEAD)

resource.h(3HEAD)

sched(3HEAD)

sched.h(3HEAD)

search(3HEAD)

search.h(3HEAD)

select(3HEAD)

select.h(3HEAD)

sem(3HEAD)

semaphore(3HEAD)

semaphore.h(3HEAD)

sem.h(3HEAD)

setjmp(3HEAD)

setjmp.h(3HEAD)

shm(3HEAD)

shm.h(3HEAD)

siginfo(3HEAD)

siginfo.h(3HEAD)

signal(3HEAD)

signal.h(3HEAD)

socket(3HEAD)

socket.h(3HEAD)

spawn(3HEAD)

spawn.h(3HEAD)

stat(3HEAD)

stat.h(3HEAD)

statvfs(3HEAD)

statvfs.h(3HEAD)

stdbool(3HEAD)

stdbool.h(3HEAD)

stddef(3HEAD)

stddef.h(3HEAD)

stdint(3HEAD)

stdint.h(3HEAD)

stdio(3HEAD)

stdio.h(3HEAD)

stdlib(3HEAD)

stdlib.h(3HEAD)

string(3HEAD)

string.h(3HEAD)

strings(3HEAD)

strings.h(3HEAD)

stropts(3HEAD)

stropts.h(3HEAD)

syslog(3HEAD)

syslog.h(3HEAD)

tar(3HEAD)

tar.h(3HEAD)

tcp(3HEAD)

tcp.h(3HEAD)

termios(3HEAD)

termios.h(3HEAD)

tgmath(3HEAD)

tgmath.h(3HEAD)

time(3HEAD)

timeb(3HEAD)

timeb.h(3HEAD)

time.h(3HEAD)

times(3HEAD)

times.h(3HEAD)

types32(3HEAD)

types32.h(3HEAD)

types(3HEAD)

types.h(3HEAD)

ucontext(3HEAD)

ucontext.h(3HEAD)

uio(3HEAD)

uio.h(3HEAD)

ulimit(3HEAD)

ulimit.h(3HEAD)

un(3HEAD)

un.h(3HEAD)

unistd(3HEAD)

unistd.h(3HEAD)

utime(3HEAD)

utime.h(3HEAD)

utmpx(3HEAD)

utmpx.h(3HEAD)

utsname(3HEAD)

utsname.h(3HEAD)

values(3HEAD)

values.h(3HEAD)

wait(3HEAD)

wait.h(3HEAD)

wchar(3HEAD)

wchar.h(3HEAD)

wctype(3HEAD)

wctype.h(3HEAD)

wordexp(3HEAD)

wordexp.h(3HEAD)

libhbaapi

- Common Fibre Channel HBA information library

Synopsis

cc [ flag… ] file-lHBAAPI [ library… ]
#include <hbaapi.h>

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:

INTERFACES

The shared object libhbaapi.so.1 provides the public interfaces 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
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 library by calling HBA_GetVersion(3HBAAPI).

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

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

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

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

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

  7. Close open HBAs by calling HBA_CloseAdapter(3HBAAPI).

  8. Unload the library by calling HBA_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)

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 handle.

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 call HBA_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. Some might return HBA_STATUS_ERROR when a check-condition is encountered, or HBA_STATUS_OK.

HBA_STATUS_ERROR_BUSY

The requested device is busy. A retry might be effective.

HBA_STATUS_ERROR_TRY_AGAIN

The requested I/O timed out. A retry might be effective.

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 attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Availability
SUNWcfcl (32–bit)
SUNWcfclx (64–bit)
Interface Stability
Standard: FC-MI 1.92 (API version 1)
Standard: FC-HBA Version 4 (API version 2)
MT-Level
Safe

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