emlxs_fcio.h revision 8f23e9fa8abcb5857661066b954e63400d589b65
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright (c) 2004-2012 Emulex. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _EMLXS_FCIO_H
#define _EMLXS_FCIO_H
#ifdef __cplusplus
extern "C" {
#endif
/*
* FCIO_REV: 1 - Initial implementation 2 - Added EMLXS_GET_FCIO_REV support
*/
#define FCIO_REV 2
/* Emulex ULP Diag Codes */
/* DUMP file ids */
#define EMLXS_TXT_FILE_ID 1
#define EMLXS_DMP_FILE_ID 2
#define EMLXS_CEE_FILE_ID 3
#define EMLXS_FAT_FILE_ID 4
/* Emulex specific error codes */
#define EMLXS_ERRNO_START 0x100
/* test fail */
/* bad data */
/* compatible */
/* with H/W */
/* download */
/* failed */
/* take HBA */
/* offline */
/* code image */
/* not supp */
/* required */
typedef struct emlxs_parm
{
char label[32];
char help[128];
} emlxs_parm_t;
/* emlxs_parm_t flags */
#define PARM_BOOLEAN 0x00000002
#define PARM_HEX 0x00000004
/* PARM_DYNAMIC subtypes */
/* required */
/* required */
typedef struct emlxs_vpd_desc
{
char id[80];
char part_num[32];
char eng_change[32];
char manufacturer[80];
char serial_num[32];
char model[32];
char model_desc[80];
char port_num[4];
char prog_types[80];
typedef struct emlxs_vpd_desc_v2
{
char id[256];
char part_num[256];
char eng_change[256];
char manufacturer[256];
char serial_num[256];
char model[256];
char model_desc[256];
char port_num[256];
char prog_types[256];
typedef struct emlxs_phy_desc
{
typedef struct emlxs_throttle_desc
{
typedef struct emlxs_log_req
{
/* capable of receiving */
/* This value can be set to zero */
/* to receive just log stats */
typedef struct emlxs_log_resp
{
/* This represents the first available */
/* msg id >= first id requested */
/* This value will be <= the max count */
/* requested */
/* If count > 0, then the response buffer */
/* will immediately follow this structure */
/* The response buffer will be an array of */
/* string buffers MAX_MSG_LENGTH in size */
#define MAX_LOG_MSG_LENGTH 160
typedef struct FCIO_EQ_DESC
{
/* Statistics */
typedef struct FCIO_CQ_DESC
{
/* Statistics */
typedef struct FCIO_WQ_DESC
{
/* Statistics */
typedef struct FCIO_RQ_DESC
{
/* Statistics */
#define FCIO_MSI_MAX_INTRS 8
#define FCIO_MAX_WQS_PER_EQ 4
#define FCIO_MAX_EQS FCIO_MSI_MAX_INTRS
/* One CQ for each WQ & (RQ pair) plus one for the MQ */
typedef struct FCIO_Q_STAT
{
#ifdef __cplusplus
}
#endif
#endif /* _EMLXS_FCIO_H */