summaryrefslogtreecommitdiff
path: root/usr/src/lib/hbaapi/common/hbaapi-sun.h
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/lib/hbaapi/common/hbaapi-sun.h')
-rw-r--r--usr/src/lib/hbaapi/common/hbaapi-sun.h144
1 files changed, 144 insertions, 0 deletions
diff --git a/usr/src/lib/hbaapi/common/hbaapi-sun.h b/usr/src/lib/hbaapi/common/hbaapi-sun.h
new file mode 100644
index 0000000000..b7409291cd
--- /dev/null
+++ b/usr/src/lib/hbaapi/common/hbaapi-sun.h
@@ -0,0 +1,144 @@
+/*
+ * *****************************************************************************
+ *
+ * Description
+ * hbaapi.h - header file for Sun extension for target mode adaptor
+ * support.
+ *
+ * License:
+ * The contents of this file are subject to the SNIA Public License
+ * Version 1.0 (the "License"); you may not use this file except in
+ * compliance with the License. You may obtain a copy of the License at
+ *
+ * /http://www.snia.org/English/Resources/Code/OpenSource.html
+ *
+ * Software distributed under the License is distributed on an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+ * the License for the specific language governing rights and limitations
+ * under the License.
+ *
+ *******************************************************************************
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#ifndef _HBA_API_SUN_H
+#define _HBA_API_SUN_H
+
+#include <hbaapi.h>
+
+#define HBA_CREATE_WWN_RANDOM 1
+#define HBA_CREATE_WWN_FACTORY 2
+
+typedef struct HBA_NPIVPortList {
+ uint32_t numPorts;
+ char hbaPaths[1][1024];
+} HBA_NPIVPORTLIST, *PHBA_NPIVPORTLIST;
+
+typedef struct HBA_PortNPIVAttributes {
+ HBA_INT32 npivflag;
+ HBA_WWN NodeWWN;
+ HBA_WWN PortWWN;
+ HBA_UINT32 MaxNumberOfNPIVPorts;
+ HBA_UINT32 NumberOfNPIVPorts;
+} HBA_PORTNPIVATTRIBUTES, *PHBA_PORTNPIVATTRIBUTES;
+
+typedef struct HBA_NPIVAttributes {
+ HBA_WWN NodeWWN;
+ HBA_WWN PortWWN;
+} HBA_NPIVATTRIBUTES, *PHBA_NPIVATTRIBUTES;
+
+typedef struct HBA_NPIVCreateEntry {
+ HBA_WWN VNodeWWN;
+ HBA_WWN VPortWWN;
+ uint32_t vindex;
+} HBA_NPIVCREATEENTRY, *PHBA_NPIVCREATEENTRY;
+
+/* Device Level Events */
+#define HBA_EVENT_DEVICE_UNKNOWN 0x600
+#define HBA_EVENT_DEVICE_OFFLINE 0x601
+#define HBA_EVENT_DEVICE_ONLINE 0x602
+
+HBA_API HBA_UINT32 Sun_HBA_GetNumberOfTgtAdapters();
+
+HBA_API HBA_STATUS Sun_HBA_GetTgtAdapterName(
+ HBA_UINT32 adapterindex,
+ char *adaptername
+ );
+
+HBA_API HBA_HANDLE Sun_HBA_OpenTgtAdapter(
+ char* adaptername
+ );
+
+HBA_API HBA_STATUS Sun_HBA_OpenTgtAdapterByWWN(
+ HBA_HANDLE *handle,
+ HBA_WWN wwn
+ );
+
+HBA_API HBA_STATUS Sun_HBA_NPIVGetAdapterAttributes(
+ HBA_HANDLE handle,
+ HBA_ADAPTERATTRIBUTES
+ *hbaattributes
+ );
+HBA_API HBA_STATUS Sun_HBA_GetNPIVPortInfo(
+ HBA_HANDLE handle,
+ HBA_UINT32 portindex,
+ HBA_UINT32 vportindex,
+ HBA_NPIVATTRIBUTES *attributes
+ );
+HBA_API HBA_STATUS Sun_HBA_DeleteNPIVPort(
+ HBA_HANDLE handle,
+ HBA_UINT32 portindex,
+ HBA_WWN vportWWN
+ );
+HBA_API HBA_STATUS Sun_HBA_CreateNPIVPort(
+ HBA_HANDLE handle,
+ HBA_UINT32 portindex,
+ HBA_WWN vnodeWWN,
+ HBA_WWN vportWWN,
+ HBA_UINT32 *npivportindex
+ );
+HBA_API HBA_STATUS Sun_HBA_GetPortNPIVAttributes(
+ HBA_HANDLE handle,
+ HBA_UINT32 portindex,
+ HBA_PORTNPIVATTRIBUTES *portnpivattributes
+ );
+
+HBA_STATUS Sun_HBA_AdapterCreateWWN(
+ HBA_HANDLE handle,
+ HBA_UINT32 portindex,
+ HBA_WWN *nwwn,
+ HBA_WWN *pwwn,
+ HBA_WWN *OUI,
+ HBA_INT32 method
+);
+
+HBA_STATUS Sun_HBA_AdapterReturnWWN(
+ HBA_HANDLE handle,
+ HBA_UINT32 portindex,
+ HBA_WWN *nwwn,
+ HBA_WWN *pwwn
+);
+
+HBA_API HBA_STATUS Sun_HBA_RegisterForAdapterDeviceEvents(
+ void (*callback)(
+ void *data,
+ HBA_WWN PortWWN,
+ HBA_UINT32 eventType,
+ HBA_UINT32 fabricPortID
+ ),
+ void *userData,
+ HBA_HANDLE handle,
+ HBA_WWN PortWWN,
+ HBA_CALLBACKHANDLE *callbackHandle
+ );
+
+
+#endif /* HBA_API_SUN_H */
+
+#ifdef __cplusplus
+}
+#endif /* _HBA_API_SUN_H */