1N/A/*
1N/A * ****************************************************************************
1N/A *
1N/A * Description
1N/A * vendorhbaapi.h - incombination with hbaapi.h, defines interface to
1N/A * vendor specific API
1N/A *
1N/A * License:
1N/A * The contents of this file are subject to the SNIA Public License
1N/A * Version 1.0 (the "License"); you may not use this file except in
1N/A * compliance with the License. You may obtain a copy of the License at
1N/A *
1N/A * /http://www.snia.org/English/Resources/Code/OpenSource.html
1N/A *
1N/A * Software distributed under the License is distributed on an "AS IS"
1N/A * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
1N/A * the License for the specific language governing rights and limitations
1N/A * under the License.
1N/A *
1N/A * The Original Code is SNIA HBA API general header file
1N/A *
1N/A * The Initial Developer of the Original Code is:
1N/A * Benjamin F. Kuo, Troika Networks, Inc. (benk@troikanetworks.com)
1N/A *
1N/A * Contributor(s):
1N/A * Tuan Lam, QLogic Corp. (t_lam@qlc.com)
1N/A * Dan Willie, Emulex Corp. (Dan.Willie@emulex.com)
1N/A * Dixon Hutchinson, Legato Systems, Inc. (dhutchin@legato.com)
1N/A * David Dillard, VERITAS Software Corp. (david.dillard@veritas.com)
1N/A *
1N/A * ****************************************************************************
1N/A *
1N/A * Changes:
1N/A * 12/12/2001 Original revision, code split out of hbaapi.h
1N/A * (for other changes... see the CVS logs)
1N/A * ****************************************************************************
1N/A */
1N/A/*
1N/A * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
1N/A * Use is subject to license terms.
1N/A */
1N/A
1N/A#ifndef _VENDORSMHBAAPI_H_
1N/A#define _VENDORSMHBAAPI_H_
1N/A
1N/A#ifdef __cplusplus
1N/Aextern "C" {
1N/A#endif
1N/A
1N/A#include <vendorhbaapi.h>
1N/A
1N/A/* SM-HBA-2 6.9.2 Function Prototypes */
1N/Atypedef HBA_UINT32 (* SMHBAGetVersionFunc)();
1N/Atypedef HBA_UINT32 (* SMHBAGetWrapperLibraryAttributesFunc)
1N/A (HBA_UINT32, SMHBA_LIBRARYATTRIBUTES *);
1N/Atypedef HBA_UINT32 (* SMHBAGetVendorLibraryAttributesFunc)
1N/A (SMHBA_LIBRARYATTRIBUTES *);
1N/Atypedef HBA_STATUS (* SMHBAGetAdapterAttributesFunc)
1N/A (HBA_HANDLE, SMHBA_ADAPTERATTRIBUTES *);
1N/Atypedef HBA_STATUS (* SMHBAGetNumberOfPortsFunc)
1N/A (HBA_HANDLE, HBA_UINT32 *);
1N/Atypedef HBA_STATUS (* SMHBAGetPortTypeFunc)
1N/A (HBA_HANDLE, HBA_UINT32, HBA_PORTTYPE *);
1N/Atypedef HBA_STATUS (* SMHBAGetAdapterPortAttributesFunc)
1N/A (HBA_HANDLE, HBA_UINT32, SMHBA_PORTATTRIBUTES *);
1N/Atypedef HBA_STATUS (* SMHBAGetDiscoveredPortAttributesFunc)
1N/A (HBA_HANDLE, HBA_UINT32, HBA_UINT32, SMHBA_PORTATTRIBUTES *);
1N/Atypedef HBA_STATUS (* SMHBAGetPortAttributesByWWNFunc)
1N/A (HBA_HANDLE, HBA_WWN, HBA_WWN, SMHBA_PORTATTRIBUTES *);
1N/Atypedef HBA_STATUS (* SMHBAGetFCPhyAttributesFunc)
1N/A (HBA_HANDLE, HBA_UINT32, HBA_UINT32, SMHBA_FC_PHY *);
1N/Atypedef HBA_STATUS (* SMHBAGetSASPhyAttributesFunc)
1N/A (HBA_HANDLE, HBA_UINT32, HBA_UINT32, SMHBA_SAS_PHY *);
1N/Atypedef HBA_STATUS (* SMHBAGetProtocolStatisticsFunc)
1N/A (HBA_HANDLE, HBA_UINT32, HBA_UINT32, SMHBA_PROTOCOLSTATISTICS *);
1N/Atypedef HBA_STATUS (* SMHBAGetPhyStatisticsFunc)
1N/A (HBA_HANDLE, HBA_UINT32, HBA_UINT32, SMHBA_PHYSTATISTICS *);
1N/Atypedef HBA_STATUS (* SMHBASendTESTFunc)
1N/A (HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_UINT32, void *, HBA_UINT32);
1N/Atypedef HBA_STATUS (* SMHBASendECHOFunc)
1N/A (HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_UINT32, void *, HBA_UINT32,
1N/A void *, HBA_UINT32 *);
1N/Atypedef HBA_STATUS (* SMHBASendSMPPassThruFunc)
1N/A (HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_WWN, void *, HBA_UINT32, void *,
1N/A HBA_UINT32 *);
1N/Atypedef HBA_STATUS (* SMHBAGetBindingCapabilityFunc)
1N/A (HBA_HANDLE, HBA_WWN, HBA_WWN, SMHBA_BIND_CAPABILITY *);
1N/Atypedef HBA_STATUS (* SMHBAGetBindingSupportFunc)
1N/A (HBA_HANDLE, HBA_WWN, HBA_WWN, SMHBA_BIND_CAPABILITY *);
1N/Atypedef HBA_STATUS (* SMHBASetBindingSupportFunc)
1N/A (HBA_HANDLE, HBA_WWN, HBA_WWN, SMHBA_BIND_CAPABILITY);
1N/Atypedef HBA_STATUS (* SMHBAGetTargetMappingFunc)
1N/A (HBA_HANDLE, HBA_WWN, HBA_WWN, SMHBA_TARGETMAPPING *);
1N/Atypedef HBA_STATUS (* SMHBAGetPersistentBindingFunc)
1N/A (HBA_HANDLE, HBA_WWN, HBA_WWN, SMHBA_BINDING *);
1N/Atypedef HBA_STATUS (* SMHBASetPersistentBindingFunc)
1N/A (HBA_HANDLE, HBA_WWN, HBA_WWN, const SMHBA_BINDING *);
1N/Atypedef HBA_STATUS (* SMHBARemovePersistentBindingFunc)
1N/A (HBA_HANDLE, HBA_WWN, HBA_WWN, const SMHBA_BINDING *);
1N/Atypedef HBA_STATUS (* SMHBARemoveAllPersistentBindingsFunc)
1N/A (HBA_HANDLE, HBA_WWN, HBA_WWN);
1N/Atypedef HBA_STATUS (* SMHBAGetLUNStatisticsFunc)
1N/A (HBA_HANDLE, const HBA_SCSIID *, SMHBA_PROTOCOLSTATISTICS *);
1N/Atypedef HBA_STATUS (* SMHBARegisterForAdapterAddEventsFunc)
1N/A (void (*)(void *, HBA_WWN, HBA_UINT32), void *, HBA_CALLBACKHANDLE *);
1N/Atypedef HBA_STATUS (* SMHBARegisterForAdapterEventsFunc)
1N/A (void (*)(void *, HBA_WWN, HBA_UINT32),
1N/A void *, HBA_HANDLE, HBA_CALLBACKHANDLE *);
1N/Atypedef HBA_STATUS (* SMHBARegisterForAdapterPortEventsFunc)
1N/A (void (*)(void *, HBA_WWN, HBA_UINT32, HBA_UINT32),
1N/A void *, HBA_HANDLE, HBA_WWN, HBA_UINT32, HBA_CALLBACKHANDLE *);
1N/Atypedef HBA_STATUS (* SMHBARegisterForAdapterPortStatEventsFunc)
1N/A (void (*)(void *, HBA_WWN, HBA_UINT32, HBA_UINT32),
1N/A void *, HBA_HANDLE, HBA_WWN, HBA_UINT32, SMHBA_PROTOCOLSTATISTICS,
1N/A HBA_UINT32, HBA_CALLBACKHANDLE *);
1N/Atypedef HBA_STATUS (* SMHBARegisterForAdapterPhyStatEventsFunc)
1N/A (void (*)(void *, HBA_WWN, HBA_UINT32, HBA_UINT32),
1N/A void *, HBA_HANDLE, HBA_WWN, HBA_UINT32, SMHBA_PHYSTATISTICS,
1N/A HBA_UINT32, HBA_CALLBACKHANDLE *);
1N/Atypedef HBA_STATUS (* SMHBARegisterForTargetEventsFunc)
1N/A (void (*)(void *, HBA_WWN, HBA_WWN, HBA_WWN, HBA_UINT32),
1N/A void *, HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_WWN,
1N/A HBA_CALLBACKHANDLE *, HBA_UINT32);
1N/Atypedef HBA_STATUS (* SMHBAScsiInquiryFunc)
1N/A (HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_WWN, SMHBA_SCSILUN, HBA_UINT8,
1N/A HBA_UINT8, void *, HBA_UINT32 *, HBA_UINT8 *, void *, HBA_UINT32 *);
1N/Atypedef HBA_STATUS (* SMHBAScsiReportLUNsFunc)
1N/A (HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_WWN, void *, HBA_UINT32 *,
1N/A HBA_UINT8 *, void *, HBA_UINT32 *);
1N/Atypedef HBA_STATUS (* SMHBAScsiReadCapacityFunc)
1N/A (HBA_HANDLE, HBA_WWN, HBA_WWN, HBA_WWN, SMHBA_SCSILUN, void *,
1N/A HBA_UINT32 *, HBA_UINT8 *, void *, HBA_UINT32 *);
1N/A
1N/A/* SM-HBA-2 6.9.3 Entry Point Data Declarations */
1N/Atypedef struct SMHBA_EntryPoints {
1N/A SMHBAGetVersionFunc GetVersionHandler;
1N/A HBALoadLibraryFunc LoadLibraryHandler;
1N/A HBAFreeLibraryFunc FreeLibraryHandler;
1N/A HBAGetNumberOfAdaptersFunc GetNumberOfAdaptersHandler;
1N/A HBARefreshInformationFunc RefreshInformationHandler;
1N/A SMHBAGetVendorLibraryAttributesFunc
1N/A GetVendorLibraryAttributesHandler;
1N/A HBAGetAdapterNameFunc GetAdapterNameHandler;
1N/A HBAOpenAdapterFunc OpenAdapterHandler;
1N/A HBACloseAdapterFunc CloseAdapterHandler;
1N/A SMHBAGetAdapterAttributesFunc GetAdapterAttributesHandler;
1N/A SMHBAGetNumberOfPortsFunc GetNumberOfPortsHandler;
1N/A SMHBAGetPortTypeFunc GetPortTypeHandler;
1N/A SMHBAGetAdapterPortAttributesFunc
1N/A GetAdapterPortAttributesHandler;
1N/A SMHBAGetDiscoveredPortAttributesFunc
1N/A GetDiscoveredPortAttributesHandler;
1N/A SMHBAGetPortAttributesByWWNFunc GetPortAttributesByWWNHandler;
1N/A SMHBAGetFCPhyAttributesFunc GetFCPhyAttributesHandler;
1N/A SMHBAGetSASPhyAttributesFunc GetSASPhyAttributesHandler;
1N/A SMHBAGetProtocolStatisticsFunc GetProtocolStatisticsHandler;
1N/A SMHBAGetPhyStatisticsFunc GetPhyStatisticsHandler;
1N/A HBASendCTPassThruV2Func SendCTPassThruV2Handler;
1N/A HBASetRNIDMgmtInfoFunc SetRNIDMgmtInfoHandler;
1N/A HBAGetRNIDMgmtInfoFunc GetRNIDMgmtInfoHandler;
1N/A HBASendRNIDV2Func SendRNIDV2Handler;
1N/A HBASendRPLFunc SendRPLHandler;
1N/A HBASendRPSFunc SendRPSHandler;
1N/A HBASendSRLFunc SendSRLHandler;
1N/A HBASendLIRRFunc SendLIRRHandler;
1N/A HBASendRLSFunc SendRLSHandler;
1N/A SMHBASendTESTFunc SendTESTHandler;
1N/A SMHBASendECHOFunc SendECHOHandler;
1N/A SMHBASendSMPPassThruFunc SendSMPPassThruHandler;
1N/A SMHBAGetBindingCapabilityFunc GetBindingCapabilityHandler;
1N/A SMHBAGetBindingSupportFunc GetBindingSupportHandler;
1N/A SMHBASetBindingSupportFunc SetBindingSupportHandler;
1N/A SMHBAGetTargetMappingFunc GetTargetMappingHandler;
1N/A SMHBAGetPersistentBindingFunc GetPersistentBindingHandler;
1N/A SMHBASetPersistentBindingFunc SetPersistentBindingHandler;
1N/A SMHBARemovePersistentBindingFunc RemovePersistentBindingHandler;
1N/A SMHBARemoveAllPersistentBindingsFunc
1N/A RemoveAllPersistentBindingsHandler;
1N/A SMHBAGetLUNStatisticsFunc GetLUNStatisticsHandler;
1N/A SMHBAScsiInquiryFunc ScsiInquiryHandler;
1N/A SMHBAScsiReportLUNsFunc ScsiReportLUNsHandler;
1N/A SMHBAScsiReadCapacityFunc ScsiReadCapacityHandler;
1N/A SMHBARegisterForAdapterAddEventsFunc
1N/A RegisterForAdapterAddEventsHandler;
1N/A SMHBARegisterForAdapterEventsFunc RegisterForAdapterEventsHandler;
1N/A SMHBARegisterForAdapterPortEventsFunc
1N/A RegisterForAdapterPortEventsHandler;
1N/A SMHBARegisterForAdapterPortStatEventsFunc
1N/A RegisterForAdapterPortStatEventsHandler;
1N/A SMHBARegisterForAdapterPhyStatEventsFunc
1N/A RegisterForAdapterPhyStatEventsHandler;
1N/A SMHBARegisterForTargetEventsFunc RegisterForTargetEventsHandler;
1N/A HBARegisterForLinkEventsFunc RegisterForLinkEventsHandler;
1N/A HBARemoveCallbackFunc RemoveCallbackHandler;
1N/A} SMHBA_ENTRYPOINTS, *PSMHBA_ENTRYPOINTS;
1N/A
1N/Atypedef HBA_UINT32 (* SMHBARegisterLibraryFunc)(SMHBA_ENTRYPOINTS *);
1N/A
1N/AHBA_STATUS SMHBA_RegisterLibrary(
1N/A SMHBA_ENTRYPOINTS *functionTable
1N/A);
1N/A
1N/A#ifdef __cplusplus
1N/A}
1N/A#endif
1N/A
1N/A#endif /* _VENDORSMHBAAPI_H_ */