/*
* 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_MBOX_H
#define _EMLXS_MBOX_H
#ifdef __cplusplus
extern "C" {
#endif
/* SLI 2/3 Mailbox defines */
#ifdef MBOX_EXT_SUPPORT
#else
#define MBOX_EXTENSION_SIZE 0
#endif /* MBOX_EXT_SUPPORT */
/* ==== Mailbox Commands ==== */
/*
* Define Status
*/
/* Driver special codes */
/*
* flags for EMLXS_SLI_ISSUE_MBOX_CMD()
*/
/* then return */
/* wakes thread up */
/*
* Begin Structure Definitions for Mailbox Commands
*/
typedef struct revcompat
{
#ifdef EMLXS_BIG_ENDIAN
/* 0 if none */
#endif
#ifdef EMLXS_LITTLE_ENDIAN
/* 0 if none */
#endif
} REVCOMPAT;
typedef struct id_word
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
union
{
} un;
} PROG_ID;
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} RR_REG;
/* Structure used for a HBQ entry */
typedef struct
{
union UN_TAG
{
uint32_t w;
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} ext;
} unt;
} HBQE_t;
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} HBQ_MASK;
typedef struct
{
/* port array */
/* for LogEntry */
/* 7=logentry */
/* Ring0=b0001, ring2=b0100 */
/* of HBQs[] */
/* use */
/* from Port */
/* in list */
union
{
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} profile2;
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} profile3;
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} profile5;
} profiles;
} HBQ_INIT_t;
/* Structure for MB Command LOAD_SM and DOWN_LOAD */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
union
{
} un;
} LOAD_SM_VAR;
/* Structure for MB Command READ_NVPARM (02) */
/* Good for SLI2/3 and SLI4 */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} READ_NV_VAR;
/* Structure for MB Command WRITE_NVPARMS (03) */
/* Good for SLI2/3 and SLI4 */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} WRITE_NV_VAR;
/* Structure for MB Command RUN_BIU_DIAG64 (0x84) */
/* Good for SLI2/3 and SLI4 */
typedef struct
{
union
{
struct
{
} s2;
} un;
} BIU_DIAG_VAR;
/* Structure for MB Command INIT_LINK (05) */
/* Good for SLI2/3 and SLI4 */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
/* Reset to */
#endif
#ifdef EMLXS_LITTLE_ENDIAN
/* Reset to */
#endif
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
/* ENDEC loopback */
/* Structure for MB Command DOWN_LINK (06) */
/* Good for SLI2/3 and SLI4 */
typedef struct
{
/* Structure for MB Command CONFIG_LINK (07) */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} CONFIG_LINK;
/* Structure for MB Command PART_SLIM (08) */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
/* Structure for MB Command CONFIG_RING (09) */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
/* Structure for MB Command RESET_RING (10) */
typedef struct
{
/* Structure for MB Command READ_CONFIG (11) */
/* Good for SLI2/3 only */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
/* Defines for topology (defined previously) */
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
/* E2E supported on adapters >= 8GB */
/* Structure for MB Command READ_CONFIG(0x11) */
/* Good for SLI4 only */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
/* Structure for MB Command READ_RCONFIG (12) */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
/* Structure for MB Command READ_SPARM (13) */
/* Structure for MB Command READ_SPARM64 (0x8D) */
/* Good for SLI2/3 and SLI4 */
typedef struct
{
union
{
/* structure */
} un;
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
/* Structure for MB Command READ_STATUS (14) */
/* Good for SLI2/3 and SLI4 */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
/* Structure for MB Command READ_RPI (15) */
/* Structure for MB Command READ_RPI64 (0x8F) */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
union
{
} un;
} READ_RPI_VAR;
/* Structure for MB Command READ_XRI (16) */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} READ_XRI_VAR;
/* Structure for MB Command READ_REV (17) */
/* Good for SLI2/3 only */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
union
{
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} b;
} un;
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} READ_REV_VAR;
/* Structure for MB Command READ_REV (17) */
/* Good for SLI4 only */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
/* Structure for MB Command READ_LINK_STAT (18) */
/* Good for SLI2/3 and SLI4 */
typedef struct
{
} READ_LNK_VAR;
/* Structure for MB Command REG_LOGIN (19) */
/* Structure for MB Command REG_LOGIN64 (0x93) */
/* Structure for MB Command REG_RPI (0x93) */
/* Good for SLI2/3 and SLI4 */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
union
{
} un;
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
/* Word 30 contents for REG_LOGIN */
typedef union
{
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} f;
} REG_WD30;
/* Structure for MB Command UNREG_LOGIN (0x14) - SLI2/3 */
/* Structure for MB Command UNREG_RPI (0x14) - SLI4 */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
/* Structure for MB Command REG_FCFI (0xA0) */
/* Good for SLI4 only */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} REG_FCFI_VAR;
/* Defines for mam */
/* Structure for MB Command UNREG_FCFI (0xA2) */
/* Good for SLI4 only */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
/* Structure for MB Command RESUME_RPI (0x9E) */
/* Good for SLI4 only */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
/* Structure for MB Command UNREG_D_ID (0x23) */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
/* Structure for MB Command READ_LA (21) */
/* Structure for MB Command READ_LA64 (0x95) */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
/* lipType */
/* topology */
union
{
/* 128 byte buffer to store */
/* the LILP AL_PA position */
/* map into */
} un;
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} READ_LA_VAR;
/* Structure for MB Command CLEAR_LA (22) */
typedef struct
{
} CLEAR_LA_VAR;
/* Structure for MB Command DUMP */
/* Good for SLI2/3 only */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} DUMP_VAR;
/* Structure for MB Command DUMP */
/* Good for SLI4 only */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} DUMP4_VAR;
/*
* Dump type
*/
/*
* Dump region ID
*/
#define NODE_CFG_A_REGION_ID 0
/* Structure for MB Command UPDATE_CFG */
/* Good for SLI2/3 and SLI4 */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
/* Structure for MB Command DEL_LD_ENTRY (29) */
typedef struct
{
#ifdef EMLXS_LITTLE_ENDIAN
#else
#endif
/* Structure for MB Command LOAD_AREA (81) */
typedef struct
{
#ifdef EMLXS_LITTLE_ENDIAN
#else
#endif
union
{
} un;
/* Structure for MB Command LOAD_EXP_ROM (9C) */
typedef struct
{
#ifdef EMLXS_LITTLE_ENDIAN
#else
#endif
union
{
} un;
/* Structure for MB Command CONFIG_HBQ (7C) */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
union
{
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} profile2;
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} profile3;
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} profile5;
} profiles;
/* Structure for MB Command REG_VPI(0x96) */
/* Good for SLI2/3 and SLI4 */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} REG_VPI_VAR;
/* Structure for MB Command INIT_VPI(0xA3) */
/* Good for SLI4 only */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} INIT_VPI_VAR;
/* Structure for MB Command UNREG_VPI (0x97) */
/* Good for SLI2/3 */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
/* Structure for MB Command UNREG_VPI (0x97) */
/* Good for SLI4 */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
/* Structure for MB Command REG_VFI(0x9F) */
/* Good for SLI4 only */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
/* CHANGE with next firmware drop */
#endif
#ifdef EMLXS_LITTLE_ENDIAN
/* CHANGE with next firmware drop */
#endif
} REG_VFI_VAR;
/* Structure for MB Command INIT_VFI(0xA4) */
/* Good for SLI4 only */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} INIT_VFI_VAR;
/* Structure for MB Command UNREG_VFI (0xA1) */
/* Good for SLI4 only */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
union
{
} un;
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
/* Structure for MB Command CONFIG_PORT (0x88) */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
/* config block */
#endif
#ifdef EMLXS_LITTLE_ENDIAN
/* config block */
#endif
/* config block */
/* config block */
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
#ifdef EMLXS_BIG_ENDIAN
/* Handling */
/* Block */
/* Buffer Management */
#endif
#ifdef EMLXS_LITTLE_ENDIAN
/* Buffer Management */
/* Block */
/* Handling */
#endif
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
/* Structure for MB Command REQUEST_FEATURES (0x9D) */
/* Good for SLI4 only */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
/* SLI-2 Port Control Block */
/* SLIM POINTER */
typedef struct _SLI2_RDSC
{
} SLI2_RDSC;
typedef struct _PCB
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} PCB;
/* NEW_FEATURE */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
/* NEW_FEATURE */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
/* NEW_FEATURE */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
/* Union of all Mailbox Command types */
typedef union
{
/* UPDATE_CFG cmd */
} MAILVARIANTS;
/*
* SLI-2 specific structures
*/
typedef struct _SLI1_DESC
{
typedef struct
{
} HGP;
typedef struct
{
} PGP;
typedef struct _SLI2_DESC
{
typedef union
{
} SLI_VAR;
typedef volatile struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
/* SLI4 IOCTL Mailbox */
/* ALL SLI4 specific mbox commands have a standard request /response header */
/* Word 0 is just like SLI 3 */
typedef struct mbox_req_hdr
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
typedef struct mbox_req_hdr2
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
typedef struct mbox_rsp_hdr
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
typedef struct be_req_hdr
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
union
{
} un_hdr;
} be_req_hdr_t;
/* SLI_CONFIG Mailbox commands */
typedef struct
{
struct
{
#define MGMT_FLASHROM_OPTYPE_ISCSI_FIRMWARE 0
} params;
typedef struct
{
union
{
struct
{
} request;
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
/* phy_type */
#define PHY_TYPE_NOT_SUPPORTED
/* interface_type */
} response;
} params;
typedef struct
{
union
{
struct
{
} request;
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} response;
} params;
typedef struct
{
union
{
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
#define PORT_TYPE_GIGE 0
} request;
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} response;
} params;
typedef struct
{
union
{
struct
{
#define RETRIEVE_FAT 0
} request;
struct
{
} response;
} params;
typedef struct
{
union
{
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} request;
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
#define CS_NO_RESET 0
} response;
} params;
typedef struct
{
union
{
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} request;
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} response;
} params;
typedef struct
{
union
{
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} request;
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} response;
} params;
/* IOCTL_COMMON_QUERY_FIRMWARE_CONFIG */
typedef struct _BE_FW_CFG
{
} BE_FW_CFG;
typedef struct _IOCTL_COMMON_QUERY_FIRMWARE_CONFIG
{
union
{
struct
{
} request;
} params;
/* IOCTL_FCOE_READ_FCF_TABLE */
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} FCF_RECORD_t;
/* defines for mac_address_provider */
typedef struct
{
union
{
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} request;
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} response;
} params;
/* IOCTL_FCOE_ADD_FCF_TABLE */
typedef struct
{
union
{
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} request;
} params;
/* IOCTL_FCOE_DELETE_FCF_TABLE */
typedef struct
{
union
{
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} request;
} params;
/* IOCTL_FCOE_REDISCOVER_FCF_TABLE */
typedef struct
{
union
{
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} request;
} params;
/* IOCTL_COMMON_NOP */
typedef struct _IOCTL_COMMON_NOP
{
union
{
struct
{
} request;
struct
{
} response;
} params;
/* Context for EQ create */
typedef struct _EQ_CONTEXT
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} EQ_CONTEXT;
/* define for Count field */
/* define for Size field */
#define EQ_ELEMENT_SIZE_4 0
/* define for DelayMullt - used for interrupt coalescing */
/* Context for CQ create */
typedef struct _CQ_CONTEXT
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} CQ_CONTEXT;
typedef struct _CQ_CONTEXT_V2
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
/* CqeSize */
#define CQE_SIZE_16_BYTES 0
/* define for Count field */
#define CQ_ELEMENT_COUNT_256 0
/* Context for MQ create */
typedef struct _MQ_CONTEXT
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} MQ_CONTEXT;
typedef struct _MQ_CONTEXT_V1
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
/* define for Size field */
/* Context for RQ create */
typedef struct _RQ_CONTEXT
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} RQ_CONTEXT;
typedef struct _RQ_CONTEXT_V1
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
/* RqeSize */
/* RQ PageSize */
/* IOCTL_COMMON_EQ_CREATE */
typedef struct
{
union
{
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} request;
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} response;
} params;
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} sli_params_t;
/* SliFamily values */
/* IOCTL_COMMON_SLI4_PARAMS */
typedef struct
{
union
{
struct
{
} request;
struct
{
} response;
} params;
/* IOCTL_COMMON_EXTENTS */
typedef struct
{
union
{
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} request;
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} response;
} params;
/* RscType */
/* IOCTL_COMMON_CQ_CREATE */
typedef struct
{
union
{
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} request;
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} response;
} params;
/* IOCTL_COMMON_CQ_CREATE_V2 */
typedef struct
{
union
{
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} request;
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} response;
} params;
/* IOCTL_COMMON_MQ_CREATE */
typedef struct
{
union
{
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} request;
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} response;
} params;
/* IOCTL_COMMON_MQ_CREATE_EXT */
typedef struct
{
union
{
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} request;
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} response;
} params;
/* IOCTL_COMMON_MQ_CREATE_EXT_V1 */
typedef struct
{
union
{
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} request;
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} response;
} params;
/* IOCTL_FCOE_RQ_CREATE */
typedef struct
{
union
{
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} request;
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} response;
} params;
/* IOCTL_FCOE_RQ_CREATE_V1 */
typedef struct
{
union
{
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} request;
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} response;
} params;
/* IOCTL_FCOE_WQ_CREATE */
typedef struct
{
union
{
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} request;
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} response;
} params;
/* IOCTL_FCOE_WQ_CREATE_V1 */
typedef struct
{
union
{
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} request;
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} response;
} params;
/* WqeSize */
/* PageSize */
/* IOCTL_FCOE_CFG_POST_SGL_PAGES */
typedef struct _FCOE_SGL_PAGES
{
typedef struct
{
union
{
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} request;
struct
{
} response;
} params;
/* IOCTL_FCOE_POST_HDR_TEMPLATES */
typedef struct _IOCTL_FCOE_POST_HDR_TEMPLATES
{
union
{
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
}request;
}params;
/* IOCTL_DCBX_GET_DCBX_MODE */
typedef struct _IOCTL_DCBX_GET_DCBX_MODE
{
union
{
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} request;
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} response;
} params;
/* IOCTL_DCBX_SET_DCBX_MODE */
typedef struct _IOCTL_DCBX_SET_DCBX_MODE
{
union
{
struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
} request;
struct
{
} response;
} params;
/* IOCTL_COMMON_GET_CNTL_ATTRIB */
typedef struct
{
typedef struct
{
typedef struct
{
union
{
struct
{
} request;
struct
{
} response;
} params;
typedef union
{
/* Structure for MB Command SLI_CONFIG(0x9b) */
/* Good for SLI4 only */
typedef struct
{
typedef union
{
typedef volatile struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
/*
* End Structure Definitions for Mailbox Commands
*/
typedef struct emlxs_mbq
{
/* Defferred handling pointers */
/* structure */
/* structure */
/* structure */
/* structure */
#ifdef MBOX_EXT_SUPPORT
#endif /* MBOX_EXT_SUPPORT */
} emlxs_mbq_t;
/* We currently do not support IOCBs in SLI1 mode */
typedef struct
{
#ifdef MBOX_EXT_SUPPORT
#endif /* MBOX_EXT_SUPPORT */
(sizeof (MAILBOX) + MBOX_EXTENSION_SIZE))];
} SLIM1;
typedef struct
{
#ifdef MBOX_EXT_SUPPORT
#endif /* MBOX_EXT_SUPPORT */
} SLIM2;
/* def for new 2MB Flash (Pegasus ...) */
#define NO_ALL 0
typedef struct SliAifHdr
{
typedef struct ImageHdr
{
typedef struct
{
#ifdef EMLXS_BIG_ENDIAN
#endif
#ifdef EMLXS_LITTLE_ENDIAN
#endif
union
{
} u0;
union
{
} u1;
typedef struct
{
union
{
} un;
} LOAD_ENTRY;
typedef struct
{
} LOAD_LIST;
#ifdef __cplusplus
}
#endif
#endif /* _EMLXS_MBOX_H */