1*10652SHyon.Kim@Sun.COM /* 2*10652SHyon.Kim@Sun.COM * **************************************************************************** 3*10652SHyon.Kim@Sun.COM * 4*10652SHyon.Kim@Sun.COM * Description 5*10652SHyon.Kim@Sun.COM * smhbaapi.h - general header file for client 6*10652SHyon.Kim@Sun.COM * and library developers 7*10652SHyon.Kim@Sun.COM * 8*10652SHyon.Kim@Sun.COM * License: 9*10652SHyon.Kim@Sun.COM * The contents of this file are subject to the SNIA Public License 10*10652SHyon.Kim@Sun.COM * Version 1.0 (the "License"); you may not use this file except in 11*10652SHyon.Kim@Sun.COM * compliance with the License. You may obtain a copy of the License at 12*10652SHyon.Kim@Sun.COM * 13*10652SHyon.Kim@Sun.COM * /http://www.snia.org/English/Resources/Code/OpenSource.html 14*10652SHyon.Kim@Sun.COM * 15*10652SHyon.Kim@Sun.COM * Software distributed under the License is distributed on an "AS IS" 16*10652SHyon.Kim@Sun.COM * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See 17*10652SHyon.Kim@Sun.COM * the License for the specific language governing rights and limitations 18*10652SHyon.Kim@Sun.COM * under the License. 19*10652SHyon.Kim@Sun.COM * 20*10652SHyon.Kim@Sun.COM * The Original Code for SM-HBA API general header file 21*10652SHyon.Kim@Sun.COM * 22*10652SHyon.Kim@Sun.COM * The Initial Developer of the Original Code is: 23*10652SHyon.Kim@Sun.COM * Benjamin F. Kuo, Troika Networks, Inc. (benk@troikanetworks.com) 24*10652SHyon.Kim@Sun.COM * 25*10652SHyon.Kim@Sun.COM * Contributor(s): 26*10652SHyon.Kim@Sun.COM * Tuan Lam, QLogic Corp. (t_lam@qlc.com) 27*10652SHyon.Kim@Sun.COM * Dan Willie, Emulex Corp. (Dan.Willie@emulex.com) 28*10652SHyon.Kim@Sun.COM * Dixon Hutchinson, Legato Systems, Inc. (dhutchin@legato.com) 29*10652SHyon.Kim@Sun.COM * David Dillard, VERITAS Software Corp. (david.dillard@veritas.com) 30*10652SHyon.Kim@Sun.COM * 31*10652SHyon.Kim@Sun.COM * **************************************************************************** 32*10652SHyon.Kim@Sun.COM * 33*10652SHyon.Kim@Sun.COM * Adding on SM-HBA related definitions. 34*10652SHyon.Kim@Sun.COM * 35*10652SHyon.Kim@Sun.COM * - Includes the original HBA API header. 36*10652SHyon.Kim@Sun.COM * - SMHBA_* interfaces and structures are defined. 37*10652SHyon.Kim@Sun.COM * 38*10652SHyon.Kim@Sun.COM * **************************************************************************** 39*10652SHyon.Kim@Sun.COM */ 40*10652SHyon.Kim@Sun.COM /* 41*10652SHyon.Kim@Sun.COM * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 42*10652SHyon.Kim@Sun.COM * Use is subject to license terms. 43*10652SHyon.Kim@Sun.COM */ 44*10652SHyon.Kim@Sun.COM 45*10652SHyon.Kim@Sun.COM #ifndef _SMHBAAPI_H_ 46*10652SHyon.Kim@Sun.COM #define _SMHBAAPI_H_ 47*10652SHyon.Kim@Sun.COM 48*10652SHyon.Kim@Sun.COM #ifdef __cplusplus 49*10652SHyon.Kim@Sun.COM extern "C" { 50*10652SHyon.Kim@Sun.COM #endif 51*10652SHyon.Kim@Sun.COM 52*10652SHyon.Kim@Sun.COM #include <hbaapi.h> 53*10652SHyon.Kim@Sun.COM 54*10652SHyon.Kim@Sun.COM /* Library version string */ 55*10652SHyon.Kim@Sun.COM #define SMHBA_LIBVERSION 1 56*10652SHyon.Kim@Sun.COM 57*10652SHyon.Kim@Sun.COM /* 58*10652SHyon.Kim@Sun.COM * A SCSI function was requested at a time when issuing the requested command 59*10652SHyon.Kim@Sun.COM * would cause a SCSI overlapped command condition (see SAM-3) 60*10652SHyon.Kim@Sun.COM */ 61*10652SHyon.Kim@Sun.COM #define HBA_STATUS_ERROR_TARGET_BUSY 30 62*10652SHyon.Kim@Sun.COM /* SM-HBA 6.2 Status Return Values */ 63*10652SHyon.Kim@Sun.COM /* A call was made to HBA_FreeLibrary when no library was loaded */ 64*10652SHyon.Kim@Sun.COM #define HBA_STATUS_ERROR_NOT_LOADED 31 65*10652SHyon.Kim@Sun.COM /* A call was made to HBA_LoadLibrary when a library was already loaded */ 66*10652SHyon.Kim@Sun.COM #define HBA_STATUS_ERROR_ALREADY_LOADED 32 67*10652SHyon.Kim@Sun.COM /* 68*10652SHyon.Kim@Sun.COM * The Address Identifier specified in a call to HBA_SendRNIDV2 69*10652SHyon.Kim@Sun.COM * violates access control rules * for that call. 70*10652SHyon.Kim@Sun.COM */ 71*10652SHyon.Kim@Sun.COM #define HBA_STATUS_ERROR_ILLEGAL_FCID 33 72*10652SHyon.Kim@Sun.COM #define HBA_STATUS_ERROR_NOT_ASCSIDEVICE 34 73*10652SHyon.Kim@Sun.COM #define HBA_STATUS_ERROR_INVALID_PROTOCOL_TYPE 35 74*10652SHyon.Kim@Sun.COM #define HBA_STATUS_ERROR_BAD_EVENT_TYPE 36 75*10652SHyon.Kim@Sun.COM 76*10652SHyon.Kim@Sun.COM 77*10652SHyon.Kim@Sun.COM /* SM-HBA 6.4.1.1 Port Type */ 78*10652SHyon.Kim@Sun.COM #define HBA_PORTTYPE_SASDEVICE 30 /* SAS (SSP or STP) */ 79*10652SHyon.Kim@Sun.COM #define HBA_PORTTYPE_SATADEVICE 31 /* SATA Device, i.e. Direct Attach SATA */ 80*10652SHyon.Kim@Sun.COM #define HBA_PORTTYPE_SASEXPANDER 32 /* SAS Expander */ 81*10652SHyon.Kim@Sun.COM 82*10652SHyon.Kim@Sun.COM /* SM-HBA 6.4.1.2 Port State */ 83*10652SHyon.Kim@Sun.COM #define HBA_PORTSTATE_DEGRADED 9 /* Degraded, but Operational mode */ 84*10652SHyon.Kim@Sun.COM 85*10652SHyon.Kim@Sun.COM /* SM-HBA 6.11.1.3 Port Speed */ 86*10652SHyon.Kim@Sun.COM #define HBA_PORTSPEED_4GBIT 8 /* 4 GBit / sec */ 87*10652SHyon.Kim@Sun.COM 88*10652SHyon.Kim@Sun.COM /* SM-HBA 6.1 Basic Attributes Types */ 89*10652SHyon.Kim@Sun.COM typedef struct SMHBA_scsilun {HBA_UINT8 lun[8]; } 90*10652SHyon.Kim@Sun.COM SMHBA_SCSILUN, *PSMHBA_SCSILUN; 91*10652SHyon.Kim@Sun.COM /* A byte array representation of a SCSI */ 92*10652SHyon.Kim@Sun.COM /* LUN (see SAM-4). The first byte of the */ 93*10652SHyon.Kim@Sun.COM /* LUN shall be in the first byte of the */ 94*10652SHyon.Kim@Sun.COM /* array, and successive bytes of the SCSI */ 95*10652SHyon.Kim@Sun.COM /* LUN shall be in successive bytes of the */ 96*10652SHyon.Kim@Sun.COM /* array. */ 97*10652SHyon.Kim@Sun.COM typedef unsigned long HBA_SCSILUN; 98*10652SHyon.Kim@Sun.COM /* A 64 bit unsigned integer representation */ 99*10652SHyon.Kim@Sun.COM /* of a SCSI LUN (see SAM-4); */ 100*10652SHyon.Kim@Sun.COM /* may use OS-specific typedef. */ 101*10652SHyon.Kim@Sun.COM /* Byte zero of a SCSI LUN shall be stored */ 102*10652SHyon.Kim@Sun.COM /* in the lowest memory address */ 103*10652SHyon.Kim@Sun.COM /* of the unsigned 64-bit integer value, */ 104*10652SHyon.Kim@Sun.COM /* and successive bytes of the SCSI LUN */ 105*10652SHyon.Kim@Sun.COM /* shall be stored in successively higher memory */ 106*10652SHyon.Kim@Sun.COM /* addresses of the unsigned 64-bit intege value. */ 107*10652SHyon.Kim@Sun.COM /* Note that computers often do not store */ 108*10652SHyon.Kim@Sun.COM /* a byte array in memory in the same order */ 109*10652SHyon.Kim@Sun.COM /* as they store an integer. */ 110*10652SHyon.Kim@Sun.COM /* This standard requires storage as a byte array */ 111*10652SHyon.Kim@Sun.COM 112*10652SHyon.Kim@Sun.COM 113*10652SHyon.Kim@Sun.COM /* SM-HBA 6.3.1 Generic Adapter Attribute */ 114*10652SHyon.Kim@Sun.COM typedef struct SMHBA_AdapterAttributes { 115*10652SHyon.Kim@Sun.COM char Manufacturer[64]; 116*10652SHyon.Kim@Sun.COM char SerialNumber[64]; 117*10652SHyon.Kim@Sun.COM char Model[256]; 118*10652SHyon.Kim@Sun.COM char ModelDescription[256]; 119*10652SHyon.Kim@Sun.COM char HardwareVersion[256]; 120*10652SHyon.Kim@Sun.COM char DriverVersion[256]; 121*10652SHyon.Kim@Sun.COM char OptionROMVersion[256]; 122*10652SHyon.Kim@Sun.COM char FirmwareVersion[256]; 123*10652SHyon.Kim@Sun.COM HBA_UINT32 VendorSpecificID; 124*10652SHyon.Kim@Sun.COM char DriverName[256]; 125*10652SHyon.Kim@Sun.COM char HBASymbolicName[256]; 126*10652SHyon.Kim@Sun.COM char RedundantOptionROMVersion[256]; 127*10652SHyon.Kim@Sun.COM char RedundantFirmwareVersion[256]; 128*10652SHyon.Kim@Sun.COM } SMHBA_ADAPTERATTRIBUTES, *PSMHBA_ADAPTERATTRIBUTES; 129*10652SHyon.Kim@Sun.COM 130*10652SHyon.Kim@Sun.COM /* SM-HBA 6.4.6 SMHBA FC Port Attributes */ 131*10652SHyon.Kim@Sun.COM typedef struct SMHBA_FC_Port { 132*10652SHyon.Kim@Sun.COM HBA_WWN NodeWWN; 133*10652SHyon.Kim@Sun.COM HBA_WWN PortWWN; 134*10652SHyon.Kim@Sun.COM HBA_UINT32 FcId; 135*10652SHyon.Kim@Sun.COM HBA_COS PortSupportedClassofService; 136*10652SHyon.Kim@Sun.COM HBA_FC4TYPES PortSupportedFc4Types; 137*10652SHyon.Kim@Sun.COM HBA_FC4TYPES PortActiveFc4Types; 138*10652SHyon.Kim@Sun.COM HBA_WWN FabricName; 139*10652SHyon.Kim@Sun.COM char PortSymbolicName[256]; 140*10652SHyon.Kim@Sun.COM HBA_UINT32 NumberofDiscoveredPorts; 141*10652SHyon.Kim@Sun.COM HBA_UINT8 NumberofPhys; 142*10652SHyon.Kim@Sun.COM }SMHBA_FC_PORT, *PSMHBA_FC_PORT; 143*10652SHyon.Kim@Sun.COM 144*10652SHyon.Kim@Sun.COM /* SM-HBA 6.4.7.1 HBA_SASPortProtocol */ 145*10652SHyon.Kim@Sun.COM typedef HBA_UINT32 HBA_SASPORTPROTOCOL; 146*10652SHyon.Kim@Sun.COM #define HBA_SASPORTPROTOCOL_SSP 1 /* Serial SCSI Protocol Port */ 147*10652SHyon.Kim@Sun.COM #define HBA_SASPORTPROTOCOL_STP 2 /* Serial ATA Tunneling Protocol Port */ 148*10652SHyon.Kim@Sun.COM #define HBA_SASPORTPROTOCOL_SMP 4 /* Serial Management Protocol Port */ 149*10652SHyon.Kim@Sun.COM /* SATA Device, Direct Attached or anywhere in the domain. */ 150*10652SHyon.Kim@Sun.COM #define HBA_SASPORTPROTOCOL_SATA 8 151*10652SHyon.Kim@Sun.COM 152*10652SHyon.Kim@Sun.COM /* SM-HBA 6.4.8 SMHBA SAS Port Attributes */ 153*10652SHyon.Kim@Sun.COM typedef struct SMHBA_SAS_Port { 154*10652SHyon.Kim@Sun.COM HBA_SASPORTPROTOCOL PortProtocol; 155*10652SHyon.Kim@Sun.COM HBA_WWN LocalSASAddress; 156*10652SHyon.Kim@Sun.COM HBA_WWN AttachedSASAddress; 157*10652SHyon.Kim@Sun.COM HBA_UINT32 NumberofDiscoveredPorts; 158*10652SHyon.Kim@Sun.COM HBA_UINT32 NumberofPhys; 159*10652SHyon.Kim@Sun.COM } SMHBA_SAS_PORT, *PSMHBA_SAS_PORT; 160*10652SHyon.Kim@Sun.COM 161*10652SHyon.Kim@Sun.COM /* SM-HBA 6.4.2 Generic Port Attributes */ 162*10652SHyon.Kim@Sun.COM typedef union SMHBA_Port { 163*10652SHyon.Kim@Sun.COM SMHBA_FC_PORT *FCPort; 164*10652SHyon.Kim@Sun.COM SMHBA_SAS_PORT *SASPort; 165*10652SHyon.Kim@Sun.COM } SMHBA_PORT, *PSMHBA_PORT; 166*10652SHyon.Kim@Sun.COM 167*10652SHyon.Kim@Sun.COM typedef struct SMHBA_PortAttributes { 168*10652SHyon.Kim@Sun.COM HBA_PORTTYPE PortType; 169*10652SHyon.Kim@Sun.COM HBA_PORTSTATE PortState; 170*10652SHyon.Kim@Sun.COM char OSDeviceName[256]; 171*10652SHyon.Kim@Sun.COM SMHBA_PORT PortSpecificAttribute; 172*10652SHyon.Kim@Sun.COM } SMHBA_PORTATTRIBUTES, *PSMHBA_PORTATTRIBUTES; 173*10652SHyon.Kim@Sun.COM 174*10652SHyon.Kim@Sun.COM /* SM-HBA 6.5.1.1 FC Phy Speed */ 175*10652SHyon.Kim@Sun.COM typedef HBA_UINT32 HBA_FCPHYSPEED; 176*10652SHyon.Kim@Sun.COM /* Unknown transceiver incapable of reporting */ 177*10652SHyon.Kim@Sun.COM #define HBA_FCSPEED_UNKNOWN 0 178*10652SHyon.Kim@Sun.COM /* 179*10652SHyon.Kim@Sun.COM * The following are redundantly defined in SM-HBA 6.11.1.3 Port Speed. 180*10652SHyon.Kim@Sun.COM * #define HBA_PORTSPEED_1GBIT 1 1 GBit/sec 181*10652SHyon.Kim@Sun.COM * #define HBA_PORTSPEED_2GBIT 2 2 GBit/sec 182*10652SHyon.Kim@Sun.COM * #define HBA_PORTSPEED_10GBIT 4 10 GBit/sec 183*10652SHyon.Kim@Sun.COM * #define HBA_PORTSPEED_4GBIT 8 4 GBit/sec 184*10652SHyon.Kim@Sun.COM */ 185*10652SHyon.Kim@Sun.COM #define HBA_FCPHYSPEED_8GBIT 16 /* 8 GBit/sec */ 186*10652SHyon.Kim@Sun.COM #define HBA_FCPHYSPEED_16GBIT 32 /* 16 GBit/sec */ 187*10652SHyon.Kim@Sun.COM /* 188*10652SHyon.Kim@Sun.COM * The following conflicts with HBA API 189*10652SHyon.Kim@Sun.COM * #define HBA_PORTSPEED_NOT_NEGOTIATED (1<<15) Speed not established 190*10652SHyon.Kim@Sun.COM */ 191*10652SHyon.Kim@Sun.COM 192*10652SHyon.Kim@Sun.COM /* SM-HBA 6.6.1.2 SM-HBA FC Phy Type */ 193*10652SHyon.Kim@Sun.COM typedef HBA_UINT8 HBA_FCPHYTYPE; 194*10652SHyon.Kim@Sun.COM #define HBA_FCPHYTYPE_UNKNOWN 1 /* Unknown Phy type */ 195*10652SHyon.Kim@Sun.COM #define HBA_FCPHYTYPE_OPTICAL 2 /* Optical Phy */ 196*10652SHyon.Kim@Sun.COM #define HBA_FCPHYTYPE_COPPER 4 /* Copper Phy */ 197*10652SHyon.Kim@Sun.COM 198*10652SHyon.Kim@Sun.COM /* SM-HBA 6.5.2 SM-HBA FC Phy Attributes */ 199*10652SHyon.Kim@Sun.COM typedef struct SMHBA_FC_Phy { 200*10652SHyon.Kim@Sun.COM HBA_FCPHYSPEED PhySupportedSpeed; /* PhySupportedSpeed */ 201*10652SHyon.Kim@Sun.COM HBA_FCPHYSPEED PhySpeed; /* PhySpeed */ 202*10652SHyon.Kim@Sun.COM HBA_FCPHYTYPE PhyType; 203*10652SHyon.Kim@Sun.COM HBA_UINT32 MaxFrameSize; /* MaxFrameSize */ 204*10652SHyon.Kim@Sun.COM } SMHBA_FC_PHY, *PSMHBA_FC_PHY; 205*10652SHyon.Kim@Sun.COM 206*10652SHyon.Kim@Sun.COM /* SM-HBA 6.5.4 SAS PHY Attribute Data Declaration */ 207*10652SHyon.Kim@Sun.COM typedef HBA_UINT32 HBA_SASPHYSPEED; 208*10652SHyon.Kim@Sun.COM 209*10652SHyon.Kim@Sun.COM #define HBA_SASSTATE_UNKNOWN 0x00 /* Phy is enabled. Speed is unknown */ 210*10652SHyon.Kim@Sun.COM #define HBA_SASSTATE_DISABLED 0x01 /* Phy is disabled. */ 211*10652SHyon.Kim@Sun.COM /* Phy is enabled. But failed speed negotiation. */ 212*10652SHyon.Kim@Sun.COM #define HBA_SASSTATE_FAILED 0x02 213*10652SHyon.Kim@Sun.COM /* 214*10652SHyon.Kim@Sun.COM * Phy is enabled. Detected a SATA device and entered the SATA Spinup hold 215*10652SHyon.Kim@Sun.COM * state. 216*10652SHyon.Kim@Sun.COM */ 217*10652SHyon.Kim@Sun.COM #define HBA_SASSTATE_SATASPINUP 0x03 218*10652SHyon.Kim@Sun.COM /* The phy is attached to a Port Selector (see SATA-2.6). */ 219*10652SHyon.Kim@Sun.COM #define HBA_SASSTATE_SATAPORTSEL 0x04 220*10652SHyon.Kim@Sun.COM #define HBA_SASSPEED_1_5GBIT 0x08 /* 1.5 GBit/sec */ 221*10652SHyon.Kim@Sun.COM #define HBA_SASSPEED_3GBIT 0x09 /* 3 GBit/sec */ 222*10652SHyon.Kim@Sun.COM #define HBA_SASSPEED_6GBIT 0x0a /* 6 GBit/sec */ 223*10652SHyon.Kim@Sun.COM 224*10652SHyon.Kim@Sun.COM /* SM-HBA 6.5.5 SAS Phy Attribute */ 225*10652SHyon.Kim@Sun.COM typedef struct SMHBA_SAS_Phy { 226*10652SHyon.Kim@Sun.COM HBA_UINT8 PhyIdentifier; 227*10652SHyon.Kim@Sun.COM HBA_SASPHYSPEED NegotiatedLinkRate; 228*10652SHyon.Kim@Sun.COM HBA_SASPHYSPEED ProgrammedMinLinkRate; 229*10652SHyon.Kim@Sun.COM HBA_SASPHYSPEED HardwareMinLinkRate; 230*10652SHyon.Kim@Sun.COM HBA_SASPHYSPEED ProgrammedMaxLinkRate; 231*10652SHyon.Kim@Sun.COM HBA_SASPHYSPEED HardwareMaxLinkRate; 232*10652SHyon.Kim@Sun.COM HBA_WWN domainPortWWN; 233*10652SHyon.Kim@Sun.COM } SMHBA_SAS_PHY, *PSMHBA_SAS_PHY; 234*10652SHyon.Kim@Sun.COM 235*10652SHyon.Kim@Sun.COM /* SM-HBA 6.6.1.1 Protocol Statistics Data Declarations */ 236*10652SHyon.Kim@Sun.COM /* Statistical counters for FC-4, SSP, STP, SMP protocols */ 237*10652SHyon.Kim@Sun.COM typedef struct SMHBA_ProtocolStatistics { 238*10652SHyon.Kim@Sun.COM HBA_INT64 SecondsSinceLastReset; 239*10652SHyon.Kim@Sun.COM HBA_INT64 InputRequests; 240*10652SHyon.Kim@Sun.COM HBA_INT64 OutputRequests; 241*10652SHyon.Kim@Sun.COM HBA_INT64 ControlRequests; 242*10652SHyon.Kim@Sun.COM HBA_INT64 InputMegabytes; 243*10652SHyon.Kim@Sun.COM HBA_INT64 OutputMegabytes; 244*10652SHyon.Kim@Sun.COM } SMHBA_PROTOCOLSTATISTICS, *PSMHBA_PROTOCOLSTATISTICS; 245*10652SHyon.Kim@Sun.COM 246*10652SHyon.Kim@Sun.COM /* SM-HBA 6.6.2.1 Port Statistics Data Declarations */ 247*10652SHyon.Kim@Sun.COM typedef struct SMHBA_PortStatistics { 248*10652SHyon.Kim@Sun.COM HBA_INT64 SecondsSinceLastReset; 249*10652SHyon.Kim@Sun.COM HBA_INT64 TxFrames; 250*10652SHyon.Kim@Sun.COM HBA_INT64 TxWords; 251*10652SHyon.Kim@Sun.COM HBA_INT64 RxFrames; 252*10652SHyon.Kim@Sun.COM HBA_INT64 RxWords; 253*10652SHyon.Kim@Sun.COM }SMHBA_PORTSTATISTICS, *PSMHBA_PORTSTATISTICS; 254*10652SHyon.Kim@Sun.COM 255*10652SHyon.Kim@Sun.COM /* SM-HBA 6.6.2.2 SAS Phy Statistics Data Declaration */ 256*10652SHyon.Kim@Sun.COM typedef struct SMHBA_SASPhyStatistics { 257*10652SHyon.Kim@Sun.COM HBA_INT64 SecondsSinceLastReset; 258*10652SHyon.Kim@Sun.COM HBA_INT64 TxFrames; 259*10652SHyon.Kim@Sun.COM HBA_INT64 TxWords; 260*10652SHyon.Kim@Sun.COM HBA_INT64 RxFrames; 261*10652SHyon.Kim@Sun.COM HBA_INT64 RxWords; 262*10652SHyon.Kim@Sun.COM HBA_INT64 InvalidDwordCount; 263*10652SHyon.Kim@Sun.COM HBA_INT64 RunningDisparityErrorCount; 264*10652SHyon.Kim@Sun.COM HBA_INT64 LossofDwordSyncCount; 265*10652SHyon.Kim@Sun.COM HBA_INT64 PhyResetProblemCount; 266*10652SHyon.Kim@Sun.COM } SMHBA_SASPHYSTATISTICS, *PSMHBA_SASPHYSTATISTICS; 267*10652SHyon.Kim@Sun.COM 268*10652SHyon.Kim@Sun.COM /* SM-HBA 6.6.2.4 FC Phy Statistics Data Declaration */ 269*10652SHyon.Kim@Sun.COM /* Statistical counters for FC-0, FC-1, and FC-2 */ 270*10652SHyon.Kim@Sun.COM typedef struct SMHBA_FCPhyStatistics { 271*10652SHyon.Kim@Sun.COM HBA_INT64 SecondsSinceLastReset; 272*10652SHyon.Kim@Sun.COM HBA_INT64 TxFrames; 273*10652SHyon.Kim@Sun.COM HBA_INT64 TxWords; 274*10652SHyon.Kim@Sun.COM HBA_INT64 RxFrames; 275*10652SHyon.Kim@Sun.COM HBA_INT64 RxWords; 276*10652SHyon.Kim@Sun.COM HBA_INT64 LIPCount; 277*10652SHyon.Kim@Sun.COM HBA_INT64 NOSCount; 278*10652SHyon.Kim@Sun.COM HBA_INT64 ErrorFrames; 279*10652SHyon.Kim@Sun.COM HBA_INT64 DumpedFrames; 280*10652SHyon.Kim@Sun.COM HBA_INT64 LinkFailureCount; 281*10652SHyon.Kim@Sun.COM HBA_INT64 LossOfSyncCount; 282*10652SHyon.Kim@Sun.COM HBA_INT64 LossOfSignalCount; 283*10652SHyon.Kim@Sun.COM HBA_INT64 PrimitiveSeqProtocolErrCount; 284*10652SHyon.Kim@Sun.COM HBA_INT64 InvalidTxWordCount; 285*10652SHyon.Kim@Sun.COM HBA_INT64 InvalidCRCCount; 286*10652SHyon.Kim@Sun.COM }SMHBA_FCPHYSTATISTICS, *PSMHBA_FCPHYSTATISTICS; 287*10652SHyon.Kim@Sun.COM 288*10652SHyon.Kim@Sun.COM /* SM-HBA 6.6.2.1 Phy Statistics Data Declaration */ 289*10652SHyon.Kim@Sun.COM typedef union SMHBA_PhyStatistics { 290*10652SHyon.Kim@Sun.COM SMHBA_SASPHYSTATISTICS *SASPhyStatistics; 291*10652SHyon.Kim@Sun.COM SMHBA_FCPHYSTATISTICS *FCPhyStatistics; 292*10652SHyon.Kim@Sun.COM } SMHBA_PHYSTATISTICS, *PSMHBA_PHYSTATISTICS; 293*10652SHyon.Kim@Sun.COM 294*10652SHyon.Kim@Sun.COM /* SM-HBA 6.7.1.1 SMHBA_BIND_CAPABILITY */ 295*10652SHyon.Kim@Sun.COM typedef HBA_UINT32 SMHBA_BIND_CAPABILITY; 296*10652SHyon.Kim@Sun.COM #define SMHBA_CAN_BIND_TO_WWPN 0x0001 297*10652SHyon.Kim@Sun.COM #define SMHBA_CAN_BIND_TO_LUID 0x0002 298*10652SHyon.Kim@Sun.COM #define SMHBA_CAN_BIND_ANY_LUNS 0x0400 299*10652SHyon.Kim@Sun.COM #define SMHBA_CAN_BIND_AUTOMAP 0x0800 300*10652SHyon.Kim@Sun.COM 301*10652SHyon.Kim@Sun.COM /* SM-HBA 6.7.1.2 SMHBA_BIND_TYPE */ 302*10652SHyon.Kim@Sun.COM typedef HBA_UINT32 SMHBA_BIND_TYPE; 303*10652SHyon.Kim@Sun.COM #define SMHBA_BIND_TO_WWPN 0x0001 304*10652SHyon.Kim@Sun.COM #define SMHBA_BIND_TO_LUID 0x0002 305*10652SHyon.Kim@Sun.COM 306*10652SHyon.Kim@Sun.COM /* SM-HBA 6.7.1.3 SMHBA_ScsiId */ 307*10652SHyon.Kim@Sun.COM typedef struct SMHBA_ScsiId { 308*10652SHyon.Kim@Sun.COM char OSDeviceName[256]; 309*10652SHyon.Kim@Sun.COM HBA_UINT32 ScsiBusNumber; 310*10652SHyon.Kim@Sun.COM HBA_UINT32 ScsiTargetNumber; 311*10652SHyon.Kim@Sun.COM HBA_UINT32 ScsiOSLun; 312*10652SHyon.Kim@Sun.COM } SMHBA_SCSIID, *PSMHBA_SCSIID; 313*10652SHyon.Kim@Sun.COM 314*10652SHyon.Kim@Sun.COM /* SM-HBA 6.7.1.4 SMHBA_LUID */ 315*10652SHyon.Kim@Sun.COM typedef struct SMHBA_LUID { 316*10652SHyon.Kim@Sun.COM char buffer[256]; 317*10652SHyon.Kim@Sun.COM } SMHBA_LUID, *PSMHBA_LUID; 318*10652SHyon.Kim@Sun.COM 319*10652SHyon.Kim@Sun.COM /* SM-HBA 6.7.1.5 SMHBA_PORTLUN */ 320*10652SHyon.Kim@Sun.COM typedef struct SMHBA_PORTLUN { 321*10652SHyon.Kim@Sun.COM HBA_WWN PortWWN; 322*10652SHyon.Kim@Sun.COM HBA_WWN domainPortWWN; 323*10652SHyon.Kim@Sun.COM SMHBA_SCSILUN TargetLun; 324*10652SHyon.Kim@Sun.COM } SMHBA_PORTLUN, *PSMHBA_PORTLUN; 325*10652SHyon.Kim@Sun.COM 326*10652SHyon.Kim@Sun.COM /* SM-HBA 6.7.1.6 Composite types */ 327*10652SHyon.Kim@Sun.COM typedef struct SMHBA_ScsiEntry { 328*10652SHyon.Kim@Sun.COM SMHBA_SCSIID ScsiId; 329*10652SHyon.Kim@Sun.COM SMHBA_PORTLUN PortLun; 330*10652SHyon.Kim@Sun.COM SMHBA_LUID LUID; 331*10652SHyon.Kim@Sun.COM } SMHBA_SCSIENTRY, *PSMHBA_SCSIENTRY; 332*10652SHyon.Kim@Sun.COM 333*10652SHyon.Kim@Sun.COM typedef struct SMHBA_TargetMapping { 334*10652SHyon.Kim@Sun.COM HBA_UINT32 NumberOfEntries; 335*10652SHyon.Kim@Sun.COM SMHBA_SCSIENTRY entry[1]; /* Variable length array */ 336*10652SHyon.Kim@Sun.COM } SMHBA_TARGETMAPPING, *PSMHBA_TARGETMAPPING; 337*10652SHyon.Kim@Sun.COM 338*10652SHyon.Kim@Sun.COM typedef struct SMHBA_BindingEntry { 339*10652SHyon.Kim@Sun.COM SMHBA_BIND_TYPE type; 340*10652SHyon.Kim@Sun.COM SMHBA_SCSIID ScsiId; 341*10652SHyon.Kim@Sun.COM SMHBA_PORTLUN PortLun; 342*10652SHyon.Kim@Sun.COM SMHBA_LUID LUID; 343*10652SHyon.Kim@Sun.COM HBA_STATUS Status; 344*10652SHyon.Kim@Sun.COM } SMHBA_BINDINGENTRY, *PSMHBA_BINDINGENTRY; 345*10652SHyon.Kim@Sun.COM 346*10652SHyon.Kim@Sun.COM typedef struct SMHBA_Binding { 347*10652SHyon.Kim@Sun.COM HBA_UINT32 NumberOfEntries; 348*10652SHyon.Kim@Sun.COM SMHBA_BINDINGENTRY entry[1]; /* Variable length array */ 349*10652SHyon.Kim@Sun.COM } SMHBA_BINDING, *PSMHBA_BINDING; 350*10652SHyon.Kim@Sun.COM 351*10652SHyon.Kim@Sun.COM /* SM-HBA 6.9.5 Library Attribute Data Declarations */ 352*10652SHyon.Kim@Sun.COM typedef struct SMHBA_LibraryAttributes { 353*10652SHyon.Kim@Sun.COM char LibPath[256]; 354*10652SHyon.Kim@Sun.COM char VName[256]; 355*10652SHyon.Kim@Sun.COM char VVersion[256]; 356*10652SHyon.Kim@Sun.COM struct { 357*10652SHyon.Kim@Sun.COM int tm_mday; /* day of the month - [1 - 31] */ 358*10652SHyon.Kim@Sun.COM int tm_mon; /* months since January - [0 - 11] */ 359*10652SHyon.Kim@Sun.COM int tm_year; /* years since 1900 */ 360*10652SHyon.Kim@Sun.COM } build_date; 361*10652SHyon.Kim@Sun.COM } SMHBA_LIBRARYATTRIBUTES, *PSMHBA_LIBRARYATTRIBUTES; 362*10652SHyon.Kim@Sun.COM 363*10652SHyon.Kim@Sun.COM /* SM-HBA 6.8.1 Asynchronous Event Data Declarations */ 364*10652SHyon.Kim@Sun.COM #define HBA_EVENT_PORT_BROADCAST_CHANGE 0x205 365*10652SHyon.Kim@Sun.COM #define HBA_EVENT_PORT_BROADCAST_SES 0x208 366*10652SHyon.Kim@Sun.COM #define HBA_EVENT_PORT_BROADCAST_D24_0 0x206 367*10652SHyon.Kim@Sun.COM #define HBA_EVENT_PORT_BROADCAST_D27_4 0x207 368*10652SHyon.Kim@Sun.COM #define HBA_EVENT_PORT_BROADCAST_D01_4 0x209 369*10652SHyon.Kim@Sun.COM #define HBA_EVENT_PORT_BROADCAST_D04_7 0x20A 370*10652SHyon.Kim@Sun.COM #define HBA_EVENT_PORT_BROADCAST_D16_7 0x20B 371*10652SHyon.Kim@Sun.COM #define HBA_EVENT_PORT_BROADCAST_D29_7 0x20C 372*10652SHyon.Kim@Sun.COM #define HBA_EVENT_PORT_ALL 0x2FF 373*10652SHyon.Kim@Sun.COM 374*10652SHyon.Kim@Sun.COM /* SM-HBA specific entry points. */ 375*10652SHyon.Kim@Sun.COM 376*10652SHyon.Kim@Sun.COM HBA_UINT32 SMHBA_GetVersion(); 377*10652SHyon.Kim@Sun.COM 378*10652SHyon.Kim@Sun.COM HBA_UINT32 SMHBA_GetWrapperLibraryAttributes( 379*10652SHyon.Kim@Sun.COM SMHBA_LIBRARYATTRIBUTES *attributes 380*10652SHyon.Kim@Sun.COM ); 381*10652SHyon.Kim@Sun.COM 382*10652SHyon.Kim@Sun.COM HBA_UINT32 SMHBA_GetVendorLibraryAttributes( 383*10652SHyon.Kim@Sun.COM HBA_UINT32 adapter_index, 384*10652SHyon.Kim@Sun.COM SMHBA_LIBRARYATTRIBUTES *attributes 385*10652SHyon.Kim@Sun.COM ); 386*10652SHyon.Kim@Sun.COM 387*10652SHyon.Kim@Sun.COM HBA_STATUS SMHBA_GetAdapterAttributes( 388*10652SHyon.Kim@Sun.COM HBA_HANDLE handle, 389*10652SHyon.Kim@Sun.COM SMHBA_ADAPTERATTRIBUTES *pAdapterAttributes 390*10652SHyon.Kim@Sun.COM ); 391*10652SHyon.Kim@Sun.COM 392*10652SHyon.Kim@Sun.COM HBA_STATUS SMHBA_GetNumberOfPorts( 393*10652SHyon.Kim@Sun.COM HBA_HANDLE handle, 394*10652SHyon.Kim@Sun.COM HBA_UINT32 *numberofports 395*10652SHyon.Kim@Sun.COM ); 396*10652SHyon.Kim@Sun.COM 397*10652SHyon.Kim@Sun.COM HBA_STATUS SMHBA_GetPortType( 398*10652SHyon.Kim@Sun.COM HBA_HANDLE handle, 399*10652SHyon.Kim@Sun.COM HBA_UINT32 portindex, 400*10652SHyon.Kim@Sun.COM HBA_PORTTYPE *porttype 401*10652SHyon.Kim@Sun.COM ); 402*10652SHyon.Kim@Sun.COM 403*10652SHyon.Kim@Sun.COM HBA_STATUS SMHBA_GetAdapterPortAttributes( 404*10652SHyon.Kim@Sun.COM HBA_HANDLE handle, 405*10652SHyon.Kim@Sun.COM HBA_UINT32 portindex, 406*10652SHyon.Kim@Sun.COM SMHBA_PORTATTRIBUTES *portattributes 407*10652SHyon.Kim@Sun.COM ); 408*10652SHyon.Kim@Sun.COM 409*10652SHyon.Kim@Sun.COM HBA_STATUS SMHBA_GetDiscoveredPortAttributes( 410*10652SHyon.Kim@Sun.COM HBA_HANDLE handle, 411*10652SHyon.Kim@Sun.COM HBA_UINT32 portindex, 412*10652SHyon.Kim@Sun.COM HBA_UINT32 discoveredportindex, 413*10652SHyon.Kim@Sun.COM SMHBA_PORTATTRIBUTES *porattributes 414*10652SHyon.Kim@Sun.COM ); 415*10652SHyon.Kim@Sun.COM 416*10652SHyon.Kim@Sun.COM HBA_STATUS SMHBA_GetPortAttributesByWWN( 417*10652SHyon.Kim@Sun.COM HBA_HANDLE handle, 418*10652SHyon.Kim@Sun.COM HBA_WWN portWWN, 419*10652SHyon.Kim@Sun.COM HBA_WWN domainPortWWN, 420*10652SHyon.Kim@Sun.COM SMHBA_PORTATTRIBUTES *portattributes 421*10652SHyon.Kim@Sun.COM ); 422*10652SHyon.Kim@Sun.COM 423*10652SHyon.Kim@Sun.COM HBA_STATUS SMHBA_GetPortAttributesByWWN( 424*10652SHyon.Kim@Sun.COM HBA_HANDLE handle, 425*10652SHyon.Kim@Sun.COM HBA_WWN portWWN, 426*10652SHyon.Kim@Sun.COM HBA_WWN domainPortWWN, 427*10652SHyon.Kim@Sun.COM SMHBA_PORTATTRIBUTES *portattributes 428*10652SHyon.Kim@Sun.COM ); 429*10652SHyon.Kim@Sun.COM 430*10652SHyon.Kim@Sun.COM HBA_STATUS SMHBA_GetFCPhyAttributes( 431*10652SHyon.Kim@Sun.COM HBA_HANDLE handle, 432*10652SHyon.Kim@Sun.COM HBA_UINT32 portindex, 433*10652SHyon.Kim@Sun.COM HBA_UINT32 phyindex, 434*10652SHyon.Kim@Sun.COM SMHBA_FC_PHY *phytype 435*10652SHyon.Kim@Sun.COM ); 436*10652SHyon.Kim@Sun.COM 437*10652SHyon.Kim@Sun.COM HBA_STATUS SMHBA_GetSASPhyAttributes( 438*10652SHyon.Kim@Sun.COM HBA_HANDLE handle, 439*10652SHyon.Kim@Sun.COM HBA_UINT32 portindex, 440*10652SHyon.Kim@Sun.COM HBA_UINT32 phyindex, 441*10652SHyon.Kim@Sun.COM SMHBA_SAS_PHY *phytype 442*10652SHyon.Kim@Sun.COM ); 443*10652SHyon.Kim@Sun.COM 444*10652SHyon.Kim@Sun.COM HBA_STATUS SMHBA_GetProtocolStatistics( 445*10652SHyon.Kim@Sun.COM HBA_HANDLE handle, 446*10652SHyon.Kim@Sun.COM HBA_UINT32 portindex, 447*10652SHyon.Kim@Sun.COM HBA_UINT32 protocoltype, 448*10652SHyon.Kim@Sun.COM SMHBA_PROTOCOLSTATISTICS *pProtocolStatistics 449*10652SHyon.Kim@Sun.COM ); 450*10652SHyon.Kim@Sun.COM 451*10652SHyon.Kim@Sun.COM HBA_STATUS SMHBA_GetPhyStatistics( 452*10652SHyon.Kim@Sun.COM HBA_HANDLE handle, 453*10652SHyon.Kim@Sun.COM HBA_UINT32 portindex, 454*10652SHyon.Kim@Sun.COM HBA_UINT32 phyindex, 455*10652SHyon.Kim@Sun.COM SMHBA_PHYSTATISTICS *pPhyStatistics 456*10652SHyon.Kim@Sun.COM ); 457*10652SHyon.Kim@Sun.COM 458*10652SHyon.Kim@Sun.COM HBA_STATUS SMHBA_SendTEST( 459*10652SHyon.Kim@Sun.COM HBA_HANDLE handle, 460*10652SHyon.Kim@Sun.COM HBA_WWN hbaPortWWN, 461*10652SHyon.Kim@Sun.COM HBA_WWN destWWN, 462*10652SHyon.Kim@Sun.COM HBA_UINT32 destFCID, 463*10652SHyon.Kim@Sun.COM void *pReqBuffer, 464*10652SHyon.Kim@Sun.COM HBA_UINT32 ReqBufferSize 465*10652SHyon.Kim@Sun.COM ); 466*10652SHyon.Kim@Sun.COM 467*10652SHyon.Kim@Sun.COM HBA_STATUS SMHBA_SendECHO( 468*10652SHyon.Kim@Sun.COM HBA_HANDLE handle, 469*10652SHyon.Kim@Sun.COM HBA_WWN hbaPortWWN, 470*10652SHyon.Kim@Sun.COM HBA_WWN destWWN, 471*10652SHyon.Kim@Sun.COM HBA_UINT32 destFCID, 472*10652SHyon.Kim@Sun.COM void *pReqBuffer, 473*10652SHyon.Kim@Sun.COM HBA_UINT32 ReqBufferSize, 474*10652SHyon.Kim@Sun.COM void *pRspBuffer, 475*10652SHyon.Kim@Sun.COM HBA_UINT32 *pRspBufferSize 476*10652SHyon.Kim@Sun.COM ); 477*10652SHyon.Kim@Sun.COM 478*10652SHyon.Kim@Sun.COM HBA_UINT32 SMHBA_SendSMPPassThru( 479*10652SHyon.Kim@Sun.COM HBA_HANDLE handle, 480*10652SHyon.Kim@Sun.COM HBA_WWN hbaportWWN, 481*10652SHyon.Kim@Sun.COM HBA_WWN destportWWN, 482*10652SHyon.Kim@Sun.COM HBA_WWN domainPortWWN, 483*10652SHyon.Kim@Sun.COM void *pReqBuffer, 484*10652SHyon.Kim@Sun.COM HBA_UINT32 ReqBufferSize, 485*10652SHyon.Kim@Sun.COM void *pRspBuffer, 486*10652SHyon.Kim@Sun.COM HBA_UINT32 *pRspBufferSize 487*10652SHyon.Kim@Sun.COM ); 488*10652SHyon.Kim@Sun.COM 489*10652SHyon.Kim@Sun.COM HBA_STATUS SMHBA_GetBindingCapability( 490*10652SHyon.Kim@Sun.COM HBA_HANDLE handle, 491*10652SHyon.Kim@Sun.COM HBA_WWN hbaPortWWN, 492*10652SHyon.Kim@Sun.COM HBA_WWN domainPortWWN, 493*10652SHyon.Kim@Sun.COM SMHBA_BIND_CAPABILITY *pFlags 494*10652SHyon.Kim@Sun.COM ); 495*10652SHyon.Kim@Sun.COM 496*10652SHyon.Kim@Sun.COM HBA_STATUS SMHBA_GetBindingSupport( 497*10652SHyon.Kim@Sun.COM HBA_HANDLE handle, 498*10652SHyon.Kim@Sun.COM HBA_WWN hbaPortWWN, 499*10652SHyon.Kim@Sun.COM HBA_WWN domainPortWWN, 500*10652SHyon.Kim@Sun.COM SMHBA_BIND_CAPABILITY *pFlags 501*10652SHyon.Kim@Sun.COM ); 502*10652SHyon.Kim@Sun.COM 503*10652SHyon.Kim@Sun.COM HBA_STATUS SMHBA_SetBindingSupport( 504*10652SHyon.Kim@Sun.COM HBA_HANDLE handle, 505*10652SHyon.Kim@Sun.COM HBA_WWN hbaPortWWN, 506*10652SHyon.Kim@Sun.COM HBA_WWN domainPortWWN, 507*10652SHyon.Kim@Sun.COM SMHBA_BIND_CAPABILITY flags 508*10652SHyon.Kim@Sun.COM ); 509*10652SHyon.Kim@Sun.COM 510*10652SHyon.Kim@Sun.COM HBA_STATUS SMHBA_GetTargetMapping( 511*10652SHyon.Kim@Sun.COM HBA_HANDLE handle, 512*10652SHyon.Kim@Sun.COM HBA_WWN hbaPortWWN, 513*10652SHyon.Kim@Sun.COM HBA_WWN domainPortWWN, 514*10652SHyon.Kim@Sun.COM SMHBA_TARGETMAPPING *pMapping 515*10652SHyon.Kim@Sun.COM ); 516*10652SHyon.Kim@Sun.COM 517*10652SHyon.Kim@Sun.COM HBA_STATUS SMHBA_GetPersistentBinding( 518*10652SHyon.Kim@Sun.COM HBA_HANDLE handle, 519*10652SHyon.Kim@Sun.COM HBA_WWN hbaPortWWN, 520*10652SHyon.Kim@Sun.COM HBA_WWN domainPortWWN, 521*10652SHyon.Kim@Sun.COM SMHBA_BINDING *binding 522*10652SHyon.Kim@Sun.COM ); 523*10652SHyon.Kim@Sun.COM 524*10652SHyon.Kim@Sun.COM HBA_STATUS SMHBA_SetPersistentBinding( 525*10652SHyon.Kim@Sun.COM HBA_HANDLE handle, 526*10652SHyon.Kim@Sun.COM HBA_WWN hbaPortWWN, 527*10652SHyon.Kim@Sun.COM HBA_WWN domainPortWWN, 528*10652SHyon.Kim@Sun.COM const SMHBA_BINDING *binding 529*10652SHyon.Kim@Sun.COM ); 530*10652SHyon.Kim@Sun.COM 531*10652SHyon.Kim@Sun.COM HBA_STATUS SMHBA_RemovePersistentBinding( 532*10652SHyon.Kim@Sun.COM HBA_HANDLE handle, 533*10652SHyon.Kim@Sun.COM HBA_WWN hbaPortWWN, 534*10652SHyon.Kim@Sun.COM HBA_WWN domainPortWWN, 535*10652SHyon.Kim@Sun.COM const SMHBA_BINDING *binding 536*10652SHyon.Kim@Sun.COM ); 537*10652SHyon.Kim@Sun.COM 538*10652SHyon.Kim@Sun.COM HBA_STATUS SMHBA_RemoveAllPersistentBindings( 539*10652SHyon.Kim@Sun.COM HBA_HANDLE handle, 540*10652SHyon.Kim@Sun.COM HBA_WWN hbaPortWWN, 541*10652SHyon.Kim@Sun.COM HBA_WWN domainPortWWN 542*10652SHyon.Kim@Sun.COM ); 543*10652SHyon.Kim@Sun.COM 544*10652SHyon.Kim@Sun.COM HBA_STATUS SMHBA_GetLUNStatistics( 545*10652SHyon.Kim@Sun.COM HBA_HANDLE handle, 546*10652SHyon.Kim@Sun.COM const HBA_SCSIID *lunit, 547*10652SHyon.Kim@Sun.COM SMHBA_PROTOCOLSTATISTICS *statistics 548*10652SHyon.Kim@Sun.COM ); 549*10652SHyon.Kim@Sun.COM 550*10652SHyon.Kim@Sun.COM HBA_STATUS SMHBA_ScsiInquiry( 551*10652SHyon.Kim@Sun.COM HBA_HANDLE handle, 552*10652SHyon.Kim@Sun.COM HBA_WWN hbaPortWWN, 553*10652SHyon.Kim@Sun.COM HBA_WWN discoveredPortWWN, 554*10652SHyon.Kim@Sun.COM HBA_WWN domainPortWWN, 555*10652SHyon.Kim@Sun.COM SMHBA_SCSILUN smhbaLUN, 556*10652SHyon.Kim@Sun.COM HBA_UINT8 CDB_Byte1, 557*10652SHyon.Kim@Sun.COM HBA_UINT8 CDB_Byte2, 558*10652SHyon.Kim@Sun.COM void *pRspBuffer, 559*10652SHyon.Kim@Sun.COM HBA_UINT32 *pRspBufferSize, 560*10652SHyon.Kim@Sun.COM HBA_UINT8 *pScsiStatus, 561*10652SHyon.Kim@Sun.COM void *pSenseBuffer, 562*10652SHyon.Kim@Sun.COM HBA_UINT32 *pSenseBufferSize 563*10652SHyon.Kim@Sun.COM ); 564*10652SHyon.Kim@Sun.COM 565*10652SHyon.Kim@Sun.COM HBA_STATUS SMHBA_ScsiReportLUNs( 566*10652SHyon.Kim@Sun.COM HBA_HANDLE handle, 567*10652SHyon.Kim@Sun.COM HBA_WWN hbaPortWWN, 568*10652SHyon.Kim@Sun.COM HBA_WWN discoveredPortWWN, 569*10652SHyon.Kim@Sun.COM HBA_WWN domainPortWWN, 570*10652SHyon.Kim@Sun.COM void *pRspBuffer, 571*10652SHyon.Kim@Sun.COM HBA_UINT32 *pRspBufferSize, 572*10652SHyon.Kim@Sun.COM HBA_UINT8 *pScsiStatus, 573*10652SHyon.Kim@Sun.COM void *pSenseBuffer, 574*10652SHyon.Kim@Sun.COM HBA_UINT32 *pSenseBufferSize 575*10652SHyon.Kim@Sun.COM ); 576*10652SHyon.Kim@Sun.COM 577*10652SHyon.Kim@Sun.COM HBA_STATUS SMHBA_ScsiReadCapacity( 578*10652SHyon.Kim@Sun.COM HBA_HANDLE handle, 579*10652SHyon.Kim@Sun.COM HBA_WWN hbaPortWWN, 580*10652SHyon.Kim@Sun.COM HBA_WWN discoveredPortWWN, 581*10652SHyon.Kim@Sun.COM HBA_WWN domainPortWWN, 582*10652SHyon.Kim@Sun.COM SMHBA_SCSILUN smhbaLUN, 583*10652SHyon.Kim@Sun.COM void *pRspBuffer, 584*10652SHyon.Kim@Sun.COM HBA_UINT32 *pRspBufferSize, 585*10652SHyon.Kim@Sun.COM HBA_UINT8 *pScsiStatus, 586*10652SHyon.Kim@Sun.COM void *pSenseBuffer, 587*10652SHyon.Kim@Sun.COM HBA_UINT32 *pSenseBufferSize 588*10652SHyon.Kim@Sun.COM ); 589*10652SHyon.Kim@Sun.COM 590*10652SHyon.Kim@Sun.COM HBA_STATUS SMHBA_RegisterForAdapterAddEvents( 591*10652SHyon.Kim@Sun.COM void (*pCallback) ( 592*10652SHyon.Kim@Sun.COM void *pData, 593*10652SHyon.Kim@Sun.COM HBA_WWN portWWN, 594*10652SHyon.Kim@Sun.COM HBA_UINT32 eventType), 595*10652SHyon.Kim@Sun.COM void *pUserData, 596*10652SHyon.Kim@Sun.COM HBA_CALLBACKHANDLE *pCallbackHandle 597*10652SHyon.Kim@Sun.COM ); 598*10652SHyon.Kim@Sun.COM 599*10652SHyon.Kim@Sun.COM HBA_STATUS SMHBA_RegisterForAdapterEvents( 600*10652SHyon.Kim@Sun.COM void (*pCallback) ( 601*10652SHyon.Kim@Sun.COM void *pData, 602*10652SHyon.Kim@Sun.COM HBA_WWN portWWN, 603*10652SHyon.Kim@Sun.COM HBA_UINT32 eventType), 604*10652SHyon.Kim@Sun.COM void *pUserData, 605*10652SHyon.Kim@Sun.COM HBA_HANDLE handle, 606*10652SHyon.Kim@Sun.COM HBA_CALLBACKHANDLE *pCallbackHandle 607*10652SHyon.Kim@Sun.COM ); 608*10652SHyon.Kim@Sun.COM 609*10652SHyon.Kim@Sun.COM HBA_STATUS SMHBA_RegisterForAdapterPortEvents( 610*10652SHyon.Kim@Sun.COM void (*pCallback) ( 611*10652SHyon.Kim@Sun.COM void *pData, 612*10652SHyon.Kim@Sun.COM HBA_WWN portWWN, 613*10652SHyon.Kim@Sun.COM HBA_UINT32 eventType, 614*10652SHyon.Kim@Sun.COM HBA_UINT32 fabricPortID), 615*10652SHyon.Kim@Sun.COM void *pUserData, 616*10652SHyon.Kim@Sun.COM HBA_HANDLE handle, 617*10652SHyon.Kim@Sun.COM HBA_WWN portWWN, 618*10652SHyon.Kim@Sun.COM HBA_UINT32 specificEventType, 619*10652SHyon.Kim@Sun.COM HBA_CALLBACKHANDLE *pCallbackHandle 620*10652SHyon.Kim@Sun.COM ); 621*10652SHyon.Kim@Sun.COM 622*10652SHyon.Kim@Sun.COM HBA_STATUS SMHBA_RegisterForAdapterPortStatEvents( 623*10652SHyon.Kim@Sun.COM void (*pCallback) ( 624*10652SHyon.Kim@Sun.COM void *pData, 625*10652SHyon.Kim@Sun.COM HBA_WWN portWWN, 626*10652SHyon.Kim@Sun.COM HBA_UINT32 protocolType, 627*10652SHyon.Kim@Sun.COM HBA_UINT32 eventType), 628*10652SHyon.Kim@Sun.COM void *pUserData, 629*10652SHyon.Kim@Sun.COM HBA_HANDLE handle, 630*10652SHyon.Kim@Sun.COM HBA_WWN portWWN, 631*10652SHyon.Kim@Sun.COM HBA_UINT32 protocolType, 632*10652SHyon.Kim@Sun.COM SMHBA_PROTOCOLSTATISTICS stats, 633*10652SHyon.Kim@Sun.COM HBA_UINT32 statType, 634*10652SHyon.Kim@Sun.COM HBA_CALLBACKHANDLE *pCallbackHandle 635*10652SHyon.Kim@Sun.COM ); 636*10652SHyon.Kim@Sun.COM 637*10652SHyon.Kim@Sun.COM HBA_STATUS SMHBA_RegisterForAdapterPhyStatEvents( 638*10652SHyon.Kim@Sun.COM void (*pCallback) ( 639*10652SHyon.Kim@Sun.COM void *pData, 640*10652SHyon.Kim@Sun.COM HBA_WWN portWWN, 641*10652SHyon.Kim@Sun.COM HBA_UINT32 phyIndex, 642*10652SHyon.Kim@Sun.COM HBA_UINT32 eventType), 643*10652SHyon.Kim@Sun.COM void *pUserData, 644*10652SHyon.Kim@Sun.COM HBA_HANDLE handle, 645*10652SHyon.Kim@Sun.COM HBA_WWN portWWN, 646*10652SHyon.Kim@Sun.COM HBA_UINT32 phyIndex, 647*10652SHyon.Kim@Sun.COM SMHBA_PHYSTATISTICS stats, 648*10652SHyon.Kim@Sun.COM HBA_UINT32 statType, 649*10652SHyon.Kim@Sun.COM HBA_CALLBACKHANDLE *pCallbackHandle 650*10652SHyon.Kim@Sun.COM ); 651*10652SHyon.Kim@Sun.COM 652*10652SHyon.Kim@Sun.COM HBA_STATUS SMHBA_RegisterForTargetEvents( 653*10652SHyon.Kim@Sun.COM void (*pCallback) ( 654*10652SHyon.Kim@Sun.COM void *pData, 655*10652SHyon.Kim@Sun.COM HBA_WWN hbaPortWWN, 656*10652SHyon.Kim@Sun.COM HBA_WWN discoveredPortWWN, 657*10652SHyon.Kim@Sun.COM HBA_WWN domainPortWWN, 658*10652SHyon.Kim@Sun.COM HBA_UINT32 eventType), 659*10652SHyon.Kim@Sun.COM void *pUserData, 660*10652SHyon.Kim@Sun.COM HBA_HANDLE handle, 661*10652SHyon.Kim@Sun.COM HBA_WWN hbaPortWWN, 662*10652SHyon.Kim@Sun.COM HBA_WWN discoveredPortWWN, 663*10652SHyon.Kim@Sun.COM HBA_WWN domainPortWWN, 664*10652SHyon.Kim@Sun.COM HBA_CALLBACKHANDLE *pCallbackHandle, 665*10652SHyon.Kim@Sun.COM HBA_UINT32 allTargets 666*10652SHyon.Kim@Sun.COM ); 667*10652SHyon.Kim@Sun.COM 668*10652SHyon.Kim@Sun.COM #ifdef __cplusplus 669*10652SHyon.Kim@Sun.COM } 670*10652SHyon.Kim@Sun.COM #endif 671*10652SHyon.Kim@Sun.COM 672*10652SHyon.Kim@Sun.COM #endif /* _SMHBAAPI_H_ */ 673