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