vendorhbaapi.h revision fcf3ce441efd61da9bb2884968af01cb7c1452cc
/******************************************************************************
*
* Description
* vendorhbaapi.h - incombination with hbaapi.h, defines interface to
* vendor specific API
*
* License:
* The contents of this file are subject to the SNIA Public License
* Version 1.0 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
*
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
*
* The Original Code is SNIA HBA API general header file
*
* The Initial Developer of the Original Code is:
* Benjamin F. Kuo, Troika Networks, Inc. (benk@troikanetworks.com)
*
* Contributor(s):
* Tuan Lam, QLogic Corp. (t_lam@qlc.com)
* Dan Willie, Emulex Corp. (Dan.Willie@emulex.com)
* Dixon Hutchinson, Legato Systems, Inc. (dhutchin@legato.com)
* David Dillard, VERITAS Software Corp. (david.dillard@veritas.com)
*
*******************************************************************************
*
* Changes:
* 12/12/2001 Original revision, code split out of hbaapi.h
* (for other changes... see the CVS logs)
******************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif
#ifndef VENDOR_HBA_API_H
#define VENDOR_HBA_API_H
/* 4.2.12 HBA Library Function Table */
typedef HBA_UINT32 (* HBAGetVersionFunc)();
typedef HBA_STATUS (* HBALoadLibraryFunc)();
typedef HBA_STATUS (* HBAFreeLibraryFunc)();
typedef HBA_UINT32 (* HBAGetNumberOfAdaptersFunc)();
/*
* Open Adapter.... the vendor function is limmited to 16 bits,
* the wrapper library will mask off the upper 16.
* Maybe typedef should be:
* typedef HBA_UINT16 (* HBAOpenAdapterFunc)(char *);
*/
typedef HBA_HANDLE (* HBAOpenAdapterFunc)(char *);
typedef HBA_STATUS (* HBAOpenAdapterByWWNFunc)
(HBA_HANDLE *, HBA_WWN);
typedef void (* HBACloseAdapterFunc)(HBA_HANDLE);
typedef HBA_STATUS (* HBAGetAdapterAttributesFunc)
typedef HBA_STATUS (* HBAGetAdapterPortAttributesFunc)
typedef HBA_STATUS (* HBAGetPortStatisticsFunc)
typedef HBA_STATUS (* HBAGetDiscoveredPortAttributesFunc)
typedef HBA_STATUS (* HBAGetPortAttributesByWWNFunc)
typedef HBA_STATUS (* HBASendCTPassThruV2Func)
typedef void (* HBARefreshInformationFunc)(HBA_HANDLE);
typedef void (* HBARefreshAdapterConfigurationFunc) ();
typedef HBA_STATUS (* HBAGetFcpTargetMappingV2Func)
typedef HBA_STATUS (* HBAGetBindingCapabilityFunc)
typedef HBA_STATUS (* HBAGetBindingSupportFunc)
typedef HBA_STATUS (* HBASetBindingSupportFunc)
typedef HBA_STATUS (* HBASetPersistentBindingV2Func)
typedef HBA_STATUS (* HBAGetPersistentBindingV2Func)
typedef HBA_STATUS (* HBARemovePersistentBindingFunc)
typedef HBA_STATUS (* HBARemoveAllPersistentBindingsFunc)
(HBA_HANDLE, HBA_WWN);
typedef HBA_STATUS (* HBAGetEventBufferFunc)
typedef HBA_STATUS (* HBASetRNIDMgmtInfoFunc)
typedef HBA_STATUS (* HBAGetRNIDMgmtInfoFunc)
(HBA_HANDLE, HBA_MGMTINFO *);
typedef HBA_STATUS (* HBASendRNIDV2Func)
typedef HBA_STATUS (* HBAScsiInquiryV2Func)
typedef HBA_STATUS (* HBAScsiReportLUNsV2Func)
void *, HBA_UINT32 *);
typedef HBA_STATUS (* HBAScsiReadCapacityV2Func)
HBA_UINT8 *, void *, HBA_UINT32 *);
typedef HBA_UINT32 (* HBAGetVendorLibraryAttributesFunc)
typedef HBA_STATUS (* HBARegisterForAdapterAddEventsFunc)
typedef HBA_STATUS (* HBARegisterForAdapterEventsFunc)
typedef HBA_STATUS (* HBARegisterForAdapterPortEventsFunc)
typedef HBA_STATUS (* HBARegisterForAdapterPortStatEventsFunc)
typedef HBA_STATUS (* HBARegisterForTargetEventsFunc)
HBA_UINT32 );
typedef HBA_STATUS (* HBARegisterForLinkEventsFunc)
typedef HBA_STATUS (* HBASendRPLFunc)
typedef HBA_STATUS (* HBASendRPSFunc)
HBA_UINT32 *);
typedef HBA_STATUS (* HBASendSRLFunc)
typedef HBA_STATUS (* HBASendLIRRFunc)
typedef HBA_STATUS (* HBAGetFC4StatisticsFunc)
typedef HBA_STATUS (* HBAGetFCPStatisticsFunc)
typedef HBA_STATUS (* HBASendRLSFunc)
/* Deprecated, but still supported functions */
typedef HBA_STATUS (* HBAGetFcpTargetMappingFunc)
typedef HBA_STATUS (* HBAGetFcpPersistentBindingFunc)
(HBA_HANDLE, HBA_FCPBINDING *);
typedef HBA_STATUS (* HBASendCTPassThruFunc)
typedef HBA_STATUS (* HBASendScsiInquiryFunc)
HBA_UINT32, void *, HBA_UINT32);
typedef HBA_STATUS (* HBASendReportLUNsFunc)
typedef HBA_STATUS (* HBASendReadCapacityFunc)
typedef HBA_STATUS (* HBASendRNIDFunc)
/*
* This structure is needed since a Rev2 vendor library must still implement the
* Rev1 Register function in case it is called by a Rev1 wapper library. Still
* not STRICTLY neccesary, it provides clarity and keeps compilers happier
*/
typedef struct HBA_EntryPoints {
typedef struct HBA_EntryPointsV2 {
/* These first elements MUST MUST MUST match HBA_ENTRYPOINTS */
/* Next function depricated but still supported */
/* Next function depricated but still supported */
/* Next function depricated but still supported */
/* Next function depricated but still supported */
/* Next function depricated but still supported */
/* Next function depricated but still supported */
/* Next function depricated but still supported */
/* Rev 2 Functions */
/* Function Prototypes */
);
);
#endif /* VENDOR_HBA_API_H */
#ifdef __cplusplus
}
#endif