ZFCP HBA API Library  1
hbaapi.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: EPL-1.0 */
2 /*
3  * Copyright IBM Corp. 2003, 2004, 2010
4  *
5  * Authors: Andreas Herrmann
6  * Stefan Voelkel
7  *
8  * File: hbaapi.h
9  *
10  * Description:
11  * HBA API header file (according to FC-HBA Rev 11)
12  *
13  */
14 
15 #ifndef _HBAAPI_H_
16 #define _HBAAPI_H_
17 
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21 
22 #include <stdint.h>
23 #include <time.h>
24 
25 /*
26  * basic attribute types
27  */
28 typedef uint8_t HBA_UINT8;
29 typedef uint16_t HBA_UINT16;
30 typedef uint32_t HBA_UINT32;
31 typedef uint64_t HBA_UINT64;
32 typedef int64_t HBA_INT64;
33 typedef HBA_UINT8 HBA_BOOLEAN;
34 typedef HBA_UINT32 HBA_HANDLE;
35 
36 typedef struct HBA_wwn {
37  HBA_UINT8 wwn[8];
38 } HBA_WWN;
39 
40 /*
41  * status return values
42  */
43 typedef HBA_UINT32 HBA_STATUS;
44 
45 #define HBA_STATUS_OK 0
46 #define HBA_STATUS_ERROR 1
47 #define HBA_STATUS_ERROR_NOT_SUPPORTED 2
48 #define HBA_STATUS_ERROR_INVALID_HANDLE 3
49 #define HBA_STATUS_ERROR_ARG 4
50 #define HBA_STATUS_ERROR_ILLEGAL_WWN 5
51 #define HBA_STATUS_ERROR_ILLEGAL_INDEX 6
52 #define HBA_STATUS_ERROR_MORE_DATA 7
53 #define HBA_STATUS_ERROR_STALE_DATA 8
54 #define HBA_STATUS_SCSI_CHECK_CONDITION 9
55 #define HBA_STATUS_ERROR_BUSY 10
56 #define HBA_STATUS_ERROR_TRY_AGAIN 11
57 #define HBA_STATUS_ERROR_UNAVAILABLE 12
58 #define HBA_STATUS_ERROR_ELS_REJECT 13
59 #define HBA_STATUS_ERROR_INVALID_LUN 14
60 #define HBA_STATUS_ERROR_INCOMPATIBLE 15
61 #define HBA_STATUS_ERROR_AMBIGUOUS_WWN 16
62 #define HBA_STATUS_ERROR_LOCAL_BUS 17
63 #define HBA_STATUS_ERROR_LOCAL_TARGET 18
64 #define HBA_STATUS_ERROR_LOCAL_LUN 19
65 #define HBA_STATUS_ERROR_LOCAL_SCSIID_BOUND 20
66 #define HBA_STATUS_ERROR_TARGET_FCID 21
67 #define HBA_STATUS_ERROR_TARGET_NODE_WWN 22
68 #define HBA_STATUS_ERROR_TARGET_PORT_WWN 23
69 #define HBA_STATUS_ERROR_TARGET_LUN 24
70 #define HBA_STATUS_ERROR_TARGET_LUID 25
71 #define HBA_STATUS_ERROR_NO_SUCH_BINDING 26
72 #define HBA_STATUS_ERROR_NOT_A_TARGET 27
73 #define HBA_STATUS_ERROR_UNSUPPORTED_FC4 28
74 #define HBA_STATUS_ERROR_INCAPABLE 29
75 #define HBA_STATUS_ERROR_TARGET_BUSY 30
76 #define HBA_STATUS_ERROR_NOT_LOADED 31
77 #define HBA_STATUS_ERROR_ALREADY_LOADED 32
78 #define HBA_STATUS_ERROR_ILLEGAL_FCID 33
79 
80 /*
81  * HBA attributes
82  */
83 typedef struct HBA_AdapterAttributes {
84  char Manufacturer[64];
85  char SerialNumber[64];
86  char Model[256];
87  char ModelDescription[256];
88  HBA_WWN NodeWWN;
89  char NodeSymbolicName[256];
90  char HardwareVersion[256];
91  char DriverVersion[256];
92  char OptionROMVersion[256];
93  char FirmwareVersion[256];
94  HBA_UINT32 VendorSpecificID;
95  HBA_UINT32 NumberOfPorts;
96  char DriverName[256];
97 } HBA_ADAPTERATTRIBUTES;
98 
99 /*
100  * FC port attributes
101  */
102 typedef HBA_UINT32 HBA_PORTTYPE;
103 
104 #define HBA_PORTTYPE_UNKNOWN 1
105 #define HBA_PORTTYPE_OTHER 2
106 #define HBA_PORTTYPE_NOTPRESENT 3
107 #define HBA_PORTTYPE_NPORT 5
108 #define HBA_PORTTYPE_NLPORT 6
109 #define HBA_PORTTYPE_FLPORT 7
110 #define HBA_PORTTYPE_FPORT 8
111 #define HBA_PORTTYPE_LPORT 20
112 #define HBA_PORTTYPE_PTP 21
113 
114 typedef HBA_UINT32 HBA_PORTSTATE;
115 
116 #define HBA_PORTSTATE_UNKNOWN 1
117 #define HBA_PORTSTATE_ONLINE 2
118 #define HBA_PORTSTATE_OFFLINE 3
119 #define HBA_PORTSTATE_BYPASSED 4
120 #define HBA_PORTSTATE_DIAGNOSTICS 5
121 #define HBA_PORTSTATE_LINKDOWN 6
122 #define HBA_PORTSTATE_ERROR 7
123 #define HBA_PORTSTATE_LOOPBACK 8
124 
125 typedef HBA_UINT32 HBA_PORTSPEED;
126 
127 #define HBA_PORTSPEED_UNKNOWN 0
128 #define HBA_PORTSPEED_1GBIT 1
129 #define HBA_PORTSPEED_2GBIT 2
130 #define HBA_PORTSPEED_10GBIT 4
131 #define HBA_PORTSPEED_4GBIT 8
132 #define HBA_PORTSPEED_8GBIT 16
133 #define HBA_PORTSPEED_16GBIT 32
134 #define HBA_PORTSPEED_NOT_NEGOTIATED (1<<15)
135 
136 /* "Class of Service - Format" as described in FC-GS-4 */
137 typedef HBA_UINT32 HBA_COS;
138 
139 /* "FC-TYPEs - Format" as described in FC-GS-4 */
140 typedef struct HBA_fc4types {
141  HBA_UINT8 bits[32];
142 } HBA_FC4TYPES;
143 
144 typedef struct HBA_PortAttributes {
145  HBA_WWN NodeWWN;
146  HBA_WWN PortWWN;
147  HBA_UINT32 PortFcId;
148  HBA_PORTTYPE PortType;
149  HBA_PORTSTATE PortState;
150  HBA_COS PortSupportedClassofService;
151  HBA_FC4TYPES PortSupportedFc4Types;
152  HBA_FC4TYPES PortActiveFc4Types;
153  char PortSymbolicName[256];
154  char OSDeviceName[256];
155  HBA_PORTSPEED PortSupportedSpeed;
156  HBA_PORTSPEED PortSpeed;
157  HBA_UINT32 PortMaxFrameSize;
158  HBA_WWN FabricName;
159  HBA_UINT32 NumberofDiscoveredPorts;
160 } HBA_PORTATTRIBUTES;
161 
162 /*
163  * end port statistics
164  */
165 /* for FC-1, FC-2, FC-3 */
166 typedef struct HBA_PortStatistics {
167  HBA_INT64 SecondsSinceLastReset;
168  HBA_INT64 TxFrames;
169  HBA_INT64 TxWords;
170  HBA_INT64 RxFrames;
171  HBA_INT64 RxWords;
172  HBA_INT64 LIPCount;
173  HBA_INT64 NOSCount;
174  HBA_INT64 ErrorFrames;
175  HBA_INT64 DumpedFrames;
176  HBA_INT64 LinkFailureCount;
177  HBA_INT64 LossOfSyncCount;
178  HBA_INT64 LossOfSignalCount;
179  HBA_INT64 PrimitiveSeqProtocolErrCount;
180  HBA_INT64 InvalidTxWordCount;
181  HBA_INT64 InvalidCRCCount;
182 } HBA_PORTSTATISTICS;
183 
184 /* for FC-4 */
185 typedef struct HBA_FC4Statistics {
186  HBA_INT64 InputRequests;
187  HBA_INT64 OutputRequests;
188  HBA_INT64 ControlRequests;
189  HBA_INT64 InputMegabytes;
190  HBA_INT64 OutputMegabytes;
191 } HBA_FC4STATISTICS;
192 
193 /*
194  * FCP port attributes (FCP-2)
195  */
196 typedef enum HBA_fcpbindingtype {
197  TO_D_ID,
198  TO_WWN,
199  TO_OTHER
200 } HBA_FCPBINDINGTYPE;
201 
202 typedef HBA_UINT32 HBA_BIND_CAPABILITY;
203 
204 #define HBA_CAN_BIND_TO_D_ID 0x0001
205 #define HBA_CAN_BIND_TO_WWPN 0x0002
206 #define HBA_CAN_BIND_TO_WWNN 0x0004
207 #define HBA_CAN_BIND_TO_LUID 0x0008
208 #define HBA_CAN_BIND_ANY_LUNS 0x0400
209 #define HBA_CAN_BIND_TARGETS 0x0800
210 #define HBA_CAN_BIND_AUTOMAP 0x1000
211 #define HBA_CAN_BIND_CONFIGURED 0x2000
212 
213 typedef HBA_UINT32 HBA_BIND_TYPE;
214 
215 #define HBA_BIND_TO_D_ID 0x0001
216 #define HBA_BIND_TO_WWPN 0x0002
217 #define HBA_BIND_TO_WWNN 0x0004
218 #define HBA_BIND_TO_LUID 0x0008
219 #define HBA_BIND_TARGETS 0x8000
220 
221 typedef struct HBA_LUID {
222  char buffer[256];
223 } HBA_LUID;
224 
225 typedef struct HBA_ScsiId {
226  char OSDeviceName[256];
227  HBA_UINT32 ScsiBusNumber;
228  HBA_UINT32 ScsiTargetNumber;
229  HBA_UINT32 ScsiOSLun;
230 } HBA_SCSIID;
231 
232 typedef struct HBA_FcpId {
233  HBA_UINT32 FcId;
234  HBA_WWN NodeWWN;
235  HBA_WWN PortWWN;
236  HBA_UINT64 FcpLun;
237 } HBA_FCPID;
238 
239 typedef struct HBA_FcpScsiEntry {
240  HBA_SCSIID ScsiId;
241  HBA_FCPID FcpId;
242 } HBA_FCPSCSIENTRY;
243 
244 typedef struct HBA_FcpScsiEntryV2 {
245  HBA_SCSIID ScsiId;
246  HBA_FCPID FcpId;
247  HBA_LUID LUID;
248 } HBA_FCPSCSIENTRYV2;
249 
250 typedef struct HBA_FCPTargetMapping {
251  HBA_UINT32 NumberOfEntries;
252  HBA_FCPSCSIENTRY entry[1]; /* variable length array */
253 } HBA_FCPTARGETMAPPING;
254 
255 typedef struct HBA_FCPTargetMappingV2 {
256  HBA_UINT32 NumberOfEntries;
257  HBA_FCPSCSIENTRYV2 entry[1]; /* variable length array */
258 } HBA_FCPTARGETMAPPINGV2;
259 
260 typedef struct HBA_FCPBindingEntry {
261  HBA_FCPBINDINGTYPE type;
262  HBA_SCSIID ScsiId;
263  HBA_FCPID FcpId;
264  HBA_UINT32 FcId;
265 } HBA_FCPBINDINGENTRY;
266 
267 typedef struct HBA_FCPBinding {
268  HBA_UINT32 NumberOfEntries;
269  HBA_FCPBINDINGENTRY entry[1]; /* variable length array */
270 } HBA_FCPBINDING;
271 
272 typedef struct HBA_FCPBindingEntry2 {
273  HBA_BIND_TYPE type;
274  HBA_SCSIID ScsiId;
275  HBA_FCPID FcpId;
276  HBA_LUID LUID;
277  HBA_STATUS Status;
278 } HBA_FCPBINDINGENTRY2;
279 
280 typedef struct HBA_FCPBinding2 {
281  HBA_UINT32 NumberOfEntries;
282  HBA_FCPBINDINGENTRY2 entry[1]; /* variable length array */
283 } HBA_FCPBINDING2;
284 
285 /*
286  * FC-3 management attributes
287  */
288 typedef enum HBA_wwntype {
289  NODE_WWN,
290  PORT_WWN
291 } HBA_WWNTYPE;
292 
293 typedef struct HBA_MgmtInfo {
294  HBA_WWN wwn;
295  HBA_UINT32 unittype;
296  HBA_UINT32 PortId;
297  HBA_UINT32 NumberOfAttachedNodes;
298  HBA_UINT16 IPVersion;
299  HBA_UINT16 UDPPort;
300  HBA_UINT8 IPAddress[16];
301  HBA_UINT16 reserved;
302  HBA_UINT16 TopologyDiscoveryFlags;
303 } HBA_MGMTINFO;
304 
305 /*
306  * polled event notification
307  */
308 #define HBA_EVENT_LIP_OCCURRED 1
309 #define HBA_EVENT_LINK_UP 2
310 #define HBA_EVENT_LINK_DOWN 3
311 #define HBA_EVENT_LIP_RESET_OCCURRED 4
312 #define HBA_EVENT_RSCN 5
313 #define HBA_EVENT_PROPRIETARY 0xffff
314 
315 typedef struct HBA_LinkEventInfo {
316  HBA_UINT32 PortFcId; /* end port where event occurred */
317  HBA_UINT32 Reserved[3];
318 } HBA_LINK_EVENTINFO;
319 
320 typedef struct HBA_RSCN_EventInfo {
321  HBA_UINT32 PortFcId; /* end port where event occurred */
322  HBA_UINT32 NPortPage;
323  HBA_UINT32 Reserved[2];
324 } HBA_RSCN_EVENTINFO;
325 
326 typedef struct HBA_Pty_EventInfo {
327  HBA_UINT32 PtyData[4]; /* proprietary data */
328 } HBA_PTY_EVENTINFO;
329 
330 typedef struct HBA_EventInfo {
331  HBA_UINT32 EventCode;
332  union {
333  HBA_LINK_EVENTINFO Link_EventInfo;
334  HBA_RSCN_EVENTINFO RSCN_EventInfo;
335  HBA_PTY_EVENTINFO Pty_EventInfo;
336  } Event;
337 } HBA_EVENTINFO;
338 
339 /*
340  * asynchronous event notification
341  */
342 typedef void *HBA_CALLBACKHANDLE;
343 
344 /* adapter add event type */
345 #define HBA_EVENT_ADAPTER_ADD 0x101
346 
347 /* adapter event types */
348 #define HBA_EVENT_ADAPTER_UNKNOWN 0x100
349 #define HBA_EVENT_ADAPTER_REMOVE 0x102
350 #define HBA_EVENT_ADAPTER_CHANGE 0x103
351 
352 /* port event types */
353 #define HBA_EVENT_PORT_UNKNOWN 0x200
354 #define HBA_EVENT_PORT_OFFLINE 0x201
355 #define HBA_EVENT_PORT_ONLINE 0x202
356 #define HBA_EVENT_PORT_NEW_TARGETS 0x203
357 #define HBA_EVENT_PORT_FABRIC 0x204
358 
359 /* port statistics event types */
360 #define HBA_EVENT_PORT_STAT_THRESHOLD 0x301
361 #define HBA_EVENT_PORT_STAT_GROWTH 0x302
362 
363 /* target event types */
364 #define HBA_EVENT_TARGET_UNKNOWN 0x400
365 #define HBA_EVENT_TARGET_OFFLINE 0x401
366 #define HBA_EVENT_TARGET_ONLINE 0x402
367 #define HBA_EVENT_TARGET_REMOVED 0x403
368 
369 /* link event types */
370 #define HBA_EVENT_LINK_UNKNOWN 0x500
371 #define HBA_EVENT_LINK_INCIDENT 0x501
372 
373 /*
374  * library attributes
375  */
376 typedef struct HBA_LibraryAttributes {
377  HBA_BOOLEAN final;
378  char LibPath[256];
379  char VName[256];
380  char VVersion[256];
381  struct tm build_date;
382 } HBA_LIBRARYATTRIBUTES;
383 
384 /*
385  * function declarations for HBA API
386  */
387 
388 /* library control */
389 HBA_UINT32 HBA_GetVersion(void);
390 HBA_STATUS HBA_LoadLibrary(void);
391 HBA_STATUS HBA_FreeLibrary(void);
392 HBA_UINT32 HBA_GetWrapperLibraryAttributes(HBA_LIBRARYATTRIBUTES *);
393 HBA_UINT32 HBA_GetVendorLibraryAttributes(HBA_UINT32, HBA_LIBRARYATTRIBUTES *);
394 HBA_UINT32 HBA_GetNumberOfAdapters(void);
395 void HBA_RefreshInformation(HBA_HANDLE);
397 void HBA_ResetStatistics(HBA_HANDLE, HBA_UINT32);
398 
399 /* adapter and port information */
400 HBA_STATUS HBA_GetAdapterName(HBA_UINT32, char *);
401 HBA_HANDLE HBA_OpenAdapter(char *);
402 HBA_STATUS HBA_OpenAdapterByWWN(HBA_HANDLE *, HBA_WWN);
403 void HBA_CloseAdapter(HBA_HANDLE);
404 HBA_STATUS HBA_GetAdapterAttributes(HBA_HANDLE, HBA_ADAPTERATTRIBUTES *);
406  (HBA_HANDLE, HBA_UINT32, HBA_PORTATTRIBUTES *);
408  (HBA_HANDLE, HBA_UINT32, HBA_UINT32, HBA_PORTATTRIBUTES *);
410  (HBA_HANDLE, HBA_WWN, HBA_PORTATTRIBUTES *);
411 HBA_STATUS HBA_GetPortStatistics(HBA_HANDLE, HBA_UINT32, HBA_PORTSTATISTICS *);
412 HBA_STATUS HBA_GetFC4Statistics
413  (HBA_HANDLE, HBA_WWN, HBA_UINT8, HBA_FC4STATISTICS *);
414 
415 /* FCP information */
416 HBA_STATUS HBA_GetBindingCapability(HBA_HANDLE, HBA_WWN, HBA_BIND_CAPABILITY *);
417 HBA_STATUS HBA_GetBindingSupport(HBA_HANDLE, HBA_WWN, HBA_BIND_CAPABILITY *);
418 HBA_STATUS HBA_SetBindingSupport(HBA_HANDLE, HBA_WWN, HBA_BIND_CAPABILITY);
419 HBA_STATUS HBA_GetFcpTargetMapping(HBA_HANDLE, HBA_FCPTARGETMAPPING *);
420 HBA_STATUS HBA_GetFcpTargetMappingV2
421  (HBA_HANDLE, HBA_WWN, HBA_FCPTARGETMAPPINGV2 *);
422 HBA_STATUS HBA_GetFcpPersistentBinding(HBA_HANDLE, HBA_FCPBINDING *);
423 HBA_STATUS HBA_GetPersistentBindingV2(HBA_HANDLE, HBA_WWN, HBA_FCPBINDING2 *);
425  (HBA_HANDLE, HBA_WWN, HBA_FCPBINDING2 *);
427  (HBA_HANDLE, HBA_WWN, HBA_FCPBINDING2 *);
428 HBA_STATUS HBA_RemoveAllPersistentBindings(HBA_HANDLE, HBA_WWN);
429 HBA_STATUS HBA_GetFCPStatistics
430  (HBA_HANDLE, const HBA_SCSIID *, HBA_FC4STATISTICS *);
431 
432 /* SCSI information */
433 HBA_STATUS HBA_SendScsiInquiry
434  (HBA_HANDLE, HBA_WWN, HBA_UINT64, HBA_UINT8, HBA_UINT32, void *,
435  HBA_UINT32, void *, HBA_UINT32);
436 HBA_STATUS HBA_ScsiInquiryV2
437  (HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_UINT64, HBA_UINT8, HBA_UINT8, void *,
438  HBA_UINT32 *, HBA_UINT8 *, void *, HBA_UINT32 *);
439 HBA_STATUS HBA_SendReportLUNs
440  (HBA_HANDLE, HBA_WWN, void *, HBA_UINT32, void *, HBA_UINT32);
441 HBA_STATUS HBA_ScsiReportLUNsV2
442  (HBA_HANDLE, HBA_WWN, HBA_WWN, void *, HBA_UINT32 *, HBA_UINT8 *,
443  void *, HBA_UINT32 *);
444 HBA_STATUS HBA_SendReadCapacity
445  (HBA_HANDLE, HBA_WWN, HBA_UINT64, void *, HBA_UINT32, void *,
446  HBA_UINT32);
447 HBA_STATUS HBA_ScsiReadCapacityV2
448  (HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_UINT64, void *, HBA_UINT32 *,
449  HBA_UINT8 *, void *, HBA_UINT32 *);
450 
451 /* fabric management */
452 HBA_STATUS HBA_SendCTPassThru
453  (HBA_HANDLE, void *, HBA_UINT32, void *, HBA_UINT32);
454 HBA_STATUS HBA_SendCTPassThruV2
455  (HBA_HANDLE, HBA_WWN, void *, HBA_UINT32, void *, HBA_UINT32 *);
456 HBA_STATUS HBA_SetRNIDMgmtInfo(HBA_HANDLE, HBA_MGMTINFO *);
457 HBA_STATUS HBA_GetRNIDMgmtInfo(HBA_HANDLE, HBA_MGMTINFO *);
458 HBA_STATUS HBA_SendRNID(HBA_HANDLE, HBA_WWN, HBA_WWNTYPE, void *, HBA_UINT32 *);
459 HBA_STATUS HBA_SendRNIDV2
460  (HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_UINT32, HBA_UINT32, void *,
461  HBA_UINT32 *);
462 HBA_STATUS HBA_SendRPL
463  (HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_UINT32, HBA_UINT32, void *,
464  HBA_UINT32 *);
465 HBA_STATUS HBA_SendRPS
466  (HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_UINT32, HBA_WWN, HBA_UINT32, void *,
467  HBA_UINT32 *);
468 HBA_STATUS HBA_SendSRL
469  (HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_UINT32, void *, HBA_UINT32 *);
470 HBA_STATUS HBA_SendLIRR
471  (HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_UINT8, HBA_UINT8, void *,
472  HBA_UINT32 *);
473 HBA_STATUS HBA_SendRLS(HBA_HANDLE, HBA_WWN, HBA_WWN, void *, HBA_UINT32 *);
474 
475 /* event handling */
476 HBA_STATUS HBA_GetEventBuffer(HBA_HANDLE, HBA_EVENTINFO *, HBA_UINT32 *);
478  (void (*)(void *, HBA_WWN, HBA_UINT32), void *, HBA_CALLBACKHANDLE *);
480  (void (*)(void *, HBA_WWN, HBA_UINT32), void *, HBA_HANDLE,
481  HBA_CALLBACKHANDLE *);
483  (void (*)(void *, HBA_WWN, HBA_UINT32, HBA_UINT32), void *, HBA_HANDLE,
484  HBA_WWN, HBA_CALLBACKHANDLE *);
486  (void (*)(void *, HBA_WWN, HBA_UINT32), void *, HBA_HANDLE, HBA_WWN,
487  HBA_PORTSTATISTICS, HBA_UINT32, HBA_CALLBACKHANDLE *);
489  (void (*)(void *, HBA_WWN, HBA_WWN, HBA_UINT32), void *, HBA_HANDLE,
490  HBA_WWN, HBA_WWN, HBA_CALLBACKHANDLE *, HBA_UINT32);
491 HBA_STATUS HBA_RegisterForLinkEvents
492  (void (*)(void *, HBA_WWN, HBA_UINT32, void *, HBA_UINT32), void *,
493  void *, HBA_UINT32, HBA_HANDLE, HBA_CALLBACKHANDLE *);
494 HBA_STATUS HBA_RemoveCallback(HBA_CALLBACKHANDLE);
495 
496 #ifdef __cplusplus
497 }
498 #endif
499 
500 #endif /* _HBAAPI_H_ */
HBA_STATUS HBA_SendReportLUNs(HBA_HANDLE, HBA_WWN, void *, HBA_UINT32, void *, HBA_UINT32)
Send a SCSI REPORT LUNS command to a target.
Definition: vlib.c:1358
HBA_STATUS HBA_GetPortStatistics(HBA_HANDLE, HBA_UINT32, HBA_PORTSTATISTICS *)
Return statistics of an adapter port.
Definition: vlib.c:813
HBA_STATUS HBA_GetEventBuffer(HBA_HANDLE, HBA_EVENTINFO *, HBA_UINT32 *)
Return events for an adapter from the event queue.
Definition: vlib.c:1815
HBA_STATUS HBA_LoadLibrary(void)
Perform initialization of library.
Definition: vlib.c:130
HBA_STATUS HBA_SendRNID(HBA_HANDLE, HBA_WWN, HBA_WWNTYPE, void *, HBA_UINT32 *)
Send a RNID ELS to a port.
Definition: vlib.c:1675
HBA_STATUS HBA_SendCTPassThruV2(HBA_HANDLE, HBA_WWN, void *, HBA_UINT32, void *, HBA_UINT32 *)
Send a CT pass thru - a CT frame constructed in userspace directly to the HBA / SAN.
Definition: vlib.c:1605
HBA_STATUS HBA_SendScsiInquiry(HBA_HANDLE, HBA_WWN, HBA_UINT64, HBA_UINT8, HBA_UINT32, void *, HBA_UINT32, void *, HBA_UINT32)
Send a SCSI INQUIRY command to a FCP LUN.
Definition: vlib.c:1228
HBA_STATUS HBA_GetDiscoveredPortAttributes(HBA_HANDLE, HBA_UINT32, HBA_UINT32, HBA_PORTATTRIBUTES *)
Return attributes of an discovered port.
Definition: vlib.c:739
HBA_STATUS HBA_ScsiReportLUNsV2(HBA_HANDLE, HBA_WWN, HBA_WWN, void *, HBA_UINT32 *, HBA_UINT8 *, void *, HBA_UINT32 *)
Send a SCSI REPORT LUNS command to a target.
Definition: vlib.c:1391
void HBA_RefreshAdapterConfiguration(void)
Refresh information about configured adapters.
Definition: vlib.c:458
HBA_STATUS HBA_ScsiReadCapacityV2(HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_UINT64, void *, HBA_UINT32 *, HBA_UINT8 *, void *, HBA_UINT32 *)
Send a SCSI READ CAPACITY command to a FCP LUN.
Definition: vlib.c:1525
void HBA_ResetStatistics(HBA_HANDLE, HBA_UINT32)
According to FC-HBA this function is obsolete.
Definition: vlib.c:474
HBA_STATUS HBA_SendRNIDV2(HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_UINT32, HBA_UINT32, void *, HBA_UINT32 *)
Send a RNID ELS to a port.
Definition: vlib.c:1738
HBA_STATUS HBA_GetAdapterName(HBA_UINT32, char *)
Return name that identifies an adapter.
Definition: vlib.c:498
HBA_UINT32 HBA_GetNumberOfAdapters(void)
Return number of adapters.
Definition: vlib.c:395
HBA_UINT32 HBA_GetWrapperLibraryAttributes(HBA_LIBRARYATTRIBUTES *)
Return attributes of the OS specific HBA API library.
Definition: vlib.c:342
HBA_STATUS HBA_FreeLibrary(void)
Free system resources that library has used.
Definition: vlib.c:167
HBA_STATUS HBA_ScsiInquiryV2(HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_UINT64, HBA_UINT8, HBA_UINT8, void *, HBA_UINT32 *, HBA_UINT8 *, void *, HBA_UINT32 *)
Send a SCSI INQUIRY command to a FCP LUN.
Definition: vlib.c:1268
HBA_STATUS HBA_GetAdapterPortAttributes(HBA_HANDLE, HBA_UINT32, HBA_PORTATTRIBUTES *)
Return attributes for an adapter port.
Definition: vlib.c:673
void HBA_RefreshInformation(HBA_HANDLE)
Refresh information of an adapter.
Definition: vlib.c:417
HBA_STATUS HBA_SendCTPassThru(HBA_HANDLE, void *, HBA_UINT32, void *, HBA_UINT32)
Send a CT pass thru - a CT frame constructed in userspace directly to the HBA / SAN.
Definition: vlib.c:1560
void HBA_CloseAdapter(HBA_HANDLE)
Close an open adapter.
Definition: vlib.c:589
HBA_HANDLE HBA_OpenAdapter(char *)
Open an adapter.
Definition: vlib.c:543
HBA_STATUS HBA_SendReadCapacity(HBA_HANDLE, HBA_WWN, HBA_UINT64, void *, HBA_UINT32, void *, HBA_UINT32)
Send a SCSI READ CAPACITY command to a FCP LUN.
Definition: vlib.c:1489
HBA_STATUS HBA_GetFcpTargetMappingV2(HBA_HANDLE, HBA_WWN, HBA_FCPTARGETMAPPINGV2 *)
Retrieve mappings between OS SCSI targets/units and FCP targets/units.
Definition: vlib.c:1026
HBA_STATUS HBA_GetFcpTargetMapping(HBA_HANDLE, HBA_FCPTARGETMAPPING *)
Retrieve mappings between OS SCSI targets/units and FCP targets/units.
Definition: vlib.c:911
HBA_UINT32 HBA_GetVersion(void)
Return the version of the HBA API specification with which this library is compliant.
Definition: vlib.c:57
HBA_UINT32 HBA_GetVendorLibraryAttributes(HBA_UINT32, HBA_LIBRARYATTRIBUTES *)
Return attributes of the vendor specific HBA API library.
Definition: vlib.c:359
HBA_STATUS HBA_GetAdapterAttributes(HBA_HANDLE, HBA_ADAPTERATTRIBUTES *)
Return attributes for an adapter.
Definition: vlib.c:624
HBA_STATUS HBA_SendLIRR(HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_UINT8, HBA_UINT8, void *, HBA_UINT32 *)
Definition: vlib.c:1784
HBA_STATUS HBA_SendRPL(HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_UINT32, HBA_UINT32, void *, HBA_UINT32 *)
Definition: vlib.c:1750
HBA_STATUS HBA_SetBindingSupport(HBA_HANDLE, HBA_WWN, HBA_BIND_CAPABILITY)
Definition: vlib.c:887
HBA_STATUS HBA_GetPersistentBindingV2(HBA_HANDLE, HBA_WWN, HBA_FCPBINDING2 *)
Definition: vlib.c:1087
HBA_STATUS HBA_SetPersistentBindingV2(HBA_HANDLE, HBA_WWN, HBA_FCPBINDING2 *)
Definition: vlib.c:1097
HBA_STATUS HBA_RegisterForLinkEvents(void(*)(void *, HBA_WWN, HBA_UINT32, void *, HBA_UINT32), void *, void *, HBA_UINT32, HBA_HANDLE, HBA_CALLBACKHANDLE *)
Definition: vlib_callbacks.c:110
HBA_STATUS HBA_SendRPS(HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_UINT32, HBA_WWN, HBA_UINT32, void *, HBA_UINT32 *)
Definition: vlib.c:1761
HBA_STATUS HBA_GetFcpPersistentBinding(HBA_HANDLE, HBA_FCPBINDING *)
Definition: vlib.c:1077
HBA_STATUS HBA_GetFCPStatistics(HBA_HANDLE, const HBA_SCSIID *, HBA_FC4STATISTICS *)
Definition: vlib.c:1127
HBA_STATUS HBA_SendRLS(HBA_HANDLE, HBA_WWN, HBA_WWN, void *, HBA_UINT32 *)
Definition: vlib.c:1795
HBA_STATUS HBA_RemovePersistentBinding(HBA_HANDLE, HBA_WWN, HBA_FCPBINDING2 *)
Definition: vlib.c:1107
HBA_STATUS HBA_RegisterForTargetEvents(void(*)(void *, HBA_WWN, HBA_WWN, HBA_UINT32), void *, HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_CALLBACKHANDLE *, HBA_UINT32)
Definition: vlib_callbacks.c:95
HBA_STATUS HBA_GetFC4Statistics(HBA_HANDLE, HBA_WWN, HBA_UINT8, HBA_FC4STATISTICS *)
Definition: vlib.c:850
HBA_STATUS HBA_OpenAdapterByWWN(HBA_HANDLE *, HBA_WWN)
Definition: vlib.c:574
HBA_STATUS HBA_RemoveCallback(HBA_CALLBACKHANDLE)
Definition: vlib_callbacks.c:32
HBA_STATUS HBA_SendSRL(HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_UINT32, void *, HBA_UINT32 *)
Definition: vlib.c:1773
HBA_STATUS HBA_SetRNIDMgmtInfo(HBA_HANDLE, HBA_MGMTINFO *)
Definition: vlib.c:1617
HBA_STATUS HBA_RegisterForAdapterAddEvents(void(*)(void *, HBA_WWN, HBA_UINT32), void *, HBA_CALLBACKHANDLE *)
Definition: vlib_callbacks.c:42
HBA_STATUS HBA_GetBindingSupport(HBA_HANDLE, HBA_WWN, HBA_BIND_CAPABILITY *)
Definition: vlib.c:877
HBA_STATUS HBA_RemoveAllPersistentBindings(HBA_HANDLE, HBA_WWN)
Definition: vlib.c:1117
HBA_STATUS HBA_RegisterForAdapterPortEvents(void(*)(void *, HBA_WWN, HBA_UINT32, HBA_UINT32), void *, HBA_HANDLE, HBA_WWN, HBA_CALLBACKHANDLE *)
Definition: vlib_callbacks.c:66
HBA_STATUS HBA_GetBindingCapability(HBA_HANDLE, HBA_WWN, HBA_BIND_CAPABILITY *)
Definition: vlib.c:867
HBA_STATUS HBA_GetPortAttributesByWWN(HBA_HANDLE, HBA_WWN, HBA_PORTATTRIBUTES *)
Definition: vlib.c:790
HBA_STATUS HBA_RegisterForAdapterEvents(void(*)(void *, HBA_WWN, HBA_UINT32), void *, HBA_HANDLE, HBA_CALLBACKHANDLE *)
Definition: vlib_callbacks.c:54
HBA_STATUS HBA_GetRNIDMgmtInfo(HBA_HANDLE, HBA_MGMTINFO *)
Definition: vlib.c:1626
HBA_STATUS HBA_RegisterForAdapterPortStatEvents(void(*)(void *, HBA_WWN, HBA_UINT32), void *, HBA_HANDLE, HBA_WWN, HBA_PORTSTATISTICS, HBA_UINT32, HBA_CALLBACKHANDLE *)
Definition: vlib_callbacks.c:80