#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;
#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
);
HBA_API HBA_STATUS Sun_HBA_ForceLip(
HBA_HANDLE handle,
int *rval);
#endif
#ifdef __cplusplus
}
#endif