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-2012 Emulex. All rights reserved.
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan * Use is subject to license terms.
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifndef _EMLXS_QUEUE_H
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define _EMLXS_QUEUE_H
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef __cplusplus
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathanextern "C" {
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* Queue entry defines */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* EQ entries */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct EQE
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_BIG_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t CQId: 16;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t MinorCode: 12;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t MajorCode: 3;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Valid: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_LITTLE_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Valid: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t MajorCode: 3;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t MinorCode: 12;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t CQId: 16;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} EQE_t;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef union
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t word;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan EQE_t entry;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} EQE_u;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define EQE_VALID 0x00000001 /* Mask for EQE valid */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define EQE_CQID 0xFFFF0000 /* Mask for EQE CQID */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* CQ entries */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct CQE_CmplWQ
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_BIG_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t RequestTag; /* Word 0 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t Status;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t hw_status;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t CmdSpecific; /* Word 1 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Parameter; /* Word 2 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Valid: 1; /* Word 3 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd1: 2;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t XB: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t PV: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Priority: 3;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Code: 8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd2: 16;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_LITTLE_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t hw_status;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t Status;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t RequestTag; /* Word 0 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t CmdSpecific; /* Word 1 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Parameter; /* Word 2 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd2: 16;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Code: 8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Priority: 3;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t PV: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t XB: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd1: 2;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Valid: 1; /* Word 3 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} CQE_CmplWQ_t;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct CQE_RelWQ
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_BIG_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Reserved1; /* Word 0 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Reserved2; /* Word 1 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t WQid; /* Word 2 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t WQindex;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Valid: 1; /* Word 3 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd1: 7;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Code: 8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd2: 16;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_LITTLE_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Reserved1; /* Word 0 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Reserved2; /* Word 1 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t WQindex;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t WQid; /* Word 2 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd2: 16;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Code: 8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd1: 7;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Valid: 1; /* Word 3 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} CQE_RelWQ_t;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct CQE_UnsolRcv
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_BIG_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t RQindex; /* Word 0 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t Status;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t Rsvd1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd2; /* Word 1 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t data_size: 16; /* Word 2 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t RQid: 10;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t FCFId: 6;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Valid: 1; /* Word 3 */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t Rsvd3: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t hdr_size: 6;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Code: 8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t eof: 8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t sof: 8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_LITTLE_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t Rsvd1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t Status;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t RQindex; /* Word 0 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd2; /* Word 1 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t FCFId: 6;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t RQid: 10;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t data_size: 16; /* Word 2 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t sof: 8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t eof: 8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Code: 8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t hdr_size: 6;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t Rsvd3: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Valid: 1; /* Word 3 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} CQE_UnsolRcv_t;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeldtypedef struct CQE_UnsolRcvV1
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld{
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#ifdef EMLXS_BIG_ENDIAN
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint16_t RQindex; /* Word 0 */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint8_t Status;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint8_t Rsvd1;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t Rsvd2: 26; /* Word 1 */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t FCFId: 6;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint16_t data_size; /* Word 2 */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint16_t RQid;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t Valid: 1; /* Word 3 */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t Rsvd3: 1;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t hdr_size: 6;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t Code: 8;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t eof: 8;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t sof: 8;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#endif
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#ifdef EMLXS_LITTLE_ENDIAN
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint8_t Rsvd1;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint8_t Status;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint16_t RQindex; /* Word 0 */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t FCFId: 6;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t Rsvd2: 26; /* Word 1 */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint16_t RQid;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint16_t data_size; /* Word 2 */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t sof: 8;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t eof: 8;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t Code: 8;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t hdr_size: 6;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t Rsvd3: 1;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t Valid: 1; /* Word 3 */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#endif
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld} CQE_UnsolRcvV1_t;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* Status defines */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RQ_STATUS_SUCCESS 0x10
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RQ_STATUS_BUFLEN_EXCEEDED 0x11
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RQ_STATUS_NEED_BUFFER 0x12
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RQ_STATUS_FRAME_DISCARDED 0x13
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct CQE_XRI_Abort
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_BIG_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t Rsvd1; /* Word 0 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t Status;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t Rsvd2;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t rjtStatus; /* Word 1 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t RemoteXID; /* Word 2 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t XRI;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Valid: 1; /* Word 3 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t IA: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t BR: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t EO: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd3: 4;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Code: 8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd4: 16;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_LITTLE_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t Rsvd2;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t Status;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t Rsvd1; /* Word 0 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t rjtStatus; /* Word 1 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t XRI;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t RemoteXID; /* Word 2 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd4: 16;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Code: 8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd3: 4;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t EO: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t BR: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t IA: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Valid: 1; /* Word 3 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} CQE_XRI_Abort_t;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CQE_VALID 0x80000000 /* Mask for CQE valid */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* Defines for CQE Codes */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CQE_TYPE_WQ_COMPLETION 1
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CQE_TYPE_RELEASE_WQE 2
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CQE_TYPE_UNSOL_RCV 4
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CQE_TYPE_XRI_ABORTED 5
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define CQE_TYPE_UNSOL_RCV_V1 9
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct CQE_ASYNC_FCOE
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_BIG_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ref_index; /* Word 0 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t evt_type; /* Word 1 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t fcf_count;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t event_tag; /* Word 2 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_LITTLE_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ref_index; /* Word 0 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t fcf_count;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t evt_type; /* Word 1 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t event_tag; /* Word 2 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} CQE_ASYNC_FCOE_t;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amoretypedef struct CQE_ASYNC_LINK_STATE
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_BIG_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t port_speed; /* Word 0 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t port_duplex;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t link_status;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t phys_port;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
b3660a963b4e1d5319365d4d7c34beb66fb5abc7Sukumar Swaminathan uint16_t qos_link_speed; /* Word 1 */
b3660a963b4e1d5319365d4d7c34beb66fb5abc7Sukumar Swaminathan uint8_t Rsvd1;
b3660a963b4e1d5319365d4d7c34beb66fb5abc7Sukumar Swaminathan uint8_t port_fault;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t event_tag; /* Word 2 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_LITTLE_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t phys_port;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t link_status;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t port_duplex;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t port_speed; /* Word 0 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
b3660a963b4e1d5319365d4d7c34beb66fb5abc7Sukumar Swaminathan uint8_t port_fault; /* Word 1 */
b3660a963b4e1d5319365d4d7c34beb66fb5abc7Sukumar Swaminathan uint8_t Rsvd1;
b3660a963b4e1d5319365d4d7c34beb66fb5abc7Sukumar Swaminathan uint16_t qos_link_speed;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t event_tag; /* Word 2 */
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore#endif
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore} CQE_ASYNC_LINK_STATE_t;
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amoretypedef struct CQE_ASYNC_GRP_5_QOS
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore{
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore#ifdef EMLXS_BIG_ENDIAN
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore uint8_t Rsvd2;
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore uint8_t Rsvd1;
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore uint8_t Rsvd0;
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore uint8_t phys_port; /* Word 0 */
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore uint16_t qos_link_speed;
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore uint8_t Rsvd4;
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore uint8_t Rsvd3; /* Word 1 */
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore uint32_t event_tag; /* Word 2 */
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore#endif
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore#ifdef EMLXS_LITTLE_ENDIAN
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore uint8_t phys_port;
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore uint8_t Rsvd0;
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore uint8_t Rsvd1;
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore uint8_t Rsvd2; /* Word 0 */
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore uint8_t Rsvd3;
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore uint8_t Rsvd4;
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore uint16_t qos_link_speed; /* Word 1 */
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore uint32_t event_tag; /* Word 2 */
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore#endif
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore} CQE_ASYNC_GRP_5_QOS_t;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeldtypedef struct CQE_ASYNC_FC_LINK_ATT
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld{
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#ifdef EMLXS_BIG_ENDIAN
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint8_t port_speed; /* Word 0 */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint8_t topology;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint8_t att_type;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint8_t link_number;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint16_t link_speed; /* Word 1 */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint8_t shared_link_status;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint8_t port_fault;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t event_tag; /* Word 2 */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#endif
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#ifdef EMLXS_LITTLE_ENDIAN
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint8_t link_number;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint8_t att_type;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint8_t topology;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint8_t port_speed; /* Word 0 */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint8_t port_fault;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint8_t shared_link_status;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint16_t link_speed; /* Word 1 */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t event_tag; /* Word 2 */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#endif
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld} CQE_ASYNC_FC_LINK_ATT_t;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeldtypedef struct CQE_ASYNC_PORT
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld{
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint8_t link_status[4];
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t data_word2;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t Rsvd;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld} CQE_ASYNC_PORT_t;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld/* topology */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define TOPOLOGY_UNKNOWN 0
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define TOPOLOGY_NPORT 1
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define TOPOLOGY_LPORT 2
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define TOPOLOGY_INTERNAL_LB 3
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define TOPOLOGY_SERDES_LB 4
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld/* att_type */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define ATT_TYPE_LINK_UP 1
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define ATT_TYPE_LINK_DOWN 2
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define ATT_TYPE_NO_HARD_ALPA 3
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld/* shared_link_status */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define SHARED_STATUS_NONE 0
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define SHARED_STATUS_LD_UNUSABLE 1
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define SHARED_STATUS_LD_TRAN_FAULT 2
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define SHARED_STATUS_LD_NO_SIGNAL 3
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define SHARED_STATUS_LD_MGMT_DISABLED 4
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define SHARED_STATUS_LU_FAILED_P2P 5
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define SHARED_STATUS_LU_FAILED_FLOGI_TMO 6
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define SHARED_STATUS_LU_FAILED_NO_FPORT 7
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define SHARED_STATUS_LU_FAILED_NO_NPIV 8
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define SHARED_STATUS_LU_FAILED_FLOGO 9
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define SHARED_STATUS_LU_LOOPBACK 20
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define SHARED_STATUS_LU_NORMAL 40
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld/* port_fault */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define PORT_FAULT_NONE 0
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define PORT_FAULT_LOCAL 1
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define PORT_FAULT_REMOTE 2
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amoretypedef struct CQE_ASYNC
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore{
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore /* Words 0-2 */
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore union
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore {
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore CQE_ASYNC_LINK_STATE_t link;
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore CQE_ASYNC_FCOE_t fcoe;
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore CQE_ASYNC_GRP_5_QOS_t qos;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld CQE_ASYNC_FC_LINK_ATT_t fc;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld CQE_ASYNC_PORT_t port;
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore } un;
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore#ifdef EMLXS_BIG_ENDIAN
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore uint32_t valid: 1;
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore uint32_t async_evt: 1;
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore uint32_t Rsvd2: 6;
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore uint32_t event_type: 8;
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore uint32_t event_code: 8;
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore uint32_t Rsvd3: 8; /* Word 3 */
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore#endif
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore#ifdef EMLXS_LITTLE_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd3: 8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t event_code: 8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t event_type: 8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd2: 6;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t async_evt: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t valid: 1; /* Word 3 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} CQE_ASYNC_t;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* port_speed defines */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define PHY_1GHZ_LINK 3
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define PHY_10GHZ_LINK 4
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* event_code defines */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define ASYNC_EVENT_CODE_FCOE_LINK_STATE 0x01
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define ASYNC_EVENT_CODE_FCOE_FIP 0x02
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define ASYNC_EVENT_CODE_DCBX 0x03
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define ASYNC_EVENT_CODE_ISCSI 0x04
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define ASYNC_EVENT_CODE_GRP_5 0x05
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define ASYNC_EVENT_CODE_FC_EVENT 0x10
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define ASYNC_EVENT_CODE_PORT 0x11
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define ASYNC_EVENT_CODE_VF 0x12
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define ASYNC_EVENT_CODE_MR 0x13
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld/* FC Event */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define ASYNC_EVENT_FC_LINK_ATT 1
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define ASYNC_EVENT_FC_SHARED_LINK_ATT 2
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* LINK_STATE - link_status defines */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define ASYNC_EVENT_PHYS_LINK_DOWN 0
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define ASYNC_EVENT_PHYS_LINK_UP 1
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define ASYNC_EVENT_LOGICAL_LINK_DOWN 2
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define ASYNC_EVENT_LOGICAL_LINK_UP 3
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* FCOE_FIP - evt_type defines */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define ASYNC_EVENT_NEW_FCF_DISC 1
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define ASYNC_EVENT_FCF_TABLE_FULL 2
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define ASYNC_EVENT_FCF_DEAD 3
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define ASYNC_EVENT_VIRT_LINK_CLEAR 4
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore#define ASYNC_EVENT_FCF_MODIFIED 5
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore/* GRP_5 - evt_type defines */
a9800beb32c1006bb21c8da39e0180ea440b7badGarrett D'Amore#define ASYNC_EVENT_QOS_SPEED 1
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld/* PORT - evt_type defines */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define ASYNC_EVENT_MISCONFIG_PORT 9
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct CQE_MBOX
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_BIG_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t extend_status; /* Word 0 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t cmpl_status;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t tag_low; /* Word 1 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t tag_high; /* Word 2 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t valid: 1; /* Word 3 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t async_evt: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t hpi: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t completed: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t consumed: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd1: 27;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_LITTLE_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t cmpl_status;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t extend_status; /* Word 0 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t tag_low; /* Word 1 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t tag_high; /* Word 2 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd1: 27;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t consumed: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t completed: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t hpi: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t async_evt: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t valid: 1; /* Word 3 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} CQE_MBOX_t;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef union
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t word[4];
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* Group 1 types */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan CQE_ASYNC_t cqAsyncEntry;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan CQE_ASYNC_FCOE_t cqAsyncFCOEEntry;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan CQE_MBOX_t cqMboxEntry;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* Group 2 types */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan CQE_CmplWQ_t cqCmplEntry;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan CQE_RelWQ_t cqRelEntry;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan CQE_UnsolRcv_t cqUnsolRcvEntry;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld CQE_UnsolRcvV1_t cqUnsolRcvEntryV1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan CQE_XRI_Abort_t cqXRIEntry;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} CQE_u;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* RQ entries */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct RQE
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t AddrHi;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t AddrLo;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} RQE_t;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* Definitions for WQEs */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 0 - 2 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan ULP_BDE64 Payload;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 3 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t PayloadLength;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_BIG_ENDIAN
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 4 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd1: 6;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t VF: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t SP: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t LocalId: 24;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 5 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd2: 8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t RemoteId: 24;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_LITTLE_ENDIAN
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 4 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t LocalId: 24;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t SP: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t VF: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd1: 6;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 5 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t RemoteId: 24;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd2: 8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} ELS_REQ_WQE;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 0 - 2 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan ULP_BDE64 Payload;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 3 */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t PayloadLength;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 4 */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t Rsvd1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_BIG_ENDIAN
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 5 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd2: 8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t RemoteId: 24;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_LITTLE_ENDIAN
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 5 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t RemoteId: 24;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd2: 8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} ELS_RSP_WQE;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 0 - 2 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan ULP_BDE64 Payload;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 3 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t PayloadLength;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 4 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Parameter;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_BIG_ENDIAN
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 5 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rctl: 8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Type: 8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t DFctl: 8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd1: 4;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t la: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd2: 3;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_LITTLE_ENDIAN
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 5 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd2: 3;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t la: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd1: 4;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t DFctl: 8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Type: 8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rctl: 8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} GEN_REQ_WQE;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 0 - 2 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan ULP_BDE64 Payload;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 3 */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t Rsvd0;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 4 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Parameter;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_BIG_ENDIAN
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 5 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rctl: 8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Type: 8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t DFctl: 8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ls: 1;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t xo: 1;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t Rsvd1: 2;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t ft: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t si: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd2: 2;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_LITTLE_ENDIAN
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 5 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd2: 2;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t si: 1;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t ft: 1;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t Rsvd1: 2;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t xo: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ls: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t DFctl: 8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Type: 8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rctl: 8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} XMIT_SEQ_WQE;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 0 - 2 */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld ULP_BDE64 Payload;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 3 */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t PayloadLength;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 4 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t TotalTransferCount;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 5 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} FCP_WQE;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 0 - 2 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd1[3];
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_BIG_ENDIAN
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 3 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd2: 16;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Criteria: 8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd3: 7;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t IA: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_LITTLE_ENDIAN
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 3 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t IA: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd3: 7;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Criteria: 8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd2: 16;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 4 - 5 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd4[2];
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} ABORT_WQE;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define ABORT_XRI_TAG 1 /* Abort tag is a XRITag */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define ABORT_ABT_TAG 2 /* Abort tag is a AbortTag */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define ABORT_REQ_TAG 3 /* Abort tag is a RequestTag */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_BIG_ENDIAN
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 0 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t Payload0;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t Payload1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t Payload2;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t Payload3;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 1 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t OXId: 16;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t RXId: 16;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 2 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t SeqCntLow: 16;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t SeqCntHigh: 16;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 3 */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t Rsvd1;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 4 */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t Rsvd2: 8;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t LocalId: 24;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 5 */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t XO: 1;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t AR: 1;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t Rsvd3: 6;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t RemoteId: 24;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_LITTLE_ENDIAN
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 0 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t Payload3;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t Payload2;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t Payload1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint8_t Payload0;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 1 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t RXId: 16;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t OXId: 16;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 2 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t SeqCntHigh: 16;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t SeqCntLow: 16;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 3 */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t Rsvd1;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 4 */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t LocalId: 24;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t Rsvd2: 8;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 5 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t RemoteId: 24;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t Rsvd3: 6;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t AR: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t XO: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} BLS_WQE;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 0 - 4 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd1[5];
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_BIG_ENDIAN
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 5 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t XO: 1;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t Rsvd2: 31;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_LITTLE_ENDIAN
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Word 5 */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t Rsvd2: 31;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t XO: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} CREATE_XRI_WQE;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct emlxs_wqe
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* Words 0-5 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan union
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan {
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t word[6]; /* Words 0-5: cmd specific */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan ELS_REQ_WQE ElsCmd; /* ELS command overlay */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan GEN_REQ_WQE GenReq; /* CT command overlay */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan FCP_WQE FcpCmd; /* FCP command overlay */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan ELS_RSP_WQE ElsRsp; /* ELS response overlay */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan ABORT_WQE Abort; /* Abort overlay */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan BLS_WQE BlsRsp; /* BLS overlay */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan CREATE_XRI_WQE CreateXri; /* Create XRI */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan XMIT_SEQ_WQE XmitSeq; /* Xmit Sequence */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan } un;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_BIG_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* Word 6 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t ContextTag; /* Context Tag */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t XRITag; /* XRItag */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* Word 7 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Timer: 8; /* TOV */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t Rsvd1: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ERP: 1; /* ERP */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t PU: 2; /* PU */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t AR: 1; /* Auto Response */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Class: 3; /* COS */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Command: 8; /* Command Code */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t Rsvd0: 1;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t BsType: 3; /* DIF Block Size type */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ContextType: 2; /* Context Type */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t DIF: 2;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* Word 8 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t AbortTag; /* Abort Tag */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* Word 9 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t OXId; /* OXId on xmitted rsp */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t RequestTag; /* Request Tag */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* Word 10 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t CCP: 8; /* CCP */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t CCPE: 1; /* CCPEnabled */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t CMD: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t XC: 1; /* Exchange Create */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd5: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t PV: 1; /* PRIValid */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t PRI: 3; /* PRI */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* The following 16 bits may be */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* overwritten by PHWQ */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t WQES: 1; /* WQE specify XBL */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t DBDE: 1; /* Data type for BDE 0 */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t IOd: 1; /* IO direction */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t Rsvd4: 1;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t XBL: 1; /* Explicit Buffer List */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t Rsvd3: 1;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t QOSd: 1; /* QOS disable */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t LenLoc: 2; /* Length Location */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t Rsvd2: 3;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t EBDEcnt: 4; /* Extended BDE cnt */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* Word 11 */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t CQId: 16; /* CompletionQueueID */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd8: 8;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t WQEC: 1; /* Request WQE consumed CQE */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t ELSId: 3;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t CmdType: 4; /* Command Type */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_LITTLE_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* Word 6 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t XRITag; /* XRItag */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t ContextTag; /* Context Tag */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* Word 7 */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t DIF: 2;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ContextType: 2; /* Context Type */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t BsType: 3; /* DIF Block Size type */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t Rsvd0: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Command: 8; /* Command Code */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Class: 3; /* COS */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t AR: 1; /* Auto Response */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t PU: 2; /* PU */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t ERP: 1; /* ERP */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t Rsvd1: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Timer: 8; /* TOV */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* Word 8 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t AbortTag; /* Abort Tag */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* Word 9 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t RequestTag; /* Request Tag */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint16_t OXId; /* OXId on xmitted rsp */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* Word 10 */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* The following 16 bits may be */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* overwritten by PHWQ */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t EBDEcnt: 4; /* Extended BDE cnt */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t Rsvd2: 3;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t LenLoc: 2; /* Length Location */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t QOSd: 1; /* QOS disable */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t Rsvd3: 1;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t XBL: 1; /* Explicit Buffer List */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t Rsvd4: 1;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t IOd: 1; /* IO direction */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t DBDE: 1; /* Data type for BDE 0 */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t WQES: 1; /* WQE specify XBL */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t PRI: 3; /* PRI */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t PV: 1; /* PRIValid */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd5: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t XC: 1; /* Exchange Create */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t CMD: 1;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t CCPE: 1; /* CCPEnabled */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t CCP: 8; /* CCP */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* Word 11 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t CmdType: 4; /* Command Type */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t ELSId: 3;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t WQEC: 1; /* Request WQE consumed CQE */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd8: 8;
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t CQId: 16; /* CompletionQueueID */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Words 12 */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld uint32_t CmdSpecific; /* Command specific information */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld /* Words 13-15 */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld ULP_BDE64 FirstData;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} emlxs_wqe_t;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld/* Used if PHWQ is enabled */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#ifdef EMLXS_BIG_ENDIAN
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define WQE_PHWQ_WQID(wqe, qid) *(((uint16_t *)(wqe)) + 21) = \
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld ((qid << 1) & 0xfffe);
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#endif
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#ifdef EMLXS_LITTLE_ENDIAN
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define WQE_PHWQ_WQID(wqe, qid) *(((uint16_t *)(wqe)) + 20) = \
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld ((qid << 1) & 0xfffe);
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#endif
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* Defines for ContextType */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define WQE_RPI_CONTEXT 0
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define WQE_VPI_CONTEXT 1
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define WQE_VFI_CONTEXT 2
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define WQE_FCFI_CONTEXT 3
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* Defines for CmdType */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define WQE_TYPE_FCP_DATA_IN 0x00
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define WQE_TYPE_FCP_DATA_OUT 0x01
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define WQE_TYPE_TRECEIVE 0x02
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define WQE_TYPE_TRSP 0x03
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define WQE_TYPE_SRR_RSP 0x06
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define WQE_TYPE_TSEND 0x07
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define WQE_TYPE_GEN 0x08
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define WQE_TYPE_ABORT 0x08
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define WQE_TYPE_ELS 0x0C
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define WQE_TYPE_MASK_FIP 0x01
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* Defines for ELSId */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define WQE_ELSID_PLOGI 0x04
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define WQE_ELSID_FLOGI 0x03
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define WQE_ELSID_FDISC 0x02
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define WQE_ELSID_LOGO 0x01
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define WQE_ELSID_CMD 0x00
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* RQB */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RQB_HEADER_SIZE 32
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RQB_DATA_SIZE 2048
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RQB_COUNT 256
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define EMLXS_NUM_WQ_PAGES 4
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define WQE_SIZE 64
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define EMLXS_NUM_CQ_PAGES_V2 4
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define CQE_SIZE 16
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define EQ_DEPTH 1024
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define CQ_DEPTH 256
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define CQ_DEPTH_V2 ((4096/CQE_SIZE) * EMLXS_NUM_CQ_PAGES_V2) /* 1024 */
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define WQ_DEPTH ((4096/WQE_SIZE) * EMLXS_NUM_WQ_PAGES) /* 256 */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define MQ_DEPTH 16
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RQ_DEPTH 512 /* Multiple of RQB_COUNT */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#define RQ_DEPTH_EXPONENT 9
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld#define EMLXS_MAX_WQS_PER_EQ 4
8f23e9fa8abcb5857661066b954e63400d589b65Hans Rosenfeld
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan/* Principal doorbell register layouts */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct emlxs_rqdb
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_BIG_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd2:2;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t NumPosted:14; /* Number of entries posted */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd1:6;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Qid:10; /* RQ id for posted RQE */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif /* EMLXS_BIG_ENDIAN */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_LITTLE_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Qid:10; /* RQ id for posted RQE */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd1:6;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t NumPosted:14; /* Number of entries posted */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd2:2;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif /* EMLXS_LITTLE_ENDIAN */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} emlxs_rqdb_t;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef union emlxs_rqdbu
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t word;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_rqdb_t db;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} emlxs_rqdbu_t;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct emlxs_wqdb
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_BIG_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t NumPosted:8; /* Number of entries posted */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Index:8; /* Queue index for posted command */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd1:6;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Qid:10; /* WQ id for posted WQE */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif /* EMLXS_BIG_ENDIAN */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_LITTLE_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Qid:10; /* WQ id for posted WQE */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd1:6;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Index:8; /* Queue index for posted command */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t NumPosted:8; /* Number of entries posted */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif /* EMLXS_LITTLE_ENDIAN */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} emlxs_wqdb_t;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef union emlxs_wqdbu
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t word;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_wqdb_t db;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} emlxs_wqdbu_t;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct emlxs_cqdb
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_BIG_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t NumPosted:2; /* Number of entries posted */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rearm:1; /* Rearm CQ */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t NumPopped:13; /* Number of CQ entries processed */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd1:5;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Event:1; /* 1 if processed entry is EQE */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* 0 if processed entry is CQE */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Qid:10; /* CQ id for posted CQE */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif /* EMLXS_BIG_ENDIAN */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_LITTLE_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Qid:10; /* CQ id for posted CQE */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Event:1; /* 1 if processed entry is EQE */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan /* 0 if processed entry is CQE */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd1:5;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t NumPopped:13; /* Number of CQ entries processed */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rearm:1; /* Rearm CQ */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t NumPosted:2; /* Number of entries posted */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif /* EMLXS_LITTLE_ENDIAN */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} emlxs_cqdb_t;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef union emlxs_cqdbu
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t word;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_cqdb_t db;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} emlxs_cqdbu_t;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct emlxs_eqdb
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_BIG_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd2:2;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rearm:1; /* Rearm EQ */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t NumPopped:13; /* Number of CQ entries processed */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd1:5;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Event:1; /* True iff processed entry is EQE */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Clear:1; /* clears EQ interrupt when set */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Qid:9; /* EQ id for posted EQE */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif /* EMLXS_BIG_ENDIAN */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_LITTLE_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Qid:9; /* EQ id for posted EQE */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Clear:1; /* clears EQ interrupt when set */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Event:1; /* True iff processed entry is EQE */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd1:5;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t NumPopped:13; /* Number of CQ entries processed */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rearm:1; /* Rearm EQ */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd2:2;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif /* EMLXS_LITTLE_ENDIAN */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} emlxs_eqdb_t;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef union emlxs_eqdbu
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t word;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_eqdb_t db;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} emlxs_eqdbu_t;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef struct emlxs_mqdb
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_BIG_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd2:2;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t NumPosted:14; /* Number of entries posted */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd1:5;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Qid:11; /* MQ id for posted MQE */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif /* EMLXS_BIG_ENDIAN */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef EMLXS_LITTLE_ENDIAN
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Qid:11; /* MQ id for posted MQE */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd1:5;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t NumPosted:14; /* Number of entries posted */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t Rsvd2:2;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif /* EMLXS_LITTLE_ENDIAN */
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} emlxs_mqdb_t;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathantypedef union emlxs_mqdbu
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan{
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan uint32_t word;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan emlxs_mqdb_t db;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan} emlxs_mqdbu_t;
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#ifdef __cplusplus
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan}
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan
825277341c15b6b0d2c4b8b622ae7b1d2bdc0390Sukumar Swaminathan#endif /* _EMLXS_QUEUE_H */