1*10652SHyon.Kim@Sun.COM /* 2*10652SHyon.Kim@Sun.COM * **************************************************************************** 3*10652SHyon.Kim@Sun.COM * 4*10652SHyon.Kim@Sun.COM * Description 5*10652SHyon.Kim@Sun.COM * vendorhbaapi.h - incombination with hbaapi.h, defines interface to 6*10652SHyon.Kim@Sun.COM * vendor specific API 7*10652SHyon.Kim@Sun.COM * 8*10652SHyon.Kim@Sun.COM * License: 9*10652SHyon.Kim@Sun.COM * The contents of this file are subject to the SNIA Public License 10*10652SHyon.Kim@Sun.COM * Version 1.0 (the "License"); you may not use this file except in 11*10652SHyon.Kim@Sun.COM * compliance with the License. You may obtain a copy of the License at 12*10652SHyon.Kim@Sun.COM * 13*10652SHyon.Kim@Sun.COM * /http://www.snia.org/English/Resources/Code/OpenSource.html 14*10652SHyon.Kim@Sun.COM * 15*10652SHyon.Kim@Sun.COM * Software distributed under the License is distributed on an "AS IS" 16*10652SHyon.Kim@Sun.COM * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See 17*10652SHyon.Kim@Sun.COM * the License for the specific language governing rights and limitations 18*10652SHyon.Kim@Sun.COM * under the License. 19*10652SHyon.Kim@Sun.COM * 20*10652SHyon.Kim@Sun.COM * The Original Code is SNIA HBA API general header file 21*10652SHyon.Kim@Sun.COM * 22*10652SHyon.Kim@Sun.COM * The Initial Developer of the Original Code is: 23*10652SHyon.Kim@Sun.COM * Benjamin F. Kuo, Troika Networks, Inc. (benk@troikanetworks.com) 24*10652SHyon.Kim@Sun.COM * 25*10652SHyon.Kim@Sun.COM * Contributor(s): 26*10652SHyon.Kim@Sun.COM * Tuan Lam, QLogic Corp. (t_lam@qlc.com) 27*10652SHyon.Kim@Sun.COM * Dan Willie, Emulex Corp. (Dan.Willie@emulex.com) 28*10652SHyon.Kim@Sun.COM * Dixon Hutchinson, Legato Systems, Inc. (dhutchin@legato.com) 29*10652SHyon.Kim@Sun.COM * David Dillard, VERITAS Software Corp. (david.dillard@veritas.com) 30*10652SHyon.Kim@Sun.COM * 31*10652SHyon.Kim@Sun.COM * **************************************************************************** 32*10652SHyon.Kim@Sun.COM * 33*10652SHyon.Kim@Sun.COM * Changes: 34*10652SHyon.Kim@Sun.COM * 12/12/2001 Original revision, code split out of hbaapi.h 35*10652SHyon.Kim@Sun.COM * (for other changes... see the CVS logs) 36*10652SHyon.Kim@Sun.COM * **************************************************************************** 37*10652SHyon.Kim@Sun.COM */ 38*10652SHyon.Kim@Sun.COM /* 39*10652SHyon.Kim@Sun.COM * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 40*10652SHyon.Kim@Sun.COM * Use is subject to license terms. 41*10652SHyon.Kim@Sun.COM */ 42*10652SHyon.Kim@Sun.COM 43*10652SHyon.Kim@Sun.COM #ifndef _VENDORSMHBAAPI_H_ 44*10652SHyon.Kim@Sun.COM #define _VENDORSMHBAAPI_H_ 45*10652SHyon.Kim@Sun.COM 46*10652SHyon.Kim@Sun.COM #ifdef __cplusplus 47*10652SHyon.Kim@Sun.COM extern "C" { 48*10652SHyon.Kim@Sun.COM #endif 49*10652SHyon.Kim@Sun.COM 50*10652SHyon.Kim@Sun.COM #include <vendorhbaapi.h> 51*10652SHyon.Kim@Sun.COM 52*10652SHyon.Kim@Sun.COM /* SM-HBA-2 6.9.2 Function Prototypes */ 53*10652SHyon.Kim@Sun.COM typedef HBA_UINT32 (* SMHBAGetVersionFunc)(); 54*10652SHyon.Kim@Sun.COM typedef HBA_UINT32 (* SMHBAGetWrapperLibraryAttributesFunc) 55*10652SHyon.Kim@Sun.COM (HBA_UINT32, SMHBA_LIBRARYATTRIBUTES *); 56*10652SHyon.Kim@Sun.COM typedef HBA_UINT32 (* SMHBAGetVendorLibraryAttributesFunc) 57*10652SHyon.Kim@Sun.COM (SMHBA_LIBRARYATTRIBUTES *); 58*10652SHyon.Kim@Sun.COM typedef HBA_STATUS (* SMHBAGetAdapterAttributesFunc) 59*10652SHyon.Kim@Sun.COM (HBA_HANDLE, SMHBA_ADAPTERATTRIBUTES *); 60*10652SHyon.Kim@Sun.COM typedef HBA_STATUS (* SMHBAGetNumberOfPortsFunc) 61*10652SHyon.Kim@Sun.COM (HBA_HANDLE, HBA_UINT32 *); 62*10652SHyon.Kim@Sun.COM typedef HBA_STATUS (* SMHBAGetPortTypeFunc) 63*10652SHyon.Kim@Sun.COM (HBA_HANDLE, HBA_UINT32, HBA_PORTTYPE *); 64*10652SHyon.Kim@Sun.COM typedef HBA_STATUS (* SMHBAGetAdapterPortAttributesFunc) 65*10652SHyon.Kim@Sun.COM (HBA_HANDLE, HBA_UINT32, SMHBA_PORTATTRIBUTES *); 66*10652SHyon.Kim@Sun.COM typedef HBA_STATUS (* SMHBAGetDiscoveredPortAttributesFunc) 67*10652SHyon.Kim@Sun.COM (HBA_HANDLE, HBA_UINT32, HBA_UINT32, SMHBA_PORTATTRIBUTES *); 68*10652SHyon.Kim@Sun.COM typedef HBA_STATUS (* SMHBAGetPortAttributesByWWNFunc) 69*10652SHyon.Kim@Sun.COM (HBA_HANDLE, HBA_WWN, HBA_WWN, SMHBA_PORTATTRIBUTES *); 70*10652SHyon.Kim@Sun.COM typedef HBA_STATUS (* SMHBAGetFCPhyAttributesFunc) 71*10652SHyon.Kim@Sun.COM (HBA_HANDLE, HBA_UINT32, HBA_UINT32, SMHBA_FC_PHY *); 72*10652SHyon.Kim@Sun.COM typedef HBA_STATUS (* SMHBAGetSASPhyAttributesFunc) 73*10652SHyon.Kim@Sun.COM (HBA_HANDLE, HBA_UINT32, HBA_UINT32, SMHBA_SAS_PHY *); 74*10652SHyon.Kim@Sun.COM typedef HBA_STATUS (* SMHBAGetProtocolStatisticsFunc) 75*10652SHyon.Kim@Sun.COM (HBA_HANDLE, HBA_UINT32, HBA_UINT32, SMHBA_PROTOCOLSTATISTICS *); 76*10652SHyon.Kim@Sun.COM typedef HBA_STATUS (* SMHBAGetPhyStatisticsFunc) 77*10652SHyon.Kim@Sun.COM (HBA_HANDLE, HBA_UINT32, HBA_UINT32, SMHBA_PHYSTATISTICS *); 78*10652SHyon.Kim@Sun.COM typedef HBA_STATUS (* SMHBASendTESTFunc) 79*10652SHyon.Kim@Sun.COM (HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_UINT32, void *, HBA_UINT32); 80*10652SHyon.Kim@Sun.COM typedef HBA_STATUS (* SMHBASendECHOFunc) 81*10652SHyon.Kim@Sun.COM (HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_UINT32, void *, HBA_UINT32, 82*10652SHyon.Kim@Sun.COM void *, HBA_UINT32 *); 83*10652SHyon.Kim@Sun.COM typedef HBA_STATUS (* SMHBASendSMPPassThruFunc) 84*10652SHyon.Kim@Sun.COM (HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_WWN, void *, HBA_UINT32, void *, 85*10652SHyon.Kim@Sun.COM HBA_UINT32 *); 86*10652SHyon.Kim@Sun.COM typedef HBA_STATUS (* SMHBAGetBindingCapabilityFunc) 87*10652SHyon.Kim@Sun.COM (HBA_HANDLE, HBA_WWN, HBA_WWN, SMHBA_BIND_CAPABILITY *); 88*10652SHyon.Kim@Sun.COM typedef HBA_STATUS (* SMHBAGetBindingSupportFunc) 89*10652SHyon.Kim@Sun.COM (HBA_HANDLE, HBA_WWN, HBA_WWN, SMHBA_BIND_CAPABILITY *); 90*10652SHyon.Kim@Sun.COM typedef HBA_STATUS (* SMHBASetBindingSupportFunc) 91*10652SHyon.Kim@Sun.COM (HBA_HANDLE, HBA_WWN, HBA_WWN, SMHBA_BIND_CAPABILITY); 92*10652SHyon.Kim@Sun.COM typedef HBA_STATUS (* SMHBAGetTargetMappingFunc) 93*10652SHyon.Kim@Sun.COM (HBA_HANDLE, HBA_WWN, HBA_WWN, SMHBA_TARGETMAPPING *); 94*10652SHyon.Kim@Sun.COM typedef HBA_STATUS (* SMHBAGetPersistentBindingFunc) 95*10652SHyon.Kim@Sun.COM (HBA_HANDLE, HBA_WWN, HBA_WWN, SMHBA_BINDING *); 96*10652SHyon.Kim@Sun.COM typedef HBA_STATUS (* SMHBASetPersistentBindingFunc) 97*10652SHyon.Kim@Sun.COM (HBA_HANDLE, HBA_WWN, HBA_WWN, const SMHBA_BINDING *); 98*10652SHyon.Kim@Sun.COM typedef HBA_STATUS (* SMHBARemovePersistentBindingFunc) 99*10652SHyon.Kim@Sun.COM (HBA_HANDLE, HBA_WWN, HBA_WWN, const SMHBA_BINDING *); 100*10652SHyon.Kim@Sun.COM typedef HBA_STATUS (* SMHBARemoveAllPersistentBindingsFunc) 101*10652SHyon.Kim@Sun.COM (HBA_HANDLE, HBA_WWN, HBA_WWN); 102*10652SHyon.Kim@Sun.COM typedef HBA_STATUS (* SMHBAGetLUNStatisticsFunc) 103*10652SHyon.Kim@Sun.COM (HBA_HANDLE, const HBA_SCSIID *, SMHBA_PROTOCOLSTATISTICS *); 104*10652SHyon.Kim@Sun.COM typedef HBA_STATUS (* SMHBARegisterForAdapterAddEventsFunc) 105*10652SHyon.Kim@Sun.COM (void (*)(void *, HBA_WWN, HBA_UINT32), void *, HBA_CALLBACKHANDLE *); 106*10652SHyon.Kim@Sun.COM typedef HBA_STATUS (* SMHBARegisterForAdapterEventsFunc) 107*10652SHyon.Kim@Sun.COM (void (*)(void *, HBA_WWN, HBA_UINT32), 108*10652SHyon.Kim@Sun.COM void *, HBA_HANDLE, HBA_CALLBACKHANDLE *); 109*10652SHyon.Kim@Sun.COM typedef HBA_STATUS (* SMHBARegisterForAdapterPortEventsFunc) 110*10652SHyon.Kim@Sun.COM (void (*)(void *, HBA_WWN, HBA_UINT32, HBA_UINT32), 111*10652SHyon.Kim@Sun.COM void *, HBA_HANDLE, HBA_WWN, HBA_UINT32, HBA_CALLBACKHANDLE *); 112*10652SHyon.Kim@Sun.COM typedef HBA_STATUS (* SMHBARegisterForAdapterPortStatEventsFunc) 113*10652SHyon.Kim@Sun.COM (void (*)(void *, HBA_WWN, HBA_UINT32, HBA_UINT32), 114*10652SHyon.Kim@Sun.COM void *, HBA_HANDLE, HBA_WWN, HBA_UINT32, SMHBA_PROTOCOLSTATISTICS, 115*10652SHyon.Kim@Sun.COM HBA_UINT32, HBA_CALLBACKHANDLE *); 116*10652SHyon.Kim@Sun.COM typedef HBA_STATUS (* SMHBARegisterForAdapterPhyStatEventsFunc) 117*10652SHyon.Kim@Sun.COM (void (*)(void *, HBA_WWN, HBA_UINT32, HBA_UINT32), 118*10652SHyon.Kim@Sun.COM void *, HBA_HANDLE, HBA_WWN, HBA_UINT32, SMHBA_PHYSTATISTICS, 119*10652SHyon.Kim@Sun.COM HBA_UINT32, HBA_CALLBACKHANDLE *); 120*10652SHyon.Kim@Sun.COM typedef HBA_STATUS (* SMHBARegisterForTargetEventsFunc) 121*10652SHyon.Kim@Sun.COM (void (*)(void *, HBA_WWN, HBA_WWN, HBA_WWN, HBA_UINT32), 122*10652SHyon.Kim@Sun.COM void *, HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_WWN, 123*10652SHyon.Kim@Sun.COM HBA_CALLBACKHANDLE *, HBA_UINT32); 124*10652SHyon.Kim@Sun.COM typedef HBA_STATUS (* SMHBAScsiInquiryFunc) 125*10652SHyon.Kim@Sun.COM (HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_WWN, SMHBA_SCSILUN, HBA_UINT8, 126*10652SHyon.Kim@Sun.COM HBA_UINT8, void *, HBA_UINT32 *, HBA_UINT8 *, void *, HBA_UINT32 *); 127*10652SHyon.Kim@Sun.COM typedef HBA_STATUS (* SMHBAScsiReportLUNsFunc) 128*10652SHyon.Kim@Sun.COM (HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_WWN, void *, HBA_UINT32 *, 129*10652SHyon.Kim@Sun.COM HBA_UINT8 *, void *, HBA_UINT32 *); 130*10652SHyon.Kim@Sun.COM typedef HBA_STATUS (* SMHBAScsiReadCapacityFunc) 131*10652SHyon.Kim@Sun.COM (HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_WWN, SMHBA_SCSILUN, void *, 132*10652SHyon.Kim@Sun.COM HBA_UINT32 *, HBA_UINT8 *, void *, HBA_UINT32 *); 133*10652SHyon.Kim@Sun.COM 134*10652SHyon.Kim@Sun.COM /* SM-HBA-2 6.9.3 Entry Point Data Declarations */ 135*10652SHyon.Kim@Sun.COM typedef struct SMHBA_EntryPoints { 136*10652SHyon.Kim@Sun.COM SMHBAGetVersionFunc GetVersionHandler; 137*10652SHyon.Kim@Sun.COM HBALoadLibraryFunc LoadLibraryHandler; 138*10652SHyon.Kim@Sun.COM HBAFreeLibraryFunc FreeLibraryHandler; 139*10652SHyon.Kim@Sun.COM HBAGetNumberOfAdaptersFunc GetNumberOfAdaptersHandler; 140*10652SHyon.Kim@Sun.COM HBARefreshInformationFunc RefreshInformationHandler; 141*10652SHyon.Kim@Sun.COM SMHBAGetVendorLibraryAttributesFunc 142*10652SHyon.Kim@Sun.COM GetVendorLibraryAttributesHandler; 143*10652SHyon.Kim@Sun.COM HBAGetAdapterNameFunc GetAdapterNameHandler; 144*10652SHyon.Kim@Sun.COM HBAOpenAdapterFunc OpenAdapterHandler; 145*10652SHyon.Kim@Sun.COM HBACloseAdapterFunc CloseAdapterHandler; 146*10652SHyon.Kim@Sun.COM SMHBAGetAdapterAttributesFunc GetAdapterAttributesHandler; 147*10652SHyon.Kim@Sun.COM SMHBAGetNumberOfPortsFunc GetNumberOfPortsHandler; 148*10652SHyon.Kim@Sun.COM SMHBAGetPortTypeFunc GetPortTypeHandler; 149*10652SHyon.Kim@Sun.COM SMHBAGetAdapterPortAttributesFunc 150*10652SHyon.Kim@Sun.COM GetAdapterPortAttributesHandler; 151*10652SHyon.Kim@Sun.COM SMHBAGetDiscoveredPortAttributesFunc 152*10652SHyon.Kim@Sun.COM GetDiscoveredPortAttributesHandler; 153*10652SHyon.Kim@Sun.COM SMHBAGetPortAttributesByWWNFunc GetPortAttributesByWWNHandler; 154*10652SHyon.Kim@Sun.COM SMHBAGetFCPhyAttributesFunc GetFCPhyAttributesHandler; 155*10652SHyon.Kim@Sun.COM SMHBAGetSASPhyAttributesFunc GetSASPhyAttributesHandler; 156*10652SHyon.Kim@Sun.COM SMHBAGetProtocolStatisticsFunc GetProtocolStatisticsHandler; 157*10652SHyon.Kim@Sun.COM SMHBAGetPhyStatisticsFunc GetPhyStatisticsHandler; 158*10652SHyon.Kim@Sun.COM HBASendCTPassThruV2Func SendCTPassThruV2Handler; 159*10652SHyon.Kim@Sun.COM HBASetRNIDMgmtInfoFunc SetRNIDMgmtInfoHandler; 160*10652SHyon.Kim@Sun.COM HBAGetRNIDMgmtInfoFunc GetRNIDMgmtInfoHandler; 161*10652SHyon.Kim@Sun.COM HBASendRNIDV2Func SendRNIDV2Handler; 162*10652SHyon.Kim@Sun.COM HBASendRPLFunc SendRPLHandler; 163*10652SHyon.Kim@Sun.COM HBASendRPSFunc SendRPSHandler; 164*10652SHyon.Kim@Sun.COM HBASendSRLFunc SendSRLHandler; 165*10652SHyon.Kim@Sun.COM HBASendLIRRFunc SendLIRRHandler; 166*10652SHyon.Kim@Sun.COM HBASendRLSFunc SendRLSHandler; 167*10652SHyon.Kim@Sun.COM SMHBASendTESTFunc SendTESTHandler; 168*10652SHyon.Kim@Sun.COM SMHBASendECHOFunc SendECHOHandler; 169*10652SHyon.Kim@Sun.COM SMHBASendSMPPassThruFunc SendSMPPassThruHandler; 170*10652SHyon.Kim@Sun.COM SMHBAGetBindingCapabilityFunc GetBindingCapabilityHandler; 171*10652SHyon.Kim@Sun.COM SMHBAGetBindingSupportFunc GetBindingSupportHandler; 172*10652SHyon.Kim@Sun.COM SMHBASetBindingSupportFunc SetBindingSupportHandler; 173*10652SHyon.Kim@Sun.COM SMHBAGetTargetMappingFunc GetTargetMappingHandler; 174*10652SHyon.Kim@Sun.COM SMHBAGetPersistentBindingFunc GetPersistentBindingHandler; 175*10652SHyon.Kim@Sun.COM SMHBASetPersistentBindingFunc SetPersistentBindingHandler; 176*10652SHyon.Kim@Sun.COM SMHBARemovePersistentBindingFunc RemovePersistentBindingHandler; 177*10652SHyon.Kim@Sun.COM SMHBARemoveAllPersistentBindingsFunc 178*10652SHyon.Kim@Sun.COM RemoveAllPersistentBindingsHandler; 179*10652SHyon.Kim@Sun.COM SMHBAGetLUNStatisticsFunc GetLUNStatisticsHandler; 180*10652SHyon.Kim@Sun.COM SMHBAScsiInquiryFunc ScsiInquiryHandler; 181*10652SHyon.Kim@Sun.COM SMHBAScsiReportLUNsFunc ScsiReportLUNsHandler; 182*10652SHyon.Kim@Sun.COM SMHBAScsiReadCapacityFunc ScsiReadCapacityHandler; 183*10652SHyon.Kim@Sun.COM SMHBARegisterForAdapterAddEventsFunc 184*10652SHyon.Kim@Sun.COM RegisterForAdapterAddEventsHandler; 185*10652SHyon.Kim@Sun.COM SMHBARegisterForAdapterEventsFunc RegisterForAdapterEventsHandler; 186*10652SHyon.Kim@Sun.COM SMHBARegisterForAdapterPortEventsFunc 187*10652SHyon.Kim@Sun.COM RegisterForAdapterPortEventsHandler; 188*10652SHyon.Kim@Sun.COM SMHBARegisterForAdapterPortStatEventsFunc 189*10652SHyon.Kim@Sun.COM RegisterForAdapterPortStatEventsHandler; 190*10652SHyon.Kim@Sun.COM SMHBARegisterForAdapterPhyStatEventsFunc 191*10652SHyon.Kim@Sun.COM RegisterForAdapterPhyStatEventsHandler; 192*10652SHyon.Kim@Sun.COM SMHBARegisterForTargetEventsFunc RegisterForTargetEventsHandler; 193*10652SHyon.Kim@Sun.COM HBARegisterForLinkEventsFunc RegisterForLinkEventsHandler; 194*10652SHyon.Kim@Sun.COM HBARemoveCallbackFunc RemoveCallbackHandler; 195*10652SHyon.Kim@Sun.COM } SMHBA_ENTRYPOINTS, *PSMHBA_ENTRYPOINTS; 196*10652SHyon.Kim@Sun.COM 197*10652SHyon.Kim@Sun.COM typedef HBA_UINT32 (* SMHBARegisterLibraryFunc)(SMHBA_ENTRYPOINTS *); 198*10652SHyon.Kim@Sun.COM 199*10652SHyon.Kim@Sun.COM HBA_STATUS SMHBA_RegisterLibrary( 200*10652SHyon.Kim@Sun.COM SMHBA_ENTRYPOINTS *functionTable 201*10652SHyon.Kim@Sun.COM ); 202*10652SHyon.Kim@Sun.COM 203*10652SHyon.Kim@Sun.COM #ifdef __cplusplus 204*10652SHyon.Kim@Sun.COM } 205*10652SHyon.Kim@Sun.COM #endif 206*10652SHyon.Kim@Sun.COM 207*10652SHyon.Kim@Sun.COM #endif /* _VENDORSMHBAAPI_H_ */ 208