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