fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * *****************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte *
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Description
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * hbaapi.h - general header file for client
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * and library developers
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte *
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * License:
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * The contents of this file are subject to the SNIA Public License
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Version 1.0 (the "License"); you may not use this file except in
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * compliance with the License. You may obtain a copy of the License at
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte *
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * /http://www.snia.org/English/Resources/Code/OpenSource.html
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte *
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Software distributed under the License is distributed on an "AS IS"
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * the License for the specific language governing rights and limitations
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * under the License.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte *
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * The Original Code is SNIA HBA API general header file
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte *
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * The Initial Developer of the Original Code is:
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Benjamin F. Kuo, Troika Networks, Inc. (benk@troikanetworks.com)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte *
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Contributor(s):
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Tuan Lam, QLogic Corp. (t_lam@qlc.com)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Dan Willie, Emulex Corp. (Dan.Willie@emulex.com)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Dixon Hutchinson, Legato Systems, Inc. (dhutchin@legato.com)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * David Dillard, VERITAS Software Corp. (david.dillard@veritas.com)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte *
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte *******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte *
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Changes:
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * 03/09/2000 Initial Draft
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * (for other changes... see the CVS logs)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte *******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#ifdef __cplusplus
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern "C" {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#endif
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#ifndef HBA_API_H
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_API_H
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* Library version string */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_LIBVERSION 2
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* DLL imports for WIN32 operation */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#ifdef WIN32
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#ifdef HBAAPI_EXPORTS
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_API __declspec(dllexport)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#else
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_API __declspec(dllimport)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#endif
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#else
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_API
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#endif
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* OS specific definitions */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#ifdef WIN32
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef unsigned char HBA_UINT8; // Unsigned 8 bits
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef char HBA_INT8; // Signed 8 bits
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef unsigned short HBA_UINT16; // Unsigned 16 bits
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef short HBA_INT16; // Signed 16 bits
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef unsigned int HBA_UINT32; // Unsigned 32 bits
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef int HBA_INT32; // Signed 32 bits
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef void* HBA_PVOID; // Pointer to void
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef HBA_UINT32 HBA_VOID32; // Opaque 32 bits
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* Don't confuse, _WIN32 with WIN32... OK, how do you accompish that */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#ifdef _WIN32
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef _int64 HBA_INT64;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef unsigned _int64 HBA_UINT64;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#else
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte TN_UINT32 lo_val;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte TN_UINT32 hi_val;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} HBA_INT64;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte TN_UINT32 lo_val;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte TN_UINT32 hi_val;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} HBA_UINT64;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#endif /* #ifdef _WIN32 */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#else
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#include <time.h> /* Needed for struct tm */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* Note this section needs to be cleaned up for various Unix platforms */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef unsigned char HBA_UINT8; /* Unsigned 8 bits */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef char HBA_INT8; /* Signed 8 bits */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef unsigned short HBA_UINT16; /* Unsigned 16 bits */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef short HBA_INT16; /* Signed 16 bits */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef unsigned int HBA_UINT32; /* Unsigned 32 bits */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef int HBA_INT32; /* Signed 32 bits */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef void* HBA_PVOID; /* Pointer to void */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef HBA_UINT32 HBA_VOID32; /* Opaque 32 bits */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef long long HBA_INT64;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef long long HBA_UINT64;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#endif /* #ifdef WIN32 */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* 4.2.1 Handle to Device */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef HBA_UINT32 HBA_HANDLE;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_HANDLE_INVALID 0
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* 4.2.2 Status Return Values */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef HBA_UINT32 HBA_STATUS;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_STATUS_OK 0
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_STATUS_ERROR 1 /* Error */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_STATUS_ERROR_NOT_SUPPORTED 2 /* Function not supported.*/
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_STATUS_ERROR_INVALID_HANDLE 3 /* invalid handle */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_STATUS_ERROR_ARG 4 /* Bad argument */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_STATUS_ERROR_ILLEGAL_WWN 5 /* WWN not recognized */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_STATUS_ERROR_ILLEGAL_INDEX 6 /* Index not recognized */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_STATUS_ERROR_MORE_DATA 7 /* Larger buffer required */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_STATUS_ERROR_STALE_DATA 8 /* Information has changed since
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * last call to
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * HBA_Refreshinformation */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_STATUS_SCSI_CHECK_CONDITION 9 /* Obvious */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_STATUS_ERROR_BUSY 10 /* Adapter busy or reserved,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * retry may be effective */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_STATUS_ERROR_TRY_AGAIN 11 /* Request timedout,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * retry may be effective */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_STATUS_ERROR_UNAVAILABLE 12 /* Referenced HBA has been removed
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * or deactivated */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_STATUS_ERROR_ELS_REJECT 13 /* The requested ELS was rejected by
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * the local adapter */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_STATUS_ERROR_INVALID_LUN 14 /* The specified LUN is not provided
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * the specified adapter */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_STATUS_ERROR_INCOMPATIBLE 15 /* An incompatibility has been
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * detected among the library and driver modules
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * invoked which will cause one or more functions
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * in the highest version that all support to
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * operate incorrectly. The differing function
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * sets of software modules implementing different
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * versions of the HBA API specification does not
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * in itself constitute an incompatibility. Known
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * interoperability bugs among supposedly
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * compatible versions should be reported as
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * incompatibilities, but not all such
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * interoperability bugs may be known. This value
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * may be returned by any function that calls a
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Vendor Specific Library and returns an
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * HBA_STATUS, and by HBA_LoadLibrary and
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * HBA_GetAdapterName. */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_STATUS_ERROR_AMBIGUOUS_WWN 16 /* Multiple adapters have a matching
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * WWN. This could occur if the
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * NodeWWN of multiple adapters is
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * identical */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_STATUS_ERROR_LOCAL_BUS 17 /* A persistent binding request
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * included a bad local SCSI bus
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * number */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_STATUS_ERROR_LOCAL_TARGET 18 /* A persistent binding request
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * included a bad local SCSI target
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * number */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_STATUS_ERROR_LOCAL_LUN 19 /* A persistent binding request
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * included a bad local SCSI logical
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * unit number */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_STATUS_ERROR_LOCAL_SCSIID_BOUND 20
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte /* A persistent binding set request
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * included a local SCSI ID that was
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * already bound */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_STATUS_ERROR_TARGET_FCID 21 /* A persistent binding request
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * included a bad or unlocatable FCP
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Target FCID */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_STATUS_ERROR_TARGET_NODE_WWN 22 /* A persistent binding request
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * included a bad FCP Target Node
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * WWN */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_STATUS_ERROR_TARGET_PORT_WWN 23 /* A persistent binding request
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * included a bad FCP Target Port
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * WWN */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_STATUS_ERROR_TARGET_LUN 24 /* A persistent binding request
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * included an FCP Logical Unit Number
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * not defined by the identified
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Target*/
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_STATUS_ERROR_TARGET_LUID 25 /* A persistent binding request
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * included an undefined or otherwise
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * inaccessible Logical Unit Unique
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Identifier */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_STATUS_ERROR_NO_SUCH_BINDING 26 /* A persistent binding remove request
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * included a binding which did not
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * match a binding established by the
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * specified port */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_STATUS_ERROR_NOT_A_TARGET 27 /* A SCSI command was requested to an
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Nx_Port that was not a SCSI
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Target Port */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_STATUS_ERROR_UNSUPPORTED_FC4 28 /* A request was made concerning an
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * unsupported FC-4 protocol */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_STATUS_ERROR_INCAPABLE 29 /* A request was made to enable
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * unimplemented capabilities for a
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * port */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* 4.2.3 Port Operational Modes Values */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef HBA_UINT32 HBA_PORTTYPE;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_PORTTYPE_UNKNOWN 1 /* Unknown */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_PORTTYPE_OTHER 2 /* Other */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_PORTTYPE_NOTPRESENT 3 /* Not present */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_PORTTYPE_NPORT 5 /* Fabric */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_PORTTYPE_NLPORT 6 /* Public Loop */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_PORTTYPE_FLPORT 7
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_PORTTYPE_FPORT 8 /* Fabric Port */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_PORTTYPE_EPORT 9 /* Fabric expansion port */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_PORTTYPE_GPORT 10 /* Generic Fabric Port */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_PORTTYPE_LPORT 20 /* Private Loop */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_PORTTYPE_PTP 21 /* Point to Point */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef HBA_UINT32 HBA_PORTSTATE;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_PORTSTATE_UNKNOWN 1 /* Unknown */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_PORTSTATE_ONLINE 2 /* Operational */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_PORTSTATE_OFFLINE 3 /* User Offline */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_PORTSTATE_BYPASSED 4 /* Bypassed */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_PORTSTATE_DIAGNOSTICS 5 /* In diagnostics mode */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_PORTSTATE_LINKDOWN 6 /* Link Down */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_PORTSTATE_ERROR 7 /* Port Error */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_PORTSTATE_LOOPBACK 8 /* Loopback */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef HBA_UINT32 HBA_PORTSPEED;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_PORTSPEED_UNKNOWN 0 /* Unknown - transceiver incable
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * of reporting */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_PORTSPEED_1GBIT 1 /* 1 GBit/sec */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_PORTSPEED_2GBIT 2 /* 2 GBit/sec */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_PORTSPEED_10GBIT 4 /* 10 GBit/sec */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_PORTSPEED_4GBIT 8 /* 4 GBit/sec */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_PORTSPEED_8GBIT 16 /* 8 GBit/sec */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_PORTSPEED_16GBIT 32 /* 16 GBit/sec */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_PORTSPEED_NOT_NEGOTIATED (1<<15) /* Speed not established */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* 4.2.4 Class of Service Values - See GS-2 Spec.*/
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef HBA_UINT32 HBA_COS;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* 4.2.5 Fc4Types Values */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct HBA_fc4types {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT8 bits[32]; /* 32 bytes of FC-4 per GS-2 */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} HBA_FC4TYPES, *PHBA_FC4TYPES;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* 4.2.6 Basic Types */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct HBA_wwn {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT8 wwn[8];
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} HBA_WWN, *PHBA_WWN;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct HBA_ipaddress {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte int ipversion; /* see enumerations in RNID */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte union
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte unsigned char ipv4address[4];
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte unsigned char ipv6address[16];
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte } ipaddress;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} HBA_IPADDRESS, *PHBA_IPADDRESS;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef HBA_INT8 HBA_BOOLEAN;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* 4.2.7 Adapter Attributes */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct hba_AdapterAttributes {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte char Manufacturer[64]; /*Emulex */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte char SerialNumber[64]; /* A12345 */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte char Model[256]; /* QLA2200 */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte char ModelDescription[256]; /* Agilent TachLite */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN NodeWWN;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte char NodeSymbolicName[256]; /* From GS-3 */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte char HardwareVersion[256]; /* Vendor use */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte char DriverVersion[256]; /* Vendor use */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte char OptionROMVersion[256]; /* Vendor use - i.e. hardware boot ROM*/
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte char FirmwareVersion[256]; /* Vendor use */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 VendorSpecificID; /* Vendor specific */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 NumberOfPorts;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte char DriverName[256]; /* Binary path and/or name of driver
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte *file */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} HBA_ADAPTERATTRIBUTES, *PHBA_ADAPTERATTRIBUTES;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* 4.2.8 Port Attributes */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct HBA_PortAttributes {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN NodeWWN;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN PortWWN;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 PortFcId;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_PORTTYPE PortType; /*PTP, Fabric, etc. */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_PORTSTATE PortState;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_COS PortSupportedClassofService;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_FC4TYPES PortSupportedFc4Types;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_FC4TYPES PortActiveFc4Types;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte char PortSymbolicName[256];
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte char OSDeviceName[256]; /* \device\ScsiPort3 */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_PORTSPEED PortSupportedSpeed;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_PORTSPEED PortSpeed;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 PortMaxFrameSize;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN FabricName;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 NumberofDiscoveredPorts;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} HBA_PORTATTRIBUTES, *PHBA_PORTATTRIBUTES;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* 4.2.9 Port Statistics */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct HBA_PortStatistics {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_INT64 SecondsSinceLastReset;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_INT64 TxFrames;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_INT64 TxWords;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_INT64 RxFrames;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_INT64 RxWords;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_INT64 LIPCount;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_INT64 NOSCount;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_INT64 ErrorFrames;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_INT64 DumpedFrames;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_INT64 LinkFailureCount;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_INT64 LossOfSyncCount;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_INT64 LossOfSignalCount;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_INT64 PrimitiveSeqProtocolErrCount;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_INT64 InvalidTxWordCount;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_INT64 InvalidCRCCount;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} HBA_PORTSTATISTICS, *PHBA_PORTSTATISTICS;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* 4.2.10 FCP Attributes */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef enum HBA_fcpbindingtype { TO_D_ID, TO_WWN, TO_OTHER } HBA_FCPBINDINGTYPE;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct HBA_ScsiId {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte char OSDeviceName[256]; /* \device\ScsiPort3 */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 ScsiBusNumber; /* Bus on the HBA */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 ScsiTargetNumber; /* SCSI Target ID to OS */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 ScsiOSLun;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} HBA_SCSIID, *PHBA_SCSIID;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct HBA_FcpId {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 FcId;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN NodeWWN;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN PortWWN;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT64 FcpLun;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} HBA_FCPID, *PHBA_FCPID;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct HBA_LUID {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte char buffer[256]; /* Unique Device Identifier */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} HBA_LUID, *PHBA_LUID;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct HBA_FcpScsiEntry {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_SCSIID ScsiId;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_FCPID FcpId;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} HBA_FCPSCSIENTRY, *PHBA_FCPSCSIENTRY;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct HBA_FcpScsiEntryV2 {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_SCSIID ScsiId;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_FCPID FcpId;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_LUID LUID;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} HBA_FCPSCSIENTRYV2, *PHBA_FCPSCSIENTRYV2;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct HBA_FCPTargetMapping {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 NumberOfEntries;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_FCPSCSIENTRY entry[1]; /* Variable length array
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * containing mappings */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} HBA_FCPTARGETMAPPING, *PHBA_FCPTARGETMAPPING;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct HBA_FCPTargetMappingV2 {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 NumberOfEntries;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_FCPSCSIENTRYV2 entry[1]; /* Variable length array
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * containing mappings */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} HBA_FCPTARGETMAPPINGV2, *PHBA_FCPTARGETMAPPINGV2;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct HBA_FCPBindingEntry {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_FCPBINDINGTYPE type;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_SCSIID ScsiId;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_FCPID FcpId; /* WWN valid only if type is
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * to WWN, FcpLun always valid */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 FcId;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} HBA_FCPBINDINGENTRY, *PHBA_FCPBINDINGENTRY;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct HBA_FCPBinding {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 NumberOfEntries;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_FCPBINDINGENTRY entry[1]; /* Variable length array */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} HBA_FCPBINDING, *PHBA_FCPBINDING;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* 4.2.11 FC-3 Management Atrributes */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef enum HBA_wwntype { NODE_WWN, PORT_WWN } HBA_WWNTYPE;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct HBA_MgmtInfo {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN wwn;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 unittype;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 PortId;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 NumberOfAttachedNodes;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT16 IPVersion;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT16 UDPPort;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT8 IPAddress[16];
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT16 reserved;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT16 TopologyDiscoveryFlags;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} HBA_MGMTINFO, *PHBA_MGMTINFO;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* Event Codes */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_EVENT_LIP_OCCURRED 1
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_EVENT_LINK_UP 2
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_EVENT_LINK_DOWN 3
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_EVENT_LIP_RESET_OCCURRED 4
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_EVENT_RSCN 5
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_EVENT_PROPRIETARY 0xFFFF
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct HBA_Link_EventInfo {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 PortFcId; /* Port where event occurred */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 Reserved[3];
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} HBA_LINK_EVENTINFO, *PHBA_LINK_EVENTINFO;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct HBA_RSCN_EventInfo {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 PortFcId; /* Port where event occurred */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 NPortPage; /* Reference FC-FS for RSCN ELS
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * "Affected N-Port Pages"*/
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 Reserved[2];
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} HBA_RSCN_EVENTINFO, *PHBA_RSCN_EVENTINFO;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct HBA_Pty_EventInfo {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 PtyData[4]; /* Proprietary data */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} HBA_PTY_EVENTINFO, *PHBA_PTY_EVENTINFO;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct HBA_EventInfo {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 EventCode;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte union {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_LINK_EVENTINFO Link_EventInfo;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_RSCN_EVENTINFO RSCN_EventInfo;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_PTY_EVENTINFO Pty_EventInfo;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte } Event;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} HBA_EVENTINFO, *PHBA_EVENTINFO;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct HBA_LibraryAttributes {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_BOOLEAN final;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte char LibPath[256];
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte char VName[256];
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte char VVersion[256];
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte struct tm build_date;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} HBA_LIBRARYATTRIBUTES, *PHBA_LIBRARYATTRIBUTES;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* Persistant Binding... */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef HBA_UINT32 HBA_BIND_TYPE;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_BIND_TO_D_ID 0x0001
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_BIND_TO_WWPN 0x0002
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_BIND_TO_WWNN 0x0004
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_BIND_TO_LUID 0x0008
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_BIND_TARGETS 0x0800
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* A bit mask of Rev 2.0 persistent binding capabilities */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef HBA_UINT32 HBA_BIND_CAPABILITY;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* The following are bit flags indicating persistent binding capabilities */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_CAN_BIND_TO_D_ID 0x0001
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_CAN_BIND_TO_WWPN 0x0002
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_CAN_BIND_TO_WWNN 0x0004
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_CAN_BIND_TO_LUID 0x0008
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_CAN_BIND_ANY_LUNS 0x0400
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_CAN_BIND_TARGETS 0x0800
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_CAN_BIND_AUTOMAP 0x1000
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_CAN_BIND_CONFIGURED 0x2000
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_BIND_STATUS_DISABLED 0x00
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_BIND_STATUS_ENABLED 0x01
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef HBA_UINT32 HBA_BIND_STATUS;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_BIND_EFFECTIVE_AT_REBOOT 0x00
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_BIND_EFFECTIVE_IMMEDIATE 0x01
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef HBA_UINT32 HBA_BIND_EFFECTIVE;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct HBA_FCPBindingEntry2 {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_BIND_TYPE type;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_SCSIID ScsiId;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_FCPID FcpId;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_LUID LUID;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_STATUS status;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} HBA_FCPBINDINGENTRY2, *PHBA_FCPBINDINGENTRY2;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct HBA_FcpBinding2 {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 NumberOfEntries;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_FCPBINDINGENTRY2
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte entry[1]; /* Variable length array */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} HBA_FCPBINDING2, *PHBA_FCPBINDING2;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* FC-4 Instrumentation */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct HBA_FC4Statistics {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_INT64 InputRequests;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_INT64 OutputRequests;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_INT64 ControlRequests;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_INT64 InputMegabytes;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_INT64 OutputMegabytes;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} HBA_FC4STATISTICS, *PHBA_FC4STATISTICS;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef void * HBA_CALLBACKHANDLE;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* Adapter Level Events */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_EVENT_ADAPTER_UNKNOWN 0x100
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_EVENT_ADAPTER_ADD 0x101
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_EVENT_ADAPTER_REMOVE 0x102
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_EVENT_ADAPTER_CHANGE 0x103
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* Port Level Events */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_EVENT_PORT_UNKNOWN 0x200
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_EVENT_PORT_OFFLINE 0x201
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_EVENT_PORT_ONLINE 0x202
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_EVENT_PORT_NEW_TARGETS 0x203
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_EVENT_PORT_FABRIC 0x204
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* Port Statistics Events */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_EVENT_PORT_STAT_THRESHOLD 0x301
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_EVENT_PORT_STAT_GROWTH 0x302
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* Target Level Events */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_EVENT_TARGET_UNKNOWN 0x400
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_EVENT_TARGET_OFFLINE 0x401
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_EVENT_TARGET_ONLINE 0x402
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_EVENT_TARGET_REMOVED 0x403
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* Fabric Link Events */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_EVENT_LINK_UNKNOWN 0x500
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define HBA_EVENT_LINK_INCIDENT 0x501
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_UINT32 HBA_GetVersion();
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Make sure HBA_LoadLibrary returns before any other threads
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * make calls to the library
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_LoadLibrary(void);
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_FreeLibrary(void);
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_UINT32 HBA_GetNumberOfAdapters(void);
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_GetAdapterName(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 adapterindex,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte char *adaptername
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_HANDLE HBA_OpenAdapter(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte char* adaptername
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_OpenAdapterByWWN(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE *handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN wwn
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API void HBA_CloseAdapter(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_GetAdapterAttributes(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_ADAPTERATTRIBUTES
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte *hbaattributes
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_GetAdapterPortAttributes(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 portindex,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_PORTATTRIBUTES *portattributes
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_GetPortStatistics(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 portindex,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_PORTSTATISTICS *portstatistics
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_GetDiscoveredPortAttributes(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 portindex,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 discoveredportindex,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_PORTATTRIBUTES *portattributes
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_GetPortAttributesByWWN(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN PortWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_PORTATTRIBUTES *portattributes
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_SendCTPassThruV2(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN hbaPortWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void *pReqBuffer,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 ReqBufferSize,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void *pRspBuffer,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 *pRspBufferSize
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* Depricated, but supported */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_SendCTPassThru(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void *pReqBuffer,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 ReqBufferSize,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void *pRspBuffer,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 RspBufferSize
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API void HBA_RefreshAdapterConfiguration();
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_GetEventBuffer(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_EVENTINFO *EventBuffer,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 *EventBufferCount
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_SetRNIDMgmtInfo(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_MGMTINFO Info
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_GetRNIDMgmtInfo(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_MGMTINFO *pInfo
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_SendRNIDV2(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN hbaPortWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN destWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 destFCID,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 NodeIdDataFormat,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void *pRspBuffer,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 *pRspBufferSize
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* Depricated, but supported */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_SendRNID(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN wwn,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWNTYPE wwntype,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void *pRspBuffer,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 *pRspBufferSize
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_SendRLS (
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN hbaPortWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN destWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void *pRspBuffer,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 *pRspBufferSize
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_SendRPL (
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN hbaPortWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN agent_wwn,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 agent_domain,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 portindex,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void *pRspBuffer,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 *pRspBufferSize
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_SendRPS (
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN hbaPortWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN agent_wwn,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 agent_domain,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN object_wwn,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 object_port_number,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void *pRspBuffer,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 *pRspBufferSize
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_SendSRL (
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN hbaPortWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN wwn,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 domain,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void *pRspBuffer,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 *pRspBufferSize
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_SendLIRR (
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN sourceWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN destWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT8 function,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT8 type,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void *pRspBuffer,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 *pRspBufferSize
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_GetFC4Statistics (
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN portWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT8 FC4type,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_FC4STATISTICS *pstatistics
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_GetFCPStatistics (
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte const HBA_SCSIID *lunit,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_FC4STATISTICS *pstatistics);
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API void HBA_RefreshInformation(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API void HBA_ResetStatistics(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 portindex
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_GetFcpTargetMapping(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_FCPTARGETMAPPING
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte *pmapping
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_GetFcpTargetMappingV2(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN hbaPortWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_FCPTARGETMAPPINGV2
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte *pmapping
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_GetBindingCapability(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN hbaPortWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_BIND_CAPABILITY *pcapability
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_GetBindingSupport(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN hbaPortWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_BIND_CAPABILITY *pcapability
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_SetBindingSupport(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN hbaPortWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_BIND_CAPABILITY capability
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_SetPersistentBindingV2(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN hbaPortWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte const HBA_FCPBINDING2
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte *pbinding
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_GetPersistentBindingV2(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN hbaPortWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_FCPBINDING2 *binding
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_RemovePersistentBinding(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN hbaPortWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte const HBA_FCPBINDING2
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte *pbinding
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* Depricated, but supported */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_GetFcpPersistentBinding(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_FCPBINDING *binding
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_RemoveAllPersistentBindings(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN hbaPortWWN
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_STATUS HBA_ScsiInquiryV2 (
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN hbaPortWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN discoveredPortWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT64 fcLUN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT8 CDB_Byte1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT8 CDB_BYte2,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void *pRspBuffer,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 *pRspBufferSize,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT8 *pScsiStatus,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void *pSenseBuffer,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 *pSenseBufferSize
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* Depricated, but supported */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_SendScsiInquiry (
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN PortWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT64 fcLUN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT8 EVPD,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 PageCode,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void *pRspBuffer,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 RspBufferSize,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void *pSenseBuffer,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 SenseBufferSize
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_ScsiReportLUNsV2(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN hbaPortWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN discoveredPortWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void *pRespBuffer,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 *pRespBufferSize,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT8 *pScsiStatus,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void *pSenseBuffer,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 *pSenseBufferSize
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* Depricated, but supported */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_SendReportLUNs (
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN portWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void *pRspBuffer,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 RspBufferSize,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void *pSenseBuffer,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 SenseBufferSize
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_ScsiReadCapacityV2(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN hbaPortWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN discoveredPortWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT64 fcLUN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void *pRspBuffer,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 *pRspBufferSize,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT8 *pScsiStatus,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void *pSenseBuffer,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 *SenseBufferSize
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* Depricated, but supported */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_SendReadCapacity (
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN portWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT64 fcLUN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void *pRspBuffer,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 RspBufferSize,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void *pSenseBuffer,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 SenseBufferSize
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_UINT32 HBA_GetVendorLibraryAttributes (
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 adapter_index,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_LIBRARYATTRIBUTES
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte *attributes
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_RemoveCallback(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_CALLBACKHANDLE callbackHandle
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_RegisterForAdapterAddEvents(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void (*callback) (
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void *data,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN PortWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 eventType
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte ),
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void *userData,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_CALLBACKHANDLE *callbackHandle
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_RegisterForAdapterEvents(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void (*callback)(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void *data,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN PortWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 eventType
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte ),
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void *userData,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_CALLBACKHANDLE *callbackHandle
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_RegisterForAdapterPortEvents(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void (*callback)(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void *data,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN PortWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 eventType,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 fabricPortID
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte ),
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void *userData,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN PortWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_CALLBACKHANDLE *callbackHandle
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_RegisterForAdapterPortStatEvents(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void (*callback)(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void *data,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN PortWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 eventType
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte ),
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void *userData,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN PortWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_PORTSTATISTICS stats,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 statType,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_CALLBACKHANDLE *callbackHandle
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_RegisterForTargetEvents(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void (*callback)(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void *data,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN hbaPortWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN discoveredPortWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 eventType
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte ),
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void *userData,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN hbaPortWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN discoveredPortWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_CALLBACKHANDLE *callbackHandle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 allTargets
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte );
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_STATUS HBA_RegisterForLinkEvents(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void (*callback)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte (
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void *data,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_WWN adapterWWN,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 eventType,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void *pRLIRBuffer,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 RLIRBufferSize
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte ),
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void *userData,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte void *pRLIRBuffer,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_UINT32 RLIRBufferSize,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_HANDLE handle,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_CALLBACKHANDLE *callbackHandle
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte);
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* Wrapper library specific entry points */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHBA_API HBA_UINT32 HBA_GetWrapperLibraryAttributes (
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte HBA_LIBRARYATTRIBUTES
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte *attributes
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte);
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#endif /* HBA_API_H */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#ifdef __cplusplus
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte}
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#endif
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte