diff options
| author | John Forte <John.Forte@Sun.COM> | 2008-10-14 15:09:13 -0700 |
|---|---|---|
| committer | John Forte <John.Forte@Sun.COM> | 2008-10-14 15:09:13 -0700 |
| commit | fcf3ce441efd61da9bb2884968af01cb7c1452cc (patch) | |
| tree | 0e80d59ad41702571586195bf099ccc14222ce02 /usr/src/lib/hbaapi/common/vendorhbaapi.h | |
| parent | 247b82a1f1cb5ebd2d163bd9afdb1a3065611962 (diff) | |
| download | illumos-joyent-fcf3ce441efd61da9bb2884968af01cb7c1452cc.tar.gz | |
6745433 Merge NWS consolidation into OS/Net consolidation
Diffstat (limited to 'usr/src/lib/hbaapi/common/vendorhbaapi.h')
| -rw-r--r-- | usr/src/lib/hbaapi/common/vendorhbaapi.h | 284 |
1 files changed, 284 insertions, 0 deletions
diff --git a/usr/src/lib/hbaapi/common/vendorhbaapi.h b/usr/src/lib/hbaapi/common/vendorhbaapi.h new file mode 100644 index 0000000000..d71fa55c3c --- /dev/null +++ b/usr/src/lib/hbaapi/common/vendorhbaapi.h @@ -0,0 +1,284 @@ +/****************************************************************************** + * + * 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 + * + * /http://www.snia.org/English/Resources/Code/OpenSource.html + * + * 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)(); +typedef HBA_STATUS (* HBAGetAdapterNameFunc)(HBA_UINT32, char *); +/* + * 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) + (HBA_HANDLE, HBA_ADAPTERATTRIBUTES *); +typedef HBA_STATUS (* HBAGetAdapterPortAttributesFunc) + (HBA_HANDLE, HBA_UINT32, HBA_PORTATTRIBUTES *); +typedef HBA_STATUS (* HBAGetPortStatisticsFunc) + (HBA_HANDLE, HBA_UINT32, HBA_PORTSTATISTICS *); +typedef HBA_STATUS (* HBAGetDiscoveredPortAttributesFunc) + (HBA_HANDLE, HBA_UINT32, HBA_UINT32, HBA_PORTATTRIBUTES *); +typedef HBA_STATUS (* HBAGetPortAttributesByWWNFunc) + (HBA_HANDLE, HBA_WWN, HBA_PORTATTRIBUTES *); +typedef HBA_STATUS (* HBASendCTPassThruV2Func) + (HBA_HANDLE, HBA_WWN, void *, HBA_UINT32, void *, HBA_UINT32 *); +typedef void (* HBARefreshInformationFunc)(HBA_HANDLE); +typedef void (* HBARefreshAdapterConfigurationFunc) (); +typedef void (* HBAResetStatisticsFunc)(HBA_HANDLE, HBA_UINT32); +typedef HBA_STATUS (* HBAGetFcpTargetMappingV2Func) + (HBA_HANDLE, HBA_WWN, HBA_FCPTARGETMAPPINGV2 *); +typedef HBA_STATUS (* HBAGetBindingCapabilityFunc) + (HBA_HANDLE, HBA_WWN, HBA_BIND_CAPABILITY *); +typedef HBA_STATUS (* HBAGetBindingSupportFunc) + (HBA_HANDLE, HBA_WWN, HBA_BIND_CAPABILITY *); +typedef HBA_STATUS (* HBASetBindingSupportFunc) + (HBA_HANDLE, HBA_WWN, HBA_BIND_CAPABILITY); +typedef HBA_STATUS (* HBASetPersistentBindingV2Func) + (HBA_HANDLE, HBA_WWN, const HBA_FCPBINDING2 *); +typedef HBA_STATUS (* HBAGetPersistentBindingV2Func) + (HBA_HANDLE, HBA_WWN, HBA_FCPBINDING2 *); +typedef HBA_STATUS (* HBARemovePersistentBindingFunc) + (HBA_HANDLE, HBA_WWN, const HBA_FCPBINDING2 *); +typedef HBA_STATUS (* HBARemoveAllPersistentBindingsFunc) + (HBA_HANDLE, HBA_WWN); +typedef HBA_STATUS (* HBAGetEventBufferFunc) + (HBA_HANDLE, HBA_EVENTINFO *, HBA_UINT32 *); +typedef HBA_STATUS (* HBASetRNIDMgmtInfoFunc) + (HBA_HANDLE, HBA_MGMTINFO); +typedef HBA_STATUS (* HBAGetRNIDMgmtInfoFunc) + (HBA_HANDLE, HBA_MGMTINFO *); +typedef HBA_STATUS (* HBASendRNIDV2Func) + (HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_UINT32, HBA_UINT32, void *, HBA_UINT32*); +typedef HBA_STATUS (* HBAScsiInquiryV2Func) + (HBA_HANDLE,HBA_WWN,HBA_WWN, HBA_UINT64, HBA_UINT8, HBA_UINT8, + void *, HBA_UINT32 *, HBA_UINT8 *, void *, HBA_UINT32 *); +typedef HBA_STATUS (* HBAScsiReportLUNsV2Func) + (HBA_HANDLE, HBA_WWN, HBA_WWN, void *, HBA_UINT32 *, HBA_UINT8 *, + void *, HBA_UINT32 *); +typedef HBA_STATUS (* HBAScsiReadCapacityV2Func) + (HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_UINT64, void *, HBA_UINT32 *, + HBA_UINT8 *, void *, HBA_UINT32 *); +typedef HBA_UINT32 (* HBAGetVendorLibraryAttributesFunc) + (HBA_LIBRARYATTRIBUTES *); +typedef HBA_STATUS (* HBARemoveCallbackFunc) (HBA_CALLBACKHANDLE); +typedef HBA_STATUS (* HBARegisterForAdapterAddEventsFunc) + (void (*)(void *, HBA_WWN, HBA_UINT32), void *, HBA_CALLBACKHANDLE *); +typedef HBA_STATUS (* HBARegisterForAdapterEventsFunc) + (void (*)(void *, HBA_WWN, HBA_UINT32), void *, HBA_HANDLE, + HBA_CALLBACKHANDLE *); +typedef HBA_STATUS (* HBARegisterForAdapterPortEventsFunc) + (void (*)(void *, HBA_WWN, HBA_UINT32, HBA_UINT32), void *, HBA_HANDLE, + HBA_WWN, HBA_CALLBACKHANDLE *); +typedef HBA_STATUS (* HBARegisterForAdapterPortStatEventsFunc) + (void (*)(void *, HBA_WWN, HBA_UINT32), void *, HBA_HANDLE, HBA_WWN, + HBA_PORTSTATISTICS, HBA_UINT32, HBA_CALLBACKHANDLE *); +typedef HBA_STATUS (* HBARegisterForTargetEventsFunc) + (void (*)(void *, HBA_WWN, HBA_WWN, HBA_UINT32), void *, HBA_HANDLE, + HBA_WWN, HBA_WWN, HBA_CALLBACKHANDLE *, + HBA_UINT32 ); +typedef HBA_STATUS (* HBARegisterForLinkEventsFunc) + (void (*)(void *, HBA_WWN, HBA_UINT32, void *, HBA_UINT32), void *, void *, + HBA_UINT32, HBA_HANDLE, HBA_CALLBACKHANDLE *); +typedef HBA_STATUS (* HBASendRPLFunc) + (HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_UINT32, HBA_UINT32, void *, HBA_UINT32 *); +typedef HBA_STATUS (* HBASendRPSFunc) + (HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_UINT32, HBA_WWN, HBA_UINT32, void *, + HBA_UINT32 *); +typedef HBA_STATUS (* HBASendSRLFunc) + (HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_UINT32, void *, HBA_UINT32 *); +typedef HBA_STATUS (* HBASendLIRRFunc) + (HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_UINT8, HBA_UINT8, void *, HBA_UINT32 *); +typedef HBA_STATUS (* HBAGetFC4StatisticsFunc) + (HBA_HANDLE, HBA_WWN, HBA_UINT8, HBA_FC4STATISTICS *); +typedef HBA_STATUS (* HBAGetFCPStatisticsFunc) + (HBA_HANDLE, const HBA_SCSIID *, HBA_FC4STATISTICS *); +typedef HBA_STATUS (* HBASendRLSFunc) + (HBA_HANDLE, HBA_WWN, HBA_WWN, void *, HBA_UINT32 *); + + +/* Deprecated, but still supported functions */ +typedef HBA_STATUS (* HBAGetFcpTargetMappingFunc) + (HBA_HANDLE, HBA_FCPTARGETMAPPING *); +typedef HBA_STATUS (* HBAGetFcpPersistentBindingFunc) + (HBA_HANDLE, HBA_FCPBINDING *); +typedef HBA_STATUS (* HBASendCTPassThruFunc) + (HBA_HANDLE, void *, HBA_UINT32, void *, HBA_UINT32); +typedef HBA_STATUS (* HBASendScsiInquiryFunc) + (HBA_HANDLE, HBA_WWN,HBA_UINT64, HBA_UINT8, HBA_UINT32, void *, + HBA_UINT32, void *, HBA_UINT32); +typedef HBA_STATUS (* HBASendReportLUNsFunc) + (HBA_HANDLE, HBA_WWN, void *, HBA_UINT32, void *, HBA_UINT32); +typedef HBA_STATUS (* HBASendReadCapacityFunc) + (HBA_HANDLE, HBA_WWN, HBA_UINT64, void *, HBA_UINT32, void *, + HBA_UINT32); +typedef HBA_STATUS (* HBASendRNIDFunc) + (HBA_HANDLE, HBA_WWN, HBA_WWNTYPE, void *, HBA_UINT32 *); + +/* + * 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 { + HBAGetVersionFunc GetVersionHandler; + HBALoadLibraryFunc LoadLibraryHandler; + HBAFreeLibraryFunc FreeLibraryHandler; + HBAGetNumberOfAdaptersFunc GetNumberOfAdaptersHandler; + HBAGetAdapterNameFunc GetAdapterNameHandler; + HBAOpenAdapterFunc OpenAdapterHandler; + HBACloseAdapterFunc CloseAdapterHandler; + HBAGetAdapterAttributesFunc GetAdapterAttributesHandler; + HBAGetAdapterPortAttributesFunc GetAdapterPortAttributesHandler; + HBAGetPortStatisticsFunc GetPortStatisticsHandler; + HBAGetDiscoveredPortAttributesFunc GetDiscoveredPortAttributesHandler; + HBAGetPortAttributesByWWNFunc GetPortAttributesByWWNHandler; + HBASendCTPassThruFunc SendCTPassThruHandler; + HBARefreshInformationFunc RefreshInformationHandler; + HBAResetStatisticsFunc ResetStatisticsHandler; + HBAGetFcpTargetMappingFunc GetFcpTargetMappingHandler; + HBAGetFcpPersistentBindingFunc GetFcpPersistentBindingHandler; + HBAGetEventBufferFunc GetEventBufferHandler; + HBASetRNIDMgmtInfoFunc SetRNIDMgmtInfoHandler; + HBAGetRNIDMgmtInfoFunc GetRNIDMgmtInfoHandler; + HBASendRNIDFunc SendRNIDHandler; + HBASendScsiInquiryFunc ScsiInquiryHandler; + HBASendReportLUNsFunc ReportLUNsHandler; + HBASendReadCapacityFunc ReadCapacityHandler; +} HBA_ENTRYPOINTS, *PHBA_ENTRYPOINTS; + +typedef struct HBA_EntryPointsV2 { + /* These first elements MUST MUST MUST match HBA_ENTRYPOINTS */ + HBAGetVersionFunc GetVersionHandler; + HBALoadLibraryFunc LoadLibraryHandler; + HBAFreeLibraryFunc FreeLibraryHandler; + HBAGetNumberOfAdaptersFunc GetNumberOfAdaptersHandler; + HBAGetAdapterNameFunc GetAdapterNameHandler; + HBAOpenAdapterFunc OpenAdapterHandler; + HBACloseAdapterFunc CloseAdapterHandler; + HBAGetAdapterAttributesFunc GetAdapterAttributesHandler; + HBAGetAdapterPortAttributesFunc GetAdapterPortAttributesHandler; + HBAGetPortStatisticsFunc GetPortStatisticsHandler; + HBAGetDiscoveredPortAttributesFunc GetDiscoveredPortAttributesHandler; + HBAGetPortAttributesByWWNFunc GetPortAttributesByWWNHandler; + /* Next function depricated but still supported */ + HBASendCTPassThruFunc SendCTPassThruHandler; + HBARefreshInformationFunc RefreshInformationHandler; + HBAResetStatisticsFunc ResetStatisticsHandler; + /* Next function depricated but still supported */ + HBAGetFcpTargetMappingFunc GetFcpTargetMappingHandler; + /* Next function depricated but still supported */ + HBAGetFcpPersistentBindingFunc GetFcpPersistentBindingHandler; + HBAGetEventBufferFunc GetEventBufferHandler; + HBASetRNIDMgmtInfoFunc SetRNIDMgmtInfoHandler; + HBAGetRNIDMgmtInfoFunc GetRNIDMgmtInfoHandler; + /* Next function depricated but still supported */ + HBASendRNIDFunc SendRNIDHandler; + /* Next function depricated but still supported */ + HBASendScsiInquiryFunc ScsiInquiryHandler; + /* Next function depricated but still supported */ + HBASendReportLUNsFunc ReportLUNsHandler; + /* Next function depricated but still supported */ + HBASendReadCapacityFunc ReadCapacityHandler; + + /* Rev 2 Functions */ + HBAOpenAdapterByWWNFunc OpenAdapterByWWNHandler; + HBAGetFcpTargetMappingV2Func GetFcpTargetMappingV2Handler; + HBASendCTPassThruV2Func SendCTPassThruV2Handler; + HBARefreshAdapterConfigurationFunc RefreshAdapterConfigurationHandler; + HBAGetBindingCapabilityFunc GetBindingCapabilityHandler; + HBAGetBindingSupportFunc GetBindingSupportHandler; + HBASetBindingSupportFunc SetBindingSupportHandler; + HBASetPersistentBindingV2Func SetPersistentBindingV2Handler; + HBAGetPersistentBindingV2Func GetPersistentBindingV2Handler; + HBARemovePersistentBindingFunc RemovePersistentBindingHandler; + HBARemoveAllPersistentBindingsFunc RemoveAllPersistentBindingsHandler; + HBASendRNIDV2Func SendRNIDV2Handler; + HBAScsiInquiryV2Func ScsiInquiryV2Handler; + HBAScsiReportLUNsV2Func ScsiReportLUNsV2Handler; + HBAScsiReadCapacityV2Func ScsiReadCapacityV2Handler; + HBAGetVendorLibraryAttributesFunc GetVendorLibraryAttributesHandler; + HBARemoveCallbackFunc RemoveCallbackHandler; + HBARegisterForAdapterAddEventsFunc RegisterForAdapterAddEventsHandler; + HBARegisterForAdapterEventsFunc RegisterForAdapterEventsHandler; + HBARegisterForAdapterPortEventsFunc RegisterForAdapterPortEventsHandler; + HBARegisterForAdapterPortStatEventsFunc + RegisterForAdapterPortStatEventsHandler; + HBARegisterForTargetEventsFunc RegisterForTargetEventsHandler; + HBARegisterForLinkEventsFunc RegisterForLinkEventsHandler; + HBASendRPLFunc SendRPLHandler; + HBASendRPSFunc SendRPSHandler; + HBASendSRLFunc SendSRLHandler; + HBASendLIRRFunc SendLIRRHandler; + HBAGetFC4StatisticsFunc GetFC4StatisticsHandler; + HBAGetFCPStatisticsFunc GetFCPStatisticsHandler; + HBASendRLSFunc SendRLSHandler; +} HBA_ENTRYPOINTSV2, *PHBA_ENTRYPOINTSV2; + +typedef HBA_STATUS (* HBARegisterLibraryFunc)(HBA_ENTRYPOINTS *); +typedef HBA_STATUS (* HBARegisterLibraryV2Func)(HBA_ENTRYPOINTSV2 *); + +/* Function Prototypes */ +HBA_API HBA_STATUS HBA_RegisterLibrary( + HBA_ENTRYPOINTS *functionTable + ); + +HBA_API HBA_STATUS HBA_RegisterLibraryV2( + HBA_ENTRYPOINTSV2 *functionTable + ); + +#endif /* VENDOR_HBA_API_H */ + +#ifdef __cplusplus +} +#endif + + |
