1*fcf3ce44SJohn Forte /****************************************************************************** 2*fcf3ce44SJohn Forte * 3*fcf3ce44SJohn Forte * Description 4*fcf3ce44SJohn Forte * vendorhbaapi.h - incombination with hbaapi.h, defines interface to 5*fcf3ce44SJohn Forte * vendor specific API 6*fcf3ce44SJohn Forte * 7*fcf3ce44SJohn Forte * License: 8*fcf3ce44SJohn Forte * The contents of this file are subject to the SNIA Public License 9*fcf3ce44SJohn Forte * Version 1.0 (the "License"); you may not use this file except in 10*fcf3ce44SJohn Forte * compliance with the License. You may obtain a copy of the License at 11*fcf3ce44SJohn Forte * 12*fcf3ce44SJohn Forte * /http://www.snia.org/English/Resources/Code/OpenSource.html 13*fcf3ce44SJohn Forte * 14*fcf3ce44SJohn Forte * Software distributed under the License is distributed on an "AS IS" 15*fcf3ce44SJohn Forte * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See 16*fcf3ce44SJohn Forte * the License for the specific language governing rights and limitations 17*fcf3ce44SJohn Forte * under the License. 18*fcf3ce44SJohn Forte * 19*fcf3ce44SJohn Forte * The Original Code is SNIA HBA API general header file 20*fcf3ce44SJohn Forte * 21*fcf3ce44SJohn Forte * The Initial Developer of the Original Code is: 22*fcf3ce44SJohn Forte * Benjamin F. Kuo, Troika Networks, Inc. (benk@troikanetworks.com) 23*fcf3ce44SJohn Forte * 24*fcf3ce44SJohn Forte * Contributor(s): 25*fcf3ce44SJohn Forte * Tuan Lam, QLogic Corp. (t_lam@qlc.com) 26*fcf3ce44SJohn Forte * Dan Willie, Emulex Corp. (Dan.Willie@emulex.com) 27*fcf3ce44SJohn Forte * Dixon Hutchinson, Legato Systems, Inc. (dhutchin@legato.com) 28*fcf3ce44SJohn Forte * David Dillard, VERITAS Software Corp. (david.dillard@veritas.com) 29*fcf3ce44SJohn Forte * 30*fcf3ce44SJohn Forte ******************************************************************************* 31*fcf3ce44SJohn Forte * 32*fcf3ce44SJohn Forte * Changes: 33*fcf3ce44SJohn Forte * 12/12/2001 Original revision, code split out of hbaapi.h 34*fcf3ce44SJohn Forte * (for other changes... see the CVS logs) 35*fcf3ce44SJohn Forte ******************************************************************************/ 36*fcf3ce44SJohn Forte 37*fcf3ce44SJohn Forte #ifdef __cplusplus 38*fcf3ce44SJohn Forte extern "C" { 39*fcf3ce44SJohn Forte #endif 40*fcf3ce44SJohn Forte 41*fcf3ce44SJohn Forte 42*fcf3ce44SJohn Forte #ifndef VENDOR_HBA_API_H 43*fcf3ce44SJohn Forte #define VENDOR_HBA_API_H 44*fcf3ce44SJohn Forte 45*fcf3ce44SJohn Forte 46*fcf3ce44SJohn Forte /* 4.2.12 HBA Library Function Table */ 47*fcf3ce44SJohn Forte typedef HBA_UINT32 (* HBAGetVersionFunc)(); 48*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBALoadLibraryFunc)(); 49*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBAFreeLibraryFunc)(); 50*fcf3ce44SJohn Forte typedef HBA_UINT32 (* HBAGetNumberOfAdaptersFunc)(); 51*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBAGetAdapterNameFunc)(HBA_UINT32, char *); 52*fcf3ce44SJohn Forte /* 53*fcf3ce44SJohn Forte * Open Adapter.... the vendor function is limmited to 16 bits, 54*fcf3ce44SJohn Forte * the wrapper library will mask off the upper 16. 55*fcf3ce44SJohn Forte * Maybe typedef should be: 56*fcf3ce44SJohn Forte * typedef HBA_UINT16 (* HBAOpenAdapterFunc)(char *); 57*fcf3ce44SJohn Forte */ 58*fcf3ce44SJohn Forte typedef HBA_HANDLE (* HBAOpenAdapterFunc)(char *); 59*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBAOpenAdapterByWWNFunc) 60*fcf3ce44SJohn Forte (HBA_HANDLE *, HBA_WWN); 61*fcf3ce44SJohn Forte typedef void (* HBACloseAdapterFunc)(HBA_HANDLE); 62*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBAGetAdapterAttributesFunc) 63*fcf3ce44SJohn Forte (HBA_HANDLE, HBA_ADAPTERATTRIBUTES *); 64*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBAGetAdapterPortAttributesFunc) 65*fcf3ce44SJohn Forte (HBA_HANDLE, HBA_UINT32, HBA_PORTATTRIBUTES *); 66*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBAGetPortStatisticsFunc) 67*fcf3ce44SJohn Forte (HBA_HANDLE, HBA_UINT32, HBA_PORTSTATISTICS *); 68*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBAGetDiscoveredPortAttributesFunc) 69*fcf3ce44SJohn Forte (HBA_HANDLE, HBA_UINT32, HBA_UINT32, HBA_PORTATTRIBUTES *); 70*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBAGetPortAttributesByWWNFunc) 71*fcf3ce44SJohn Forte (HBA_HANDLE, HBA_WWN, HBA_PORTATTRIBUTES *); 72*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBASendCTPassThruV2Func) 73*fcf3ce44SJohn Forte (HBA_HANDLE, HBA_WWN, void *, HBA_UINT32, void *, HBA_UINT32 *); 74*fcf3ce44SJohn Forte typedef void (* HBARefreshInformationFunc)(HBA_HANDLE); 75*fcf3ce44SJohn Forte typedef void (* HBARefreshAdapterConfigurationFunc) (); 76*fcf3ce44SJohn Forte typedef void (* HBAResetStatisticsFunc)(HBA_HANDLE, HBA_UINT32); 77*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBAGetFcpTargetMappingV2Func) 78*fcf3ce44SJohn Forte (HBA_HANDLE, HBA_WWN, HBA_FCPTARGETMAPPINGV2 *); 79*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBAGetBindingCapabilityFunc) 80*fcf3ce44SJohn Forte (HBA_HANDLE, HBA_WWN, HBA_BIND_CAPABILITY *); 81*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBAGetBindingSupportFunc) 82*fcf3ce44SJohn Forte (HBA_HANDLE, HBA_WWN, HBA_BIND_CAPABILITY *); 83*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBASetBindingSupportFunc) 84*fcf3ce44SJohn Forte (HBA_HANDLE, HBA_WWN, HBA_BIND_CAPABILITY); 85*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBASetPersistentBindingV2Func) 86*fcf3ce44SJohn Forte (HBA_HANDLE, HBA_WWN, const HBA_FCPBINDING2 *); 87*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBAGetPersistentBindingV2Func) 88*fcf3ce44SJohn Forte (HBA_HANDLE, HBA_WWN, HBA_FCPBINDING2 *); 89*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBARemovePersistentBindingFunc) 90*fcf3ce44SJohn Forte (HBA_HANDLE, HBA_WWN, const HBA_FCPBINDING2 *); 91*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBARemoveAllPersistentBindingsFunc) 92*fcf3ce44SJohn Forte (HBA_HANDLE, HBA_WWN); 93*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBAGetEventBufferFunc) 94*fcf3ce44SJohn Forte (HBA_HANDLE, HBA_EVENTINFO *, HBA_UINT32 *); 95*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBASetRNIDMgmtInfoFunc) 96*fcf3ce44SJohn Forte (HBA_HANDLE, HBA_MGMTINFO); 97*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBAGetRNIDMgmtInfoFunc) 98*fcf3ce44SJohn Forte (HBA_HANDLE, HBA_MGMTINFO *); 99*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBASendRNIDV2Func) 100*fcf3ce44SJohn Forte (HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_UINT32, HBA_UINT32, void *, HBA_UINT32*); 101*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBAScsiInquiryV2Func) 102*fcf3ce44SJohn Forte (HBA_HANDLE,HBA_WWN,HBA_WWN, HBA_UINT64, HBA_UINT8, HBA_UINT8, 103*fcf3ce44SJohn Forte void *, HBA_UINT32 *, HBA_UINT8 *, void *, HBA_UINT32 *); 104*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBAScsiReportLUNsV2Func) 105*fcf3ce44SJohn Forte (HBA_HANDLE, HBA_WWN, HBA_WWN, void *, HBA_UINT32 *, HBA_UINT8 *, 106*fcf3ce44SJohn Forte void *, HBA_UINT32 *); 107*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBAScsiReadCapacityV2Func) 108*fcf3ce44SJohn Forte (HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_UINT64, void *, HBA_UINT32 *, 109*fcf3ce44SJohn Forte HBA_UINT8 *, void *, HBA_UINT32 *); 110*fcf3ce44SJohn Forte typedef HBA_UINT32 (* HBAGetVendorLibraryAttributesFunc) 111*fcf3ce44SJohn Forte (HBA_LIBRARYATTRIBUTES *); 112*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBARemoveCallbackFunc) (HBA_CALLBACKHANDLE); 113*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBARegisterForAdapterAddEventsFunc) 114*fcf3ce44SJohn Forte (void (*)(void *, HBA_WWN, HBA_UINT32), void *, HBA_CALLBACKHANDLE *); 115*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBARegisterForAdapterEventsFunc) 116*fcf3ce44SJohn Forte (void (*)(void *, HBA_WWN, HBA_UINT32), void *, HBA_HANDLE, 117*fcf3ce44SJohn Forte HBA_CALLBACKHANDLE *); 118*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBARegisterForAdapterPortEventsFunc) 119*fcf3ce44SJohn Forte (void (*)(void *, HBA_WWN, HBA_UINT32, HBA_UINT32), void *, HBA_HANDLE, 120*fcf3ce44SJohn Forte HBA_WWN, HBA_CALLBACKHANDLE *); 121*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBARegisterForAdapterPortStatEventsFunc) 122*fcf3ce44SJohn Forte (void (*)(void *, HBA_WWN, HBA_UINT32), void *, HBA_HANDLE, HBA_WWN, 123*fcf3ce44SJohn Forte HBA_PORTSTATISTICS, HBA_UINT32, HBA_CALLBACKHANDLE *); 124*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBARegisterForTargetEventsFunc) 125*fcf3ce44SJohn Forte (void (*)(void *, HBA_WWN, HBA_WWN, HBA_UINT32), void *, HBA_HANDLE, 126*fcf3ce44SJohn Forte HBA_WWN, HBA_WWN, HBA_CALLBACKHANDLE *, 127*fcf3ce44SJohn Forte HBA_UINT32 ); 128*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBARegisterForLinkEventsFunc) 129*fcf3ce44SJohn Forte (void (*)(void *, HBA_WWN, HBA_UINT32, void *, HBA_UINT32), void *, void *, 130*fcf3ce44SJohn Forte HBA_UINT32, HBA_HANDLE, HBA_CALLBACKHANDLE *); 131*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBASendRPLFunc) 132*fcf3ce44SJohn Forte (HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_UINT32, HBA_UINT32, void *, HBA_UINT32 *); 133*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBASendRPSFunc) 134*fcf3ce44SJohn Forte (HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_UINT32, HBA_WWN, HBA_UINT32, void *, 135*fcf3ce44SJohn Forte HBA_UINT32 *); 136*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBASendSRLFunc) 137*fcf3ce44SJohn Forte (HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_UINT32, void *, HBA_UINT32 *); 138*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBASendLIRRFunc) 139*fcf3ce44SJohn Forte (HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_UINT8, HBA_UINT8, void *, HBA_UINT32 *); 140*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBAGetFC4StatisticsFunc) 141*fcf3ce44SJohn Forte (HBA_HANDLE, HBA_WWN, HBA_UINT8, HBA_FC4STATISTICS *); 142*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBAGetFCPStatisticsFunc) 143*fcf3ce44SJohn Forte (HBA_HANDLE, const HBA_SCSIID *, HBA_FC4STATISTICS *); 144*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBASendRLSFunc) 145*fcf3ce44SJohn Forte (HBA_HANDLE, HBA_WWN, HBA_WWN, void *, HBA_UINT32 *); 146*fcf3ce44SJohn Forte 147*fcf3ce44SJohn Forte 148*fcf3ce44SJohn Forte /* Deprecated, but still supported functions */ 149*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBAGetFcpTargetMappingFunc) 150*fcf3ce44SJohn Forte (HBA_HANDLE, HBA_FCPTARGETMAPPING *); 151*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBAGetFcpPersistentBindingFunc) 152*fcf3ce44SJohn Forte (HBA_HANDLE, HBA_FCPBINDING *); 153*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBASendCTPassThruFunc) 154*fcf3ce44SJohn Forte (HBA_HANDLE, void *, HBA_UINT32, void *, HBA_UINT32); 155*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBASendScsiInquiryFunc) 156*fcf3ce44SJohn Forte (HBA_HANDLE, HBA_WWN,HBA_UINT64, HBA_UINT8, HBA_UINT32, void *, 157*fcf3ce44SJohn Forte HBA_UINT32, void *, HBA_UINT32); 158*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBASendReportLUNsFunc) 159*fcf3ce44SJohn Forte (HBA_HANDLE, HBA_WWN, void *, HBA_UINT32, void *, HBA_UINT32); 160*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBASendReadCapacityFunc) 161*fcf3ce44SJohn Forte (HBA_HANDLE, HBA_WWN, HBA_UINT64, void *, HBA_UINT32, void *, 162*fcf3ce44SJohn Forte HBA_UINT32); 163*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBASendRNIDFunc) 164*fcf3ce44SJohn Forte (HBA_HANDLE, HBA_WWN, HBA_WWNTYPE, void *, HBA_UINT32 *); 165*fcf3ce44SJohn Forte 166*fcf3ce44SJohn Forte /* 167*fcf3ce44SJohn Forte * This structure is needed since a Rev2 vendor library must still implement the 168*fcf3ce44SJohn Forte * Rev1 Register function in case it is called by a Rev1 wapper library. Still 169*fcf3ce44SJohn Forte * not STRICTLY neccesary, it provides clarity and keeps compilers happier 170*fcf3ce44SJohn Forte */ 171*fcf3ce44SJohn Forte typedef struct HBA_EntryPoints { 172*fcf3ce44SJohn Forte HBAGetVersionFunc GetVersionHandler; 173*fcf3ce44SJohn Forte HBALoadLibraryFunc LoadLibraryHandler; 174*fcf3ce44SJohn Forte HBAFreeLibraryFunc FreeLibraryHandler; 175*fcf3ce44SJohn Forte HBAGetNumberOfAdaptersFunc GetNumberOfAdaptersHandler; 176*fcf3ce44SJohn Forte HBAGetAdapterNameFunc GetAdapterNameHandler; 177*fcf3ce44SJohn Forte HBAOpenAdapterFunc OpenAdapterHandler; 178*fcf3ce44SJohn Forte HBACloseAdapterFunc CloseAdapterHandler; 179*fcf3ce44SJohn Forte HBAGetAdapterAttributesFunc GetAdapterAttributesHandler; 180*fcf3ce44SJohn Forte HBAGetAdapterPortAttributesFunc GetAdapterPortAttributesHandler; 181*fcf3ce44SJohn Forte HBAGetPortStatisticsFunc GetPortStatisticsHandler; 182*fcf3ce44SJohn Forte HBAGetDiscoveredPortAttributesFunc GetDiscoveredPortAttributesHandler; 183*fcf3ce44SJohn Forte HBAGetPortAttributesByWWNFunc GetPortAttributesByWWNHandler; 184*fcf3ce44SJohn Forte HBASendCTPassThruFunc SendCTPassThruHandler; 185*fcf3ce44SJohn Forte HBARefreshInformationFunc RefreshInformationHandler; 186*fcf3ce44SJohn Forte HBAResetStatisticsFunc ResetStatisticsHandler; 187*fcf3ce44SJohn Forte HBAGetFcpTargetMappingFunc GetFcpTargetMappingHandler; 188*fcf3ce44SJohn Forte HBAGetFcpPersistentBindingFunc GetFcpPersistentBindingHandler; 189*fcf3ce44SJohn Forte HBAGetEventBufferFunc GetEventBufferHandler; 190*fcf3ce44SJohn Forte HBASetRNIDMgmtInfoFunc SetRNIDMgmtInfoHandler; 191*fcf3ce44SJohn Forte HBAGetRNIDMgmtInfoFunc GetRNIDMgmtInfoHandler; 192*fcf3ce44SJohn Forte HBASendRNIDFunc SendRNIDHandler; 193*fcf3ce44SJohn Forte HBASendScsiInquiryFunc ScsiInquiryHandler; 194*fcf3ce44SJohn Forte HBASendReportLUNsFunc ReportLUNsHandler; 195*fcf3ce44SJohn Forte HBASendReadCapacityFunc ReadCapacityHandler; 196*fcf3ce44SJohn Forte } HBA_ENTRYPOINTS, *PHBA_ENTRYPOINTS; 197*fcf3ce44SJohn Forte 198*fcf3ce44SJohn Forte typedef struct HBA_EntryPointsV2 { 199*fcf3ce44SJohn Forte /* These first elements MUST MUST MUST match HBA_ENTRYPOINTS */ 200*fcf3ce44SJohn Forte HBAGetVersionFunc GetVersionHandler; 201*fcf3ce44SJohn Forte HBALoadLibraryFunc LoadLibraryHandler; 202*fcf3ce44SJohn Forte HBAFreeLibraryFunc FreeLibraryHandler; 203*fcf3ce44SJohn Forte HBAGetNumberOfAdaptersFunc GetNumberOfAdaptersHandler; 204*fcf3ce44SJohn Forte HBAGetAdapterNameFunc GetAdapterNameHandler; 205*fcf3ce44SJohn Forte HBAOpenAdapterFunc OpenAdapterHandler; 206*fcf3ce44SJohn Forte HBACloseAdapterFunc CloseAdapterHandler; 207*fcf3ce44SJohn Forte HBAGetAdapterAttributesFunc GetAdapterAttributesHandler; 208*fcf3ce44SJohn Forte HBAGetAdapterPortAttributesFunc GetAdapterPortAttributesHandler; 209*fcf3ce44SJohn Forte HBAGetPortStatisticsFunc GetPortStatisticsHandler; 210*fcf3ce44SJohn Forte HBAGetDiscoveredPortAttributesFunc GetDiscoveredPortAttributesHandler; 211*fcf3ce44SJohn Forte HBAGetPortAttributesByWWNFunc GetPortAttributesByWWNHandler; 212*fcf3ce44SJohn Forte /* Next function depricated but still supported */ 213*fcf3ce44SJohn Forte HBASendCTPassThruFunc SendCTPassThruHandler; 214*fcf3ce44SJohn Forte HBARefreshInformationFunc RefreshInformationHandler; 215*fcf3ce44SJohn Forte HBAResetStatisticsFunc ResetStatisticsHandler; 216*fcf3ce44SJohn Forte /* Next function depricated but still supported */ 217*fcf3ce44SJohn Forte HBAGetFcpTargetMappingFunc GetFcpTargetMappingHandler; 218*fcf3ce44SJohn Forte /* Next function depricated but still supported */ 219*fcf3ce44SJohn Forte HBAGetFcpPersistentBindingFunc GetFcpPersistentBindingHandler; 220*fcf3ce44SJohn Forte HBAGetEventBufferFunc GetEventBufferHandler; 221*fcf3ce44SJohn Forte HBASetRNIDMgmtInfoFunc SetRNIDMgmtInfoHandler; 222*fcf3ce44SJohn Forte HBAGetRNIDMgmtInfoFunc GetRNIDMgmtInfoHandler; 223*fcf3ce44SJohn Forte /* Next function depricated but still supported */ 224*fcf3ce44SJohn Forte HBASendRNIDFunc SendRNIDHandler; 225*fcf3ce44SJohn Forte /* Next function depricated but still supported */ 226*fcf3ce44SJohn Forte HBASendScsiInquiryFunc ScsiInquiryHandler; 227*fcf3ce44SJohn Forte /* Next function depricated but still supported */ 228*fcf3ce44SJohn Forte HBASendReportLUNsFunc ReportLUNsHandler; 229*fcf3ce44SJohn Forte /* Next function depricated but still supported */ 230*fcf3ce44SJohn Forte HBASendReadCapacityFunc ReadCapacityHandler; 231*fcf3ce44SJohn Forte 232*fcf3ce44SJohn Forte /* Rev 2 Functions */ 233*fcf3ce44SJohn Forte HBAOpenAdapterByWWNFunc OpenAdapterByWWNHandler; 234*fcf3ce44SJohn Forte HBAGetFcpTargetMappingV2Func GetFcpTargetMappingV2Handler; 235*fcf3ce44SJohn Forte HBASendCTPassThruV2Func SendCTPassThruV2Handler; 236*fcf3ce44SJohn Forte HBARefreshAdapterConfigurationFunc RefreshAdapterConfigurationHandler; 237*fcf3ce44SJohn Forte HBAGetBindingCapabilityFunc GetBindingCapabilityHandler; 238*fcf3ce44SJohn Forte HBAGetBindingSupportFunc GetBindingSupportHandler; 239*fcf3ce44SJohn Forte HBASetBindingSupportFunc SetBindingSupportHandler; 240*fcf3ce44SJohn Forte HBASetPersistentBindingV2Func SetPersistentBindingV2Handler; 241*fcf3ce44SJohn Forte HBAGetPersistentBindingV2Func GetPersistentBindingV2Handler; 242*fcf3ce44SJohn Forte HBARemovePersistentBindingFunc RemovePersistentBindingHandler; 243*fcf3ce44SJohn Forte HBARemoveAllPersistentBindingsFunc RemoveAllPersistentBindingsHandler; 244*fcf3ce44SJohn Forte HBASendRNIDV2Func SendRNIDV2Handler; 245*fcf3ce44SJohn Forte HBAScsiInquiryV2Func ScsiInquiryV2Handler; 246*fcf3ce44SJohn Forte HBAScsiReportLUNsV2Func ScsiReportLUNsV2Handler; 247*fcf3ce44SJohn Forte HBAScsiReadCapacityV2Func ScsiReadCapacityV2Handler; 248*fcf3ce44SJohn Forte HBAGetVendorLibraryAttributesFunc GetVendorLibraryAttributesHandler; 249*fcf3ce44SJohn Forte HBARemoveCallbackFunc RemoveCallbackHandler; 250*fcf3ce44SJohn Forte HBARegisterForAdapterAddEventsFunc RegisterForAdapterAddEventsHandler; 251*fcf3ce44SJohn Forte HBARegisterForAdapterEventsFunc RegisterForAdapterEventsHandler; 252*fcf3ce44SJohn Forte HBARegisterForAdapterPortEventsFunc RegisterForAdapterPortEventsHandler; 253*fcf3ce44SJohn Forte HBARegisterForAdapterPortStatEventsFunc 254*fcf3ce44SJohn Forte RegisterForAdapterPortStatEventsHandler; 255*fcf3ce44SJohn Forte HBARegisterForTargetEventsFunc RegisterForTargetEventsHandler; 256*fcf3ce44SJohn Forte HBARegisterForLinkEventsFunc RegisterForLinkEventsHandler; 257*fcf3ce44SJohn Forte HBASendRPLFunc SendRPLHandler; 258*fcf3ce44SJohn Forte HBASendRPSFunc SendRPSHandler; 259*fcf3ce44SJohn Forte HBASendSRLFunc SendSRLHandler; 260*fcf3ce44SJohn Forte HBASendLIRRFunc SendLIRRHandler; 261*fcf3ce44SJohn Forte HBAGetFC4StatisticsFunc GetFC4StatisticsHandler; 262*fcf3ce44SJohn Forte HBAGetFCPStatisticsFunc GetFCPStatisticsHandler; 263*fcf3ce44SJohn Forte HBASendRLSFunc SendRLSHandler; 264*fcf3ce44SJohn Forte } HBA_ENTRYPOINTSV2, *PHBA_ENTRYPOINTSV2; 265*fcf3ce44SJohn Forte 266*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBARegisterLibraryFunc)(HBA_ENTRYPOINTS *); 267*fcf3ce44SJohn Forte typedef HBA_STATUS (* HBARegisterLibraryV2Func)(HBA_ENTRYPOINTSV2 *); 268*fcf3ce44SJohn Forte 269*fcf3ce44SJohn Forte /* Function Prototypes */ 270*fcf3ce44SJohn Forte HBA_API HBA_STATUS HBA_RegisterLibrary( 271*fcf3ce44SJohn Forte HBA_ENTRYPOINTS *functionTable 272*fcf3ce44SJohn Forte ); 273*fcf3ce44SJohn Forte 274*fcf3ce44SJohn Forte HBA_API HBA_STATUS HBA_RegisterLibraryV2( 275*fcf3ce44SJohn Forte HBA_ENTRYPOINTSV2 *functionTable 276*fcf3ce44SJohn Forte ); 277*fcf3ce44SJohn Forte 278*fcf3ce44SJohn Forte #endif /* VENDOR_HBA_API_H */ 279*fcf3ce44SJohn Forte 280*fcf3ce44SJohn Forte #ifdef __cplusplus 281*fcf3ce44SJohn Forte } 282*fcf3ce44SJohn Forte #endif 283*fcf3ce44SJohn Forte 284*fcf3ce44SJohn Forte 285