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
19extern "C" {
20#endif
21
22#include <stdint.h>
23#include <time.h>
24
25/*
26 * basic attribute types
27 */
28typedef uint8_t HBA_UINT8;
29typedef uint16_t HBA_UINT16;
30typedef uint32_t HBA_UINT32;
31typedef uint64_t HBA_UINT64;
32typedef int64_t HBA_INT64;
33typedef HBA_UINT8 HBA_BOOLEAN;
34typedef HBA_UINT32 HBA_HANDLE;
35
36typedef struct HBA_wwn {
37 HBA_UINT8 wwn[8];
38} HBA_WWN;
39
40/*
41 * status return values
42 */
43typedef 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 */
83typedef 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 */
102typedef 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
114typedef 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
125typedef 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 */
137typedef HBA_UINT32 HBA_COS;
138
139/* "FC-TYPEs - Format" as described in FC-GS-4 */
140typedef struct HBA_fc4types {
141 HBA_UINT8 bits[32];
142} HBA_FC4TYPES;
143
144typedef 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 */
166typedef 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 */
185typedef 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 */
196typedef enum HBA_fcpbindingtype {
197 TO_D_ID,
198 TO_WWN,
199 TO_OTHER
200} HBA_FCPBINDINGTYPE;
201
202typedef 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
213typedef 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
221typedef struct HBA_LUID {
222 char buffer[256];
223} HBA_LUID;
224
225typedef struct HBA_ScsiId {
226 char OSDeviceName[256];
227 HBA_UINT32 ScsiBusNumber;
228 HBA_UINT32 ScsiTargetNumber;
229 HBA_UINT32 ScsiOSLun;
230} HBA_SCSIID;
231
232typedef struct HBA_FcpId {
233 HBA_UINT32 FcId;
234 HBA_WWN NodeWWN;
235 HBA_WWN PortWWN;
236 HBA_UINT64 FcpLun;
237} HBA_FCPID;
238
239typedef struct HBA_FcpScsiEntry {
240 HBA_SCSIID ScsiId;
241 HBA_FCPID FcpId;
242} HBA_FCPSCSIENTRY;
243
244typedef struct HBA_FcpScsiEntryV2 {
245 HBA_SCSIID ScsiId;
246 HBA_FCPID FcpId;
247 HBA_LUID LUID;
248} HBA_FCPSCSIENTRYV2;
249
250typedef struct HBA_FCPTargetMapping {
251 HBA_UINT32 NumberOfEntries;
252 HBA_FCPSCSIENTRY entry[1]; /* variable length array */
253} HBA_FCPTARGETMAPPING;
254
255typedef struct HBA_FCPTargetMappingV2 {
256 HBA_UINT32 NumberOfEntries;
257 HBA_FCPSCSIENTRYV2 entry[1]; /* variable length array */
258} HBA_FCPTARGETMAPPINGV2;
259
260typedef struct HBA_FCPBindingEntry {
261 HBA_FCPBINDINGTYPE type;
262 HBA_SCSIID ScsiId;
263 HBA_FCPID FcpId;
264 HBA_UINT32 FcId;
265} HBA_FCPBINDINGENTRY;
266
267typedef struct HBA_FCPBinding {
268 HBA_UINT32 NumberOfEntries;
269 HBA_FCPBINDINGENTRY entry[1]; /* variable length array */
270} HBA_FCPBINDING;
271
272typedef 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
280typedef 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 */
288typedef enum HBA_wwntype {
289 NODE_WWN,
290 PORT_WWN
291} HBA_WWNTYPE;
292
293typedef 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
315typedef struct HBA_LinkEventInfo {
316 HBA_UINT32 PortFcId; /* end port where event occurred */
317 HBA_UINT32 Reserved[3];
318} HBA_LINK_EVENTINFO;
319
320typedef 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
326typedef struct HBA_Pty_EventInfo {
327 HBA_UINT32 PtyData[4]; /* proprietary data */
328} HBA_PTY_EVENTINFO;
329
330typedef 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 */
342typedef 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 */
376typedef 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 */
389HBA_UINT32 HBA_GetVersion(void);
390HBA_STATUS HBA_LoadLibrary(void);
391HBA_STATUS HBA_FreeLibrary(void);
392HBA_UINT32 HBA_GetWrapperLibraryAttributes(HBA_LIBRARYATTRIBUTES *);
393HBA_UINT32 HBA_GetVendorLibraryAttributes(HBA_UINT32, HBA_LIBRARYATTRIBUTES *);
394HBA_UINT32 HBA_GetNumberOfAdapters(void);
395void HBA_RefreshInformation(HBA_HANDLE);
397void HBA_ResetStatistics(HBA_HANDLE, HBA_UINT32);
398
399/* adapter and port information */
400HBA_STATUS HBA_GetAdapterName(HBA_UINT32, char *);
401HBA_HANDLE HBA_OpenAdapter(char *);
402HBA_STATUS HBA_OpenAdapterByWWN(HBA_HANDLE *, HBA_WWN);
403void HBA_CloseAdapter(HBA_HANDLE);
404HBA_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 *);
411HBA_STATUS HBA_GetPortStatistics(HBA_HANDLE, HBA_UINT32, HBA_PORTSTATISTICS *);
412HBA_STATUS HBA_GetFC4Statistics
413 (HBA_HANDLE, HBA_WWN, HBA_UINT8, HBA_FC4STATISTICS *);
414
415/* FCP information */
416HBA_STATUS HBA_GetBindingCapability(HBA_HANDLE, HBA_WWN, HBA_BIND_CAPABILITY *);
417HBA_STATUS HBA_GetBindingSupport(HBA_HANDLE, HBA_WWN, HBA_BIND_CAPABILITY *);
418HBA_STATUS HBA_SetBindingSupport(HBA_HANDLE, HBA_WWN, HBA_BIND_CAPABILITY);
419HBA_STATUS HBA_GetFcpTargetMapping(HBA_HANDLE, HBA_FCPTARGETMAPPING *);
421 (HBA_HANDLE, HBA_WWN, HBA_FCPTARGETMAPPINGV2 *);
422HBA_STATUS HBA_GetFcpPersistentBinding(HBA_HANDLE, HBA_FCPBINDING *);
423HBA_STATUS HBA_GetPersistentBindingV2(HBA_HANDLE, HBA_WWN, HBA_FCPBINDING2 *);
425 (HBA_HANDLE, HBA_WWN, HBA_FCPBINDING2 *);
427 (HBA_HANDLE, HBA_WWN, HBA_FCPBINDING2 *);
428HBA_STATUS HBA_RemoveAllPersistentBindings(HBA_HANDLE, HBA_WWN);
429HBA_STATUS HBA_GetFCPStatistics
430 (HBA_HANDLE, const HBA_SCSIID *, HBA_FC4STATISTICS *);
431
432/* SCSI information */
433HBA_STATUS HBA_SendScsiInquiry
434 (HBA_HANDLE, HBA_WWN, HBA_UINT64, HBA_UINT8, HBA_UINT32, void *,
435 HBA_UINT32, void *, HBA_UINT32);
436HBA_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 *);
439HBA_STATUS HBA_SendReportLUNs
440 (HBA_HANDLE, HBA_WWN, void *, HBA_UINT32, void *, HBA_UINT32);
441HBA_STATUS HBA_ScsiReportLUNsV2
442 (HBA_HANDLE, HBA_WWN, HBA_WWN, void *, HBA_UINT32 *, HBA_UINT8 *,
443 void *, HBA_UINT32 *);
444HBA_STATUS HBA_SendReadCapacity
445 (HBA_HANDLE, HBA_WWN, HBA_UINT64, void *, HBA_UINT32, void *,
446 HBA_UINT32);
447HBA_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 */
452HBA_STATUS HBA_SendCTPassThru
453 (HBA_HANDLE, void *, HBA_UINT32, void *, HBA_UINT32);
454HBA_STATUS HBA_SendCTPassThruV2
455 (HBA_HANDLE, HBA_WWN, void *, HBA_UINT32, void *, HBA_UINT32 *);
456HBA_STATUS HBA_SetRNIDMgmtInfo(HBA_HANDLE, HBA_MGMTINFO *);
457HBA_STATUS HBA_GetRNIDMgmtInfo(HBA_HANDLE, HBA_MGMTINFO *);
458HBA_STATUS HBA_SendRNID(HBA_HANDLE, HBA_WWN, HBA_WWNTYPE, void *, HBA_UINT32 *);
459HBA_STATUS HBA_SendRNIDV2
460 (HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_UINT32, HBA_UINT32, void *,
461 HBA_UINT32 *);
462HBA_STATUS HBA_SendRPL
463 (HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_UINT32, HBA_UINT32, void *,
464 HBA_UINT32 *);
465HBA_STATUS HBA_SendRPS
466 (HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_UINT32, HBA_WWN, HBA_UINT32, void *,
467 HBA_UINT32 *);
468HBA_STATUS HBA_SendSRL
469 (HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_UINT32, void *, HBA_UINT32 *);
470HBA_STATUS HBA_SendLIRR
471 (HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_UINT8, HBA_UINT8, void *,
472 HBA_UINT32 *);
473HBA_STATUS HBA_SendRLS(HBA_HANDLE, HBA_WWN, HBA_WWN, void *, HBA_UINT32 *);
474
475/* event handling */
476HBA_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);
492 (void (*)(void *, HBA_WWN, HBA_UINT32, void *, HBA_UINT32), void *,
493 void *, HBA_UINT32, HBA_HANDLE, HBA_CALLBACKHANDLE *);
494HBA_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