JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
man pages section 3: Extended Library Functions
search filter icon
search icon

Document Information

Preface

Extended Library Functions - Part 1

Extended Library Functions - Part 2

Extended Library Functions - Part 3

gelf_update_move(3ELF)

gelf_update_phdr(3ELF)

gelf_update_rel(3ELF)

gelf_update_rela(3ELF)

gelf_update_shdr(3ELF)

gelf_update_sym(3ELF)

gelf_update_syminfo(3ELF)

gelf_update_symshndx(3ELF)

gelf_xlatetof(3ELF)

gelf_xlatetom(3ELF)

getacdir(3BSM)

getacflg(3BSM)

getacinfo(3BSM)

getacmin(3BSM)

getacna(3BSM)

getauclassent(3BSM)

getauclassent_r(3BSM)

getauclassnam(3BSM)

getauclassnam_r(3BSM)

getauditflags(3BSM)

getauditflagsbin(3BSM)

getauditflagschar(3BSM)

getauevent(3BSM)

getauevent_r(3BSM)

getauevnam(3BSM)

getauevnam_r(3BSM)

getauevnonam(3BSM)

getauevnum(3BSM)

getauevnum_r(3BSM)

getauthattr(3SECDB)

getauthnam(3SECDB)

getauuserent(3BSM)

getauuserent_r(3BSM)

getauusernam(3BSM)

getauusernam_r(3BSM)

getddent(3BSM)

getddnam(3BSM)

getdefaultproj(3PROJECT)

getdevicerange(3TSOL)

getexecattr(3SECDB)

getexecprof(3SECDB)

getexecuser(3SECDB)

getfauditflags(3BSM)

getpathbylabel(3TSOL)

getplabel(3TSOL)

getprofattr(3SECDB)

getproflist(3SECDB)

getprofnam(3SECDB)

getprojbyid(3PROJECT)

getprojbyname(3PROJECT)

getprojent(3PROJECT)

getprojidbyname(3PROJECT)

getuserattr(3SECDB)

getusernam(3SECDB)

getuserrange(3TSOL)

getuseruid(3SECDB)

getzoneidbylabel(3TSOL)

getzonelabelbyid(3TSOL)

getzonelabelbyname(3TSOL)

getzonerootbyid(3TSOL)

getzonerootbylabel(3TSOL)

getzonerootbyname(3TSOL)

gl_abandon_line(3TECLA)

gl_append_history(3TECLA)

gl_automatic_history(3TECLA)

gl_bind_keyseq(3TECLA)

gl_catch_blocked(3TECLA)

gl_change_terminal(3TECLA)

gl_clear_history(3TECLA)

gl_completion_action(3TECLA)

gl_configure_getline(3TECLA)

gl_customize_completion(3TECLA)

gl_display_text(3TECLA)

gl_echo_mode(3TECLA)

gl_erase_terminal(3TECLA)

gl_error_message(3TECLA)

gl_get_line(3TECLA)

gl_group_history(3TECLA)

gl_handle_signal(3TECLA)

gl_ignore_signal(3TECLA)

gl_inactivity_timeout(3TECLA)

gl_io_mode(3TECLA)

gl_last_signal(3TECLA)

gl_limit_history(3TECLA)

gl_list_signals(3TECLA)

gl_load_history(3TECLA)

gl_lookup_history(3TECLA)

gl_normal_io(3TECLA)

gl_pending_io(3TECLA)

gl_prompt_style(3TECLA)

gl_query_char(3TECLA)

gl_range_of_history(3TECLA)

gl_raw_io(3TECLA)

gl_read_char(3TECLA)

gl_register_action(3TECLA)

gl_replace_prompt(3TECLA)

gl_resize_history(3TECLA)

gl_return_status(3TECLA)

gl_save_history(3TECLA)

gl_set_term_size(3TECLA)

gl_show_history(3TECLA)

gl_size_of_history(3TECLA)

gl_state_of_history(3TECLA)

gl_terminal_size(3TECLA)

gl_toggle_history(3TECLA)

gl_trap_signal(3TECLA)

gl_tty_signals(3TECLA)

gl_watch_fd(3TECLA)

gmatch(3GEN)

h_alloc(3TSOL)

HBA_CloseAdapter(3HBAAPI)

HBA_FreeLibrary(3HBAAPI)

HBA_GetAdapterAttributes(3HBAAPI)

HBA_GetAdapterName(3HBAAPI)

HBA_GetAdapterPortAttributes(3HBAAPI)

HBA_GetBindingCapability(3HBAAPI)

HBA_GetBindingSupport(3HBAAPI)

HBA_GetDiscoveredPortAttributes(3HBAAPI)

HBA_GetEventBuffer(3HBAAPI)

HBA_GetFC4Statistics(3HBAAPI)

HBA_GetFcpPersistentBinding(3HBAAPI)

HBA_GetFCPStatistics(3HBAAPI)

HBA_GetFcpTargetMapping(3HBAAPI)

HBA_GetFcpTargetMappingV2(3HBAAPI)

HBA_GetNumberOfAdapters(3HBAAPI)

HBA_GetPersistentBindingV2(3HBAAPI)

HBA_GetPortAttributesByWWN(3HBAAPI)

HBA_GetPortStatistics(3HBAAPI)

HBA_GetRNIDMgmtInfo(3HBAAPI)

HBA_GetVendorLibraryAttributes(3HBAAPI)

HBA_GetVersion(3HBAAPI)

HBA_GetWrapperLibraryAttributes(3HBAAPI)

HBA_LoadLibrary(3HBAAPI)

HBA_OpenAdapter(3HBAAPI)

HBA_OpenAdapterByWWN(3HBAAPI)

HBA_RefreshAdapterConfiguration(3HBAAPI)

HBA_RefreshInformation(3HBAAPI)

HBA_RegisterForAdapterAddEvents(3HBAAPI)

HBA_RegisterForAdapterEvents(3HBAAPI)

HBA_RegisterForAdapterPortEvents(3HBAAPI)

HBA_RegisterForAdapterPortStatEvents(3HBAAPI)

HBA_RegisterForLinkEvents(3HBAAPI)

HBA_RegisterForTargetEvents(3HBAAPI)

HBA_RemoveAllPersistentBindings(3HBAAPI)

HBA_RemoveCallback(3HBAAPI)

HBA_RemovePersistentBinding(3HBAAPI)

HBA_ResetStatistics(3HBAAPI)

HBA_ScsiInquiryV2(3HBAAPI)

HBA_ScsiReadCapacityV2(3HBAAPI)

HBA_ScsiReportLUNsV2(3HBAAPI)

HBA_SendCTPassThru(3HBAAPI)

HBA_SendCTPassThruV2(3HBAAPI)

HBA_SendLIRR(3HBAAPI)

HBA_SendReadCapacity(3HBAAPI)

HBA_SendReportLUNs(3HBAAPI)

HBA_SendRLS(3HBAAPI)

HBA_SendRNID(3HBAAPI)

HBA_SendRNIDV2(3HBAAPI)

HBA_SendRPL(3HBAAPI)

HBA_SendRPS(3HBAAPI)

HBA_SendScsiInquiry(3HBAAPI)

HBA_SendSRL(3HBAAPI)

HBA_SetBindingSupport(3HBAAPI)

HBA_SetPersistentBindingV2(3HBAAPI)

HBA_SetRNIDMgmtInfo(3HBAAPI)

hextob(3TSOL)

h_free(3TSOL)

htobclear(3TSOL)

htobsl(3TSOL)

hypot(3M)

hypotf(3M)

hypotl(3M)

idn_decodename2(3EXT)

idn_decodename(3EXT)

idn_enable(3EXT)

idn_encodename(3EXT)

idn_nameinit(3EXT)

IFDHCloseChannel(3SMARTCARD)

IFDHControl(3SMARTCARD)

IFDHCreateChannel(3SMARTCARD)

IFDHCreateChannelByName(3SMARTCARD)

IFDHGetCapabilities(3SMARTCARD)

IFDHICCPresence(3SMARTCARD)

IFDHPowerICC(3SMARTCARD)

IFDHSetCapabilities(3SMARTCARD)

IFDHSetProtocolParameters(3SMARTCARD)

IFDHTransmitToICC(3SMARTCARD)

ilogb(3M)

ilogbf(3M)

ilogbl(3M)

inproj(3PROJECT)

isencrypt(3GEN)

isfinite(3M)

isgreater(3M)

isgreaterequal(3M)

isinf(3M)

isless(3M)

islessequal(3M)

islessgreater(3M)

isnan(3M)

isnormal(3M)

isunordered(3M)

j0(3M)

j0f(3M)

j0l(3M)

j1(3M)

j1f(3M)

j1l(3M)

jn(3M)

jnf(3M)

jnl(3M)

kstat(3KSTAT)

Kstat(3PERL)

kstat_chain_update(3KSTAT)

kstat_close(3KSTAT)

kstat_data_lookup(3KSTAT)

kstat_lookup(3KSTAT)

kstat_open(3KSTAT)

kstat_read(3KSTAT)

kstat_write(3KSTAT)

kva_match(3SECDB)

kvm_close(3KVM)

kvm_getcmd(3KVM)

kvm_getproc(3KVM)

kvm_getu(3KVM)

kvm_kread(3KVM)

kvm_kwrite(3KVM)

kvm_nextproc(3KVM)

kvm_nlist(3KVM)

kvm_open(3KVM)

kvm_read(3KVM)

kvm_setproc(3KVM)

kvm_uread(3KVM)

kvm_uwrite(3KVM)

kvm_write(3KVM)

la_activity(3EXT)

la_amd64_pltenter(3EXT)

labelbuilder(3TSOL)

labelclipping(3TSOL)

label_to_str(3TSOL)

la_i86_pltenter(3EXT)

la_objfilter(3EXT)

la_objopen(3EXT)

la_objsearch(3EXT)

la_pltexit(3EXT)

la_pltexit64(3EXT)

la_preinit(3EXT)

la_sparcv8_pltenter(3EXT)

la_sparcv9_pltenter(3EXT)

la_symbind32(3EXT)

la_symbind64(3EXT)

la_version(3EXT)

ld_atexit(3ext)

ld_atexit64(3ext)

ldexp(3M)

ldexpf(3M)

ldexpl(3M)

ld_file(3ext)

ld_file64(3ext)

ld_input_done(3ext)

ld_input_section(3ext)

ld_input_section64(3ext)

ld_open(3ext)

ld_open64(3ext)

ld_section(3ext)

ld_section64(3ext)

ld_start(3ext)

ld_start64(3ext)

ld_support(3ext)

ld_version(3ext)

lgamma(3M)

lgammaf(3M)

lgammaf_r(3M)

lgammal(3M)

lgammal_r(3M)

lgamma_r(3M)

lgrp_affinity_get(3LGRP)

lgrp_affinity_set(3LGRP)

lgrp_children(3LGRP)

lgrp_cookie_stale(3LGRP)

lgrp_cpus(3LGRP)

lgrp_fini(3LGRP)

lgrp_home(3LGRP)

lgrp_init(3LGRP)

lgrp_latency(3LGRP)

lgrp_latency_cookie(3LGRP)

lgrp_mem_size(3LGRP)

lgrp_nlgrps(3LGRP)

lgrp_parents(3LGRP)

lgrp_resources(3LGRP)

lgrp_root(3LGRP)

lgrp_version(3LGRP)

lgrp_view(3LGRP)

libpicl(3PICL)

libpicltree(3PICLTREE)

libtecla_version(3TECLA)

libtnfctl(3TNF)

llrint(3M)

llrintf(3M)

llrintl(3M)

llround(3M)

llroundf(3M)

llroundl(3M)

log10(3M)

log10f(3M)

log10l(3M)

log1p(3M)

log1pf(3M)

log1pl(3M)

log2(3M)

log2f(3M)

log2l(3M)

log(3M)

logb(3M)

logbf(3M)

logbl(3M)

logf(3M)

logl(3M)

lrint(3M)

lrintf(3M)

lrintl(3M)

lround(3M)

lroundf(3M)

lroundl(3M)

maillock(3MAIL)

mailunlock(3MAIL)

match_execattr(3SECDB)

matherr(3M)

m_create_layout(3LAYOUT)

md4(3EXT)

MD4Final(3EXT)

MD4Init(3EXT)

MD4Update(3EXT)

md5(3EXT)

md5_calc(3EXT)

MD5Final(3EXT)

MD5Init(3EXT)

MD5Update(3EXT)

m_destroy_layout(3LAYOUT)

media_findname(3VOLMGT)

media_getattr(3VOLMGT)

media_getid(3VOLMGT)

media_setattr(3VOLMGT)

m_getvalues_layout(3LAYOUT)

mkdirp(3GEN)

m_label(3TSOL)

m_label_alloc(3TSOL)

m_label_dup(3TSOL)

m_label_free(3TSOL)

modf(3M)

modff(3M)

modfl(3M)

mp(3MP)

MP_AssignLogicalUnitToTPG(3MPAPI)

MP_CancelOverridePath(3MPAPI)

MP_CompareOIDs(3MPAPI)

MP_DeregisterForObjectPropertyChanges(3MPAPI)

MP_DeregisterForObjectVisibilityChanges(3MPAPI)

MP_DeregisterPlugin(3MPAPI)

MP_DisableAutoFailback(3MPAPI)

MP_DisableAutoProbing(3MPAPI)

MP_DisablePath(3MPAPI)

MP_EnableAutoFailback(3MPAPI)

Extended Library Functions - Part 4

Extended Library Functions - Part 5

Extended Library Functions - Part 6

HBA_SendCTPassThru

, HBA_SendCTPassThruV2

- end a Fibre Channel Common Transport request to a Fabric

Synopsis

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

HBA_STATUS HBA_SendCTPassThru(HBA_HANDLE handle,
     void *pReqBuffer, HBA_UINT32 ReqBufferSize,
     void *pRspBuffer, HBA_UINT32 RspBufferSize);
HBA_STATUS HBA_SendCTPassThruV2(HBA_HANDLE handle,
     HBA_WWN hbaPortWWN, void *pReqBuffer,
     HBA_UINT32 ReqBufferSize, void *pRspBuffer,
     HBA_UINT32 *RspBufferSize);

Parameters

handle

an open handle returned from HBA_OpenAdapter(3HBAAPI)

hbaPortWWN

the Port Name of the local HBA Port through which the caller is issuing the CT request

pReqBuffer

a pointer to a CT_IU request. The contents of the buffer must be in big-endian byte order

ReqBufferSize

the length of the CT_IU request buffer pReqBuffer

pRspBuffer

a pointer to a CT_IU response buffer. The response received from the fabric is copied into this buffer in big-endian byte order. Success of the function need not imply success of the command. The CT_IU Command/Response field should be checked for the Accept Response code.

RspBufferSize
HBA_SendCTPassThru()

the length of the CT_IU accept response buffer pRspBuffer.

HBA_SendCTPassThruV2()

a Pointer to the length of the CT_IU accept response buffer pRspBuffer.

Description

The HBA_SendCTPassThru() and HBA_SendCTPassThruV2() functions provide access to the standard in-band fabric management interface. The pReqBuffer argument is interpreted as a CT_IU request, as defined by the T11 specification FC-GS-3, and is routed in the fabric based on the GS_TYPE field.

Return Values

Upon successful transport and receipt of a CT_IU response, HBA_SendCTPassThru() returns HBA_STATUS_OK. The CT_IU payload indicates whether the command was accepted by the fabric based on the Command/Response code returned. Otherwise, an error value is returned from the underlying VSL and the values in pRspBuffer are undefined.

Upon successful transport and receipt of a CT_IU response, HBA_SendCTPassThruV2() returns HBA_STATUS_OK. The CT_IU payload indicates whether the command was accepted by the fabric based on the Command/Response code returned. Otherwise, an error code is returned from the underlying VSL, and the values in pRspBuffer are undefined. The HBA_SendCTPassThruV2() function returns the following values:

HBA_STATUS_ERROR_ILLEGAL_WWN

The value of hbaPortWWN is not a valid port WWN on the specified HBA.

HBA_STATUS_ERROR

An error occurred.

Errors

See libhbaapi(3LIB) for general error status values.

Examples

Example 1 Data structures for the GIEL command.

struct ct_iu_preamble {
    uint32_t  ct_rev        : 8,
              ct_inid       : 24;
    uint32_t  ct_fcstype    : 8,
              ct_fcssubtype : 8,
              ct_options    : 8,
              ct_reserved1  : 8;
    uint32_t  ct_cmdrsp     : 16,
              ct_aiusize    : 16;
    uint32_t  ct_reserved2  : 8,
              ct_reason     : 8,
              ct_expln      : 8,
              ct_vendor     : 8;
};
struct gs_ms_ic_elem {
    uchar_t   elem_name[8];
    uint32_t  reserved1   : 24,
              elem_type   : 8;
};
struct gs_ms_giel_rsp {
    struct ct_iu_preamble  ct_header;
    uint32_t               num_elems;
struct gs_ms_ic_elem   elem_list[1];
};
#define MAX_PAYLOAD_LEN 65536 /* 64K */

Example 2 Send an GIEL Management Service command through the given HBA handle.

The following example sends an GIEL Management Service command through the given HBA handle.

req.ct_rev        = 0x01;
req.ct_fcstype    = 0xFA;   /* Management Service */
req.ct_fcssubtype = 0x01;   /* Config server */
req.ct_cmdrsp     = 0x0101; /* GIEL command */
req.ct_aiusize    = MAX_PAYLOAD_LEN / 4 -
         sizeof (struct ct_iu_preamble) / 4;
if ((status = HBA_SendCTPassThru(handle, &req, sizeof (req),
        rsp, MAX_PAYLOAD_LEN)) != HBA_STATUS_OK) {
    fprintf(stderr, "Unable to issue CT command on \\"%s\\""
        " for reason %d\
", adaptername, status);
} else {
    giel = (struct gs_ms_giel_rsp *)rsp;
    if (giel->ct_header.ct_cmdrsp != 0x8002) {
        fprintf(stderr, "CT command rejected on HBA "
            "\\"%s\\"\
", adaptername);
    } else {
        for (cntr = 0; cntr < giel->num_elems; cntr++) {
        memcpy(&wwn, giel->elem_list[cntr].elem_name, 8);
        printf(" Fabric element name: %016llx\
", wwn);
        }
    }
}

Attributes

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

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Interface Stability
Standard: FC-MI 1.92 (API version 1)
Standard: FC-HBA Version 4 (API version 2)
MT-Level
Safe

See Also

HBA_OpenAdapter(3HBAAPI), libhbaapi(3LIB), attributes(5)

T11 FC-MI Specification

Bugs

The HBA_SendCTPassThru() function does not take a portindex to define through which port of a multi-ported HBA to send the command. The behavior on multi-ported HBAs is vendor specific, and can result in the command always being sent on port 0 of the HBA. SNIA version 2 defines HBA_SendCTPassThruV2() which takes a Port WWN as an argument. This fixes the bug with multi-ported HBAs in HBA_SendCTPassThru().