825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/*
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan * CDDL HEADER START
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan *
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan * The contents of this file are subject to the terms of the
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan * Common Development and Distribution License (the "License").
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan * You may not use this file except in compliance with the License.
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan *
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld * You can obtain a copy of the license at
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld * http://www.opensource.org/licenses/cddl1.txt.
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan * See the License for the specific language governing permissions
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan * and limitations under the License.
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan *
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan * When distributing Covered Code, include this CDDL HEADER in each
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan * If applicable, add the following below this CDDL HEADER, with the
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan * fields enclosed by brackets "[]" replaced with your own identifying
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan * information: Portions Copyright [yyyy] [name of copyright owner]
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan *
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan * CDDL HEADER END
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/*
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld * Copyright (c) 2004-2011 Emulex. All rights reserved.
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan * Use is subject to license terms.
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifndef _EMLXS_IOCB_H
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define _EMLXS_IOCB_H
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef __cplusplus
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathanextern "C" {
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* ==== IOCB Commands ==== */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_RCV_SEQUENCE_CX 0x01
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_XMIT_SEQUENCE_CR 0x02
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_XMIT_SEQUENCE_CX 0x03
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_XMIT_BCAST_CN 0x04
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_XMIT_BCAST_CX 0x05
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_QUE_RING_BUF_CN 0x06
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_QUE_XRI_BUF_CX 0x07
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_IOCB_CONTINUE_CN 0x08
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_RET_XRI_BUF_CX 0x09
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_ELS_REQUEST_CR 0x0A
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_ELS_REQUEST_CX 0x0B
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_RCV_ELS_REQ_CX 0x0D
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_ABORT_XRI_CN 0x0E
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_ABORT_XRI_CX 0x0F
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_CLOSE_XRI_CN 0x10
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_CLOSE_XRI_CX 0x11
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_CREATE_XRI_CR 0x12
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_CREATE_XRI_CX 0x13
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_GET_RPI_CN 0x14
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_XMIT_ELS_RSP_CX 0x15
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_GET_RPI_CR 0x16
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_XRI_ABORTED_CX 0x17
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_FCP_IWRITE_CR 0x18
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_FCP_IWRITE_CX 0x19
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_FCP_IREAD_CR 0x1A
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_FCP_IREAD_CX 0x1B
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_FCP_ICMND_CR 0x1C
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_FCP_ICMND_CX 0x1D
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_FCP_TSEND_CX 0x1F /* FCP_TARGET_MODE */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_ADAPTER_MSG 0x20
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_FCP_TRECEIVE_CX 0x21 /* FCP_TARGET_MODE */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_ADAPTER_DUMP 0x22
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_FCP_TRSP_CX 0x23 /* FCP_TARGET_MODE */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_FCP_AUTO_TRSP_CX 0x29 /* FCP_TARGET_MODE */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* LP3000 gasket IOCB Command Set */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_BPL_IWRITE_CR 0x48
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_BPL_IWRITE_CX 0x49
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_BPL_IREAD_CR 0x4A
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_BPL_IREAD_CX 0x4B
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_BPL_ICMND_CR 0x4C
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_BPL_ICMND_CX 0x4D
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_ASYNC_STATUS 0x7C
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* SLI_2 IOCB Command Set */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_RCV_SEQUENCE64_CX 0x81
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_XMIT_SEQUENCE64_CR 0x82
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_XMIT_SEQUENCE64_CX 0x83
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_XMIT_BCAST64_CN 0x84
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_XMIT_BCAST64_CX 0x85
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_QUE_RING_BUF64_CN 0x86
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_QUE_XRI_BUF64_CX 0x87
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_IOCB_CONTINUE64_CN 0x88
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_RET_XRI_BUF64_CX 0x89
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_ELS_REQUEST64_CR 0x8A
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_ELS_REQUEST64_CX 0x8B
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_RCV_ELS_REQ64_CX 0x8D
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_XMIT_ELS_RSP64_CX 0x95
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_XMIT_BLS_RSP64_CX 0x97
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_FCP_IWRITE64_CR 0x98
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_FCP_IWRITE64_CX 0x99
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_FCP_IREAD64_CR 0x9A
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_FCP_IREAD64_CX 0x9B
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_FCP_ICMND64_CR 0x9C
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_FCP_ICMND64_CX 0x9D
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_FCP_TSEND64_CX 0x9F /* FCP_TARGET_MODE */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_FCP_TRECEIVE64_CX 0xA1 /* FCP_TARGET_MODE */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_FCP_TRSP64_CX 0xA3 /* FCP_TARGET_MODE */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_RCV_SEQ64_CX 0xB5 /* SLI3 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_RCV_ELS64_CX 0xB7 /* SLI3 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_RCV_CONT64_CX 0xBB /* SLI3 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_RCV_SEQ_LIST64_CX 0xC1
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_GEN_REQUEST64_CR 0xC2
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_GEN_REQUEST64_CX 0xC3
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CMD_QUE_RING_LIST64_CN 0xC6
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/*
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan * Begin Structure Definitions for IOCB Commands
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_BIG_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t statAction;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t statRsn;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t statBaExp;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t statLocalError;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_LITTLE_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t statLocalError;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t statBaExp;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t statRsn;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t statAction;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* statAction FBSY reason codes */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define FBSY_RSN_MASK 0xF0 /* Rsn stored in upper nibble */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define FBSY_FABRIC_BSY 0x10 /* F_bsy due to Fabric BSY */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define FBSY_NPORT_BSY 0x30 /* F_bsy due to N_port BSY */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* statAction PBSY action codes */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define PBSY_ACTION1 0x01 /* Sequence terminated - retry */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define PBSY_ACTION2 0x02 /* Sequence active - retry */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* statAction P/FRJT action codes */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RJT_RETRYABLE 0x01 /* Retryable class of error */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RJT_NO_RETRY 0x02 /* Non-Retryable class of error */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* statRsn LS_RJT reason codes defined in LS_RJT structure */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* statRsn P_BSY reason codes */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define PBSY_NPORT_BSY 0x01 /* Physical N_port BSY */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define PBSY_RESRCE_BSY 0x03 /* N_port resource BSY */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define PBSY_VU_BSY 0xFF /* See VU field for rsn */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* statRsn P/F_RJT reason codes */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RJT_BAD_D_ID 0x01 /* Invalid D_ID field */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RJT_BAD_S_ID 0x02 /* Invalid S_ID field */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RJT_UNAVAIL_TEMP 0x03 /* N_Port unavailable temp. */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RJT_UNAVAIL_PERM 0x04 /* N_Port unavailable perm. */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RJT_UNSUP_CLASS 0x05 /* Class not supported */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RJT_DELIM_ERR 0x06 /* Delimiter usage error */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RJT_UNSUP_TYPE 0x07 /* Type not supported */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RJT_BAD_CONTROL 0x08 /* Invalid link conrtol */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RJT_BAD_RCTL 0x09 /* R_CTL invalid */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RJT_BAD_FCTL 0x0A /* F_CTL invalid */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RJT_BAD_OXID 0x0B /* OX_ID invalid */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RJT_BAD_RXID 0x0C /* RX_ID invalid */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RJT_BAD_SEQID 0x0D /* SEQ_ID invalid */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RJT_BAD_DFCTL 0x0E /* DF_CTL invalid */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RJT_BAD_SEQCNT 0x0F /* SEQ_CNT invalid */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RJT_BAD_PARM 0x10 /* Param. field invalid */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RJT_XCHG_ERR 0x11 /* Exchange error */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RJT_PROT_ERR 0x12 /* Protocol error */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RJT_BAD_LENGTH 0x13 /* Invalid Length */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RJT_UNEXPECTED_ACK 0x14 /* Unexpected ACK */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RJT_LOGIN_REQUIRED 0x16 /* Login required */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RJT_TOO_MANY_SEQ 0x17 /* Excessive sequences */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RJT_XCHG_NOT_STRT 0x18 /* Exchange not started */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RJT_UNSUP_SEC_HDR 0x19 /* Security hdr not supported */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RJT_UNAVAIL_PATH 0x1A /* Fabric Path not available */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RJT_VENDOR_UNIQUE 0xFF /* Vendor unique error */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* statRsn BA_RJT reason codes */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define BARJT_BAD_CMD_CODE 0x01 /* Invalid command code */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define BARJT_LOGICAL_ERR 0x03 /* Logical error */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define BARJT_LOGICAL_BSY 0x05 /* Logical busy */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define BARJT_PROTOCOL_ERR 0x07 /* Protocol error */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define BARJT_VU_ERR 0xFF /* Vendor unique error */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* LS_RJT reason explanation defined in LS_RJT structure */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* BA_RJT reason explanation */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define BARJT_EXP_INVALID_ID 0x01 /* Invalid OX_ID/RX_ID */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define BARJT_EXP_ABORT_SEQ 0x05 /* Abort SEQ, no more info */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* Local Reject errors */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_SUCCESS 0x00
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_MISSING_CONTINUE 0x01
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_SEQUENCE_TIMEOUT 0x02
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_INTERNAL_ERROR 0x03
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_INVALID_RPI 0x04
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_NO_XRI 0x05
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_ILLEGAL_COMMAND 0x06
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_XCHG_DROPPED 0x07
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_ILLEGAL_FIELD 0x08
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* RESERVED 0x09 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* RESERVED 0x0A */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_RCV_BUFFER_WAITING 0x0B
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* RESERVED 0x0C */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_TX_DMA_FAILED 0x0D
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_RX_DMA_FAILED 0x0E
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_ILLEGAL_FRAME 0x0F
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* RESERVED 0x10 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_NO_RESOURCES 0x11
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* RESERVED 0x12 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_ILLEGAL_LENGTH 0x13
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_UNSUPPORTED_FEATURE 0x14
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_ABORT_IN_PROGRESS 0x15
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_ABORT_REQUESTED 0x16
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_RCV_BUFFER_TIMEOUT 0x17
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_LOOP_OPEN_FAILURE 0x18
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_RING_RESET 0x19
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_LINK_DOWN 0x1A
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_CORRUPTED_DATA 0x1B
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_CORRUPTED_RPI 0x1C
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_OUT_OF_ORDER_DATA 0x1D
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_OUT_OF_ORDER_ACK 0x1E
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_DUP_FRAME 0x1F
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_LINK_CONTROL_FRAME 0x20 /* ACK_N received */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_BAD_HOST_ADDRESS 0x21
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_RCV_HDRBUF_WAITING 0x22
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_MISSING_HDR_BUFFER 0x23
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_MSEQ_CHAIN_CORRUPTED 0x24
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_ABORTMULT_REQUESTED 0x25
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* RESERVED 0x26 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* RESERVED 0x27 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_BUFFER_SHORTAGE 0x28
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_XRIBUF_WAITING 0x29
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* RESERVED 0x2A */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_MISSING_HBQ_ENTRY 0x2B
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_ABORT_EXT_REQ 0x2C
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_CLOSE_EXT_REQ 0x2D
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define IOERR_INVALID_VPI 0x2E
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* RESERVED 0x2F */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_XRIBUF_MISSING 0x30
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_ASSI_RSP_SUPPRESSED 0x31
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* RESERVED 0x32 - 0x3F */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_ROFFSET_INVAL 0x40
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_ROFFSET_MISSING 0x41
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_INSUF_BUFFER 0x42
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_MISSING_SI 0x43
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_MISSING_ES 0x44
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_INCOMP_XFER 0x45
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* RESERVED 0x46 - 0xFF */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* Driver defined */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOERR_ABORT_TIMEOUT 0xF0
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} PARM_ERR;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef union
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan struct
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan {
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_BIG_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t Rctl; /* R_CTL field */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t Type; /* TYPE field */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t Dfctl; /* DF_CTL field */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t Fctl; /* Bits 0-7 of IOCB word 5 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_LITTLE_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t Fctl; /* Bits 0-7 of IOCB word 5 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t Dfctl; /* DF_CTL field */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t Type; /* TYPE field */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t Rctl; /* R_CTL field */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define FCP_RTYPE 0x08 /* FCP_TARGET_MODE Type - Rctl */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define BC 0x02 /* Broadcast Received - Fctl */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define SI 0x04 /* Sequence Initiative */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define LA 0x08 /* Ignore Link Attention state */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define FSEQ 0x40 /* First Sequence */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define LSEQ 0x80 /* Last Sequence */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan } hcsw;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t reserved;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} WORD5;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* IOCB Command template for a generic response */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t reserved[4];
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan PARM_ERR perr;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} GENERIC_RSP;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* IOCB Command template for XMIT / XMIT_BCAST / RCV_SEQUENCE / XMIT_ELS */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan ULP_BDE xrsqbde[2];
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t xrsqRo; /* Starting Relative Offset */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan WORD5 w5; /* Header control/status word */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} XR_SEQ_FIELDS;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* IOCB Command template for ELS_REQUEST */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan ULP_BDE elsReq;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan ULP_BDE elsRsp;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_BIG_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t word4Rsvd:7;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t fl:1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t myID:24;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t word5Rsvd:8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t remoteID:24;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_LITTLE_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t myID:24;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t fl:1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t word4Rsvd:7;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t remoteID:24;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t word5Rsvd:8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} ELS_REQUEST;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* IOCB Command template for RCV_ELS_REQ */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan ULP_BDE elsReq[2];
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t parmRo;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_BIG_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t word5Rsvd:8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t remoteID:24;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_LITTLE_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t remoteID:24;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t word5Rsvd:8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} RCV_ELS_REQ;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* IOCB Command template for ABORT / CLOSE_XRI */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t rsvd[3];
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t abortType;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define ABORT_TYPE_ABTX 0x00000000
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define ABORT_TYPE_ABTS 0x00000001
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t parm;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_BIG_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t abortContextTag; /* ulpContext from command to */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* abort/close */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t abortIoTag; /* ulpIoTag from command to */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* abort/close */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_LITTLE_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t abortIoTag; /* ulpIoTag from command to */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* abort/close */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t abortContextTag; /* ulpContext from command to */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* abort/close */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} AC_XRI;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* IOCB Command template for GET_RPI */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t rsvd[4];
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t parmRo;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_BIG_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t word5Rsvd:8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t remoteID:24;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_LITTLE_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t remoteID:24;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t word5Rsvd:8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} GET_RPI;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* IOCB Command template for all FCP Initiator commands */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan ULP_BDE fcpi_cmnd; /* FCP_CMND payload descriptor */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan ULP_BDE fcpi_rsp; /* Rcv buffer */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t fcpi_parm;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t fcpi_XRdy; /* transfer ready for IWRITE */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} FCPI_FIELDS;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* IOCB Command template for all FCP Target commands */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan ULP_BDE fcpt_Buffer[2]; /* FCP_CMND payload descriptor */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t fcpt_Offset;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t fcpt_Length; /* transfer ready for IWRITE */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} FCPT_FIELDS;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* SLI-2 IOCB structure definitions */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* IOCB Command template for 64 bit XMIT / XMIT_BCAST / XMIT_ELS */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan ULP_BDL bdl;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t xrsqRo; /* Starting Relative Offset */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan WORD5 w5; /* Header control/status word */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} XMT_SEQ_FIELDS64;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* IOCB Command template for 64 bit RCV_SEQUENCE64 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan ULP_BDE64 rcvBde;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t rsvd1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t xrsqRo; /* Starting Relative Offset */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan WORD5 w5; /* Header control/status word */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} RCV_SEQ_FIELDS64;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* IOCB Command template for ELS_REQUEST64 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan ULP_BDL bdl;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_BIG_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t word4Rsvd:7;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t fl:1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t myID:24;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t word5Rsvd:8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t remoteID:24;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_LITTLE_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t myID:24;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t fl:1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t word4Rsvd:7;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t remoteID:24;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t word5Rsvd:8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} ELS_REQUEST64;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* IOCB Command template for ASYNC_STATUS */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan ULP_BDL resv;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t parameter;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_BIG_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t EventCode;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t SubContext;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_LITTLE_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t SubContext;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t EventCode;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} ASYNC_STATUS;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* IOCB Command template for QUE_RING_LIST64 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan ULP_BDL bdl;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t rsvd1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t rsvd2;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} QUE_RING_LIST64;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* IOCB Command template for GEN_REQUEST64 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan ULP_BDL bdl;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t param; /* Starting Relative Offset */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan WORD5 w5; /* Header control/status word */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} GEN_REQUEST64;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* IOCB Command template for RCV_ELS_REQ64 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan ULP_BDE64 elsReq;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t rsvd1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t parmRo;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_BIG_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t word5Rsvd:8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t remoteID:24;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_LITTLE_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t remoteID:24;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t word5Rsvd:8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} RCV_ELS_REQ64;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* IOCB Command template for all 64 bit FCP Initiator commands */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan ULP_BDL bdl;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t fcpi_parm;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t fcpi_XRdy; /* transfer ready for IWRITE */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} FCPI_FIELDS64;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* IOCB Command template for all 64 bit FCP Target commands */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan ULP_BDL bdl;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t fcpt_Offset;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t fcpt_Length; /* transfer ready for IWRITE */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} FCPT_FIELDS64;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* IOCB Command template for all 64 bit FCP Target commands */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t rsp_length;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t rsvd1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t rsvd2;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t iotag32;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t status;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_BIG_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t rsvd:30;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t lnk:1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif /* EMLXS_BIG_ENDIAN */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_LITTLE_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t lnk:1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t rsvd:30;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif /* EMLXS_LITTLE_ENDIAN */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} AUTO_TRSP;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t io_tag64_low; /* Word 8 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t io_tag64_high; /* Word 9 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_BIG_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t cs_ctl:8; /* Word 10, bit 31:24 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t cs_en:1; /* Word 10, bit 23 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t rsv:15; /* Word 10, bit 22:8 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ebde_count:8; /* Word 10, bit 7:0 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_LITTLE_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ebde_count:8; /* Word 10, bit 7:0 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t rsv:15; /* Word 10, bit 22:8 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t cs_en:1; /* Word 10, bit 23 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t cs_ctl:8; /* Word 10, bit 31:24 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t rsplen; /* Word 11 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan ULP_BDE64 ebde1; /* Word 12:14 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan ULP_BDE64 ebde2; /* Word 15:17 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan ULP_BDE64 ebde3; /* Word 18:20 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan ULP_BDE64 ebde4; /* Word 21:23 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan ULP_BDE64 ebde5; /* Word 24:26 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan ULP_BDE64 ebde6; /* Word 27:29 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} GENERIC_EXT_IOCB;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/*
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan * IOCB Command Extension template for
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan * CMD_RCV_ELS64_CX (0xB7) or CMD_RCV_SEQ64_CX (0xB5)
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_BIG_ENDIAN
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint16_t oxid; /* word 8 */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint16_t seq_cnt;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t vpi; /* word 9 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t buddy_xri;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ccp:8; /* word 10 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ccpe:1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t rsvd:23;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_LITTLE_ENDIAN
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint16_t seq_cnt; /* word 8 */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint16_t oxid;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t buddy_xri; /* word 9 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t vpi;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t rsvd:23; /* word 10 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ccpe:1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ccp:8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t seq_len; /* received sequence length */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan ULP_BDL bde2; /* total 4 words */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} RCV_SEQ_ELS_64_SLI3_EXT;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef volatile struct emlxs_iocb
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{ /* IOCB structure */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan union
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan {
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan GENERIC_RSP grsp; /* Generic response */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan XR_SEQ_FIELDS xrseq; /* XMIT/BCAST/RCV_SEQ */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan ULP_BDE cont[3]; /* up to 3 cont BDEs */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan ELS_REQUEST elsreq; /* ELS_REQ template */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan RCV_ELS_REQ rcvels; /* RCV_ELS_REQ */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* template */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan AC_XRI acxri; /* ABORT/CLOSE_XRI */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* template */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan GET_RPI getrpi; /* GET_RPI template */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan FCPI_FIELDS fcpi; /* FCP Initiator */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* template */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan FCPT_FIELDS fcpt; /* FCP target */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* template */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* SLI-2 structures */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan ULP_BDE64 cont64[2]; /* up to 2 64 bit */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* cont BDE_64s */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan ELS_REQUEST64 elsreq64; /* ELS_REQ64 template */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan QUE_RING_LIST64 qringlist64; /* QUE RING LIST64 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* template */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan GEN_REQUEST64 genreq64; /* GEN_REQUEST64 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* template */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan RCV_ELS_REQ64 rcvels64; /* RCV_ELS_REQ */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* template */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan XMT_SEQ_FIELDS64 xseq64; /* XMIT / BCAST cmd */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan FCPI_FIELDS64 fcpi64; /* FCP 64 bit */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* Initiator template */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan FCPT_FIELDS64 fcpt64; /* FCP 64 bit target */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* template */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan AUTO_TRSP atrsp; /* FCP 64 bit target */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* template */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan RCV_SEQ_FIELDS64 rcvseq64;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan ASYNC_STATUS astat;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpWord[6]; /* generic 6 'words' */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan } un;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan union
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan {
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan struct
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan {
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_BIG_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t ulpContext; /* High order bits */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* word6 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t ulpIoTag; /* Low order bits */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* word6 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_LITTLE_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t ulpIoTag; /* Low order bits */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* word6 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t ulpContext; /* High order bits */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* word6 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan } t1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan struct
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan {
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_BIG_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t ulpContext; /* High order bits */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* word6 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t ulpIoTag1:2; /* Low order bits */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* word6 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t ulpIoTag0:14; /* Low order bits */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* word6 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_LITTLE_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t ulpIoTag0:14; /* Low order bits */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* word6 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t ulpIoTag1:2; /* Low order bits */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* word6 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t ulpContext; /* High order bits */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* word6 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan } t2;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpWord;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan } un1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define ULPCONTEXT un1.t1.ulpContext
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define ULPIOTAG un1.t1.ulpIoTag
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define ULPIOTAG0 un1.t2.ulpIoTag0
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define ULPDELAYXMIT un1.t2.ulpIoTag1
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOCB_DELAYXMIT_MSK 0x3000
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan union
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan {
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan struct
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan {
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_BIG_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpRsvdByte:8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpXS:1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpFCP2Rcvy:1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpPU:2;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpIr:1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpClass:3;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpCommand:8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpStatus:4;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpBdeCount:2;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpLe:1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpOwner:1; /* Low order bit */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* word 7 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_LITTLE_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpOwner:1; /* Low order bit */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* word 7 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpLe:1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpBdeCount:2;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpStatus:4;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpCommand:8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpClass:3;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpIr:1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpPU:2;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpFCP2Rcvy:1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpXS:1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpRsvdByte:8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan } t1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan struct
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan {
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_BIG_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpRsvdByte:8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpCT:2;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpPU:2;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpIr:1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpClass:3;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpCommand:8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpStatus:4;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpBdeCount:2;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpLe:1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpOwner:1; /* Low order bit */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* word 7 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_LITTLE_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpOwner:1; /* Low order bit */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* word 7 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpLe:1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpBdeCount:2;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpStatus:4;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpCommand:8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpClass:3;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpIr:1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpPU:2;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpCT:2;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpRsvdByte:8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan } t2;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ulpWord;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan } un2;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define ULPCT un2.t2.ulpCT
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define ULPRSVDBYTE un2.t1.ulpRsvdByte
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define ULPXS un2.t1.ulpXS
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define ULPFCP2RCVY un2.t1.ulpFCP2Rcvy
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define ULPPU un2.t1.ulpPU
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define ULPIR un2.t1.ulpIr
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define ULPCLASS un2.t1.ulpClass
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define ULPCOMMAND un2.t1.ulpCommand
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define ULPSTATUS un2.t1.ulpStatus
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define ULPBDECOUNT un2.t1.ulpBdeCount
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define ULPLE un2.t1.ulpLe
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define ULPOWNER un2.t1.ulpOwner
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* 32 bytes at this point */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* SLI4 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RXFCHDR un.ulpWord
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RXSEQCNT un1.ulpWord
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RXSEQLEN un2.ulpWord
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan union
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan {
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan GENERIC_EXT_IOCB ext_iocb;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan RCV_SEQ_ELS_64_SLI3_EXT ext_rcv;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t sli3Words[24]; /* 96 extra bytes */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* for SLI-3 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan } unsli3;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* 128 bytes at this point */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOCB_FCP 1 /* IOCB is used for */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* FCP ELS cmds - ulpRsvByte */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOCB_IP 2 /* IOCB is used for IP ELS cmds */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define PARM_UNUSED 0 /* PU field (Word 4) not used */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define PARM_REL_OFF 1 /* PU field (Word 4) = R. O. */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define PARM_XFER_CHECK 2 /* PU field (Word 4) = Data Xfer Len */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CLASS1 0 /* Class 1 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CLASS2 1 /* Class 2 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CLASS3 2 /* Class 3 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CLASS_FCP_INTERMIX 7 /* FCP Data->Cls 1, all else->Cls 2 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOSTAT_SUCCESS 0x0 /* ulpStatus */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOSTAT_FCP_RSP_ERROR 0x1
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOSTAT_REMOTE_STOP 0x2
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOSTAT_LOCAL_REJECT 0x3
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOSTAT_NPORT_RJT 0x4
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOSTAT_FABRIC_RJT 0x5
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOSTAT_NPORT_BSY 0x6
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOSTAT_FABRIC_BSY 0x7
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOSTAT_INTERMED_RSP 0x8
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOSTAT_LS_RJT 0x9
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOSTAT_RESERVED_A 0xA
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOSTAT_CMD_REJECT 0xB
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOSTAT_FCP_TGT_LENCHK 0xC
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOSTAT_RESERVED_D 0xD
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOSTAT_RESERVED_E 0xE
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOSTAT_NEED_BUFF_ENTRY 0xF
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* Special error codes */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOSTAT_DATA_OVERRUN 0x10 /* Added for resid handling */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOSTAT_DATA_UNDERRUN 0x11 /* Added for resid handling */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define IOSTAT_RSP_INVALID 0x12 /* Added for resp checking */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} emlxs_iocb_t;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef emlxs_iocb_t IOCB;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct emlxs_iocbq
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_iocb_t iocb;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_wqe_t wqe; /* SLI4 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan struct emlxs_iocbq *next;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore void *bp; /* ptr to data buffer structure */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan void *port; /* Board info pointer */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan void *channel; /* IO Channel pointer */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan void *node; /* Node pointer */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan void *sbp; /* Pkt pointer */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t flag;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOCB_POOL_ALLOCATED 0x00000001
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOCB_PRIORITY 0x00000002
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOCB_SPECIAL 0x00000004
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOCB_FCP_CMD 0x00000008
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define IOCB_FCT_DATA 0x00000020 /* tgt-mode */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} emlxs_iocbq_t;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef emlxs_iocbq_t IOCBQ;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef __cplusplus
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan}
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif /* _EMLXS_IOCB_H */