3db86aab554edbb4244c8d1a1c90f152eee768afstevel/*
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * CDDL HEADER START
3db86aab554edbb4244c8d1a1c90f152eee768afstevel *
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * The contents of this file are subject to the terms of the
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * Common Development and Distribution License (the "License").
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * You may not use this file except in compliance with the License.
3db86aab554edbb4244c8d1a1c90f152eee768afstevel *
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * or http://www.opensolaris.org/os/licensing.
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * See the License for the specific language governing permissions
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * and limitations under the License.
3db86aab554edbb4244c8d1a1c90f152eee768afstevel *
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * When distributing Covered Code, include this CDDL HEADER in each
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * If applicable, add the following below this CDDL HEADER, with the
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * fields enclosed by brackets "[]" replaced with your own identifying
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * information: Portions Copyright [yyyy] [name of copyright owner]
3db86aab554edbb4244c8d1a1c90f152eee768afstevel *
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * CDDL HEADER END
3db86aab554edbb4244c8d1a1c90f152eee768afstevel */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel/*
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * Copyright 1998 Sun Microsystems, Inc. All rights reserved.
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * Use is subject to license terms.
3db86aab554edbb4244c8d1a1c90f152eee768afstevel */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#ifndef _SYS_SOCAL_CQ_DEFS_H
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define _SYS_SOCAL_CQ_DEFS_H
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#pragma ident "%Z%%M% %I% %E% SMI"
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#ifdef __cplusplus
3db86aab554edbb4244c8d1a1c90f152eee768afstevelextern "C" {
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#endif
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define SOC_CQE_PAYLOAD 60
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel/*
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * define the CQ_HEADER for the soc command queue.
3db86aab554edbb4244c8d1a1c90f152eee768afstevel */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afsteveltypedef struct cq_hdr {
3db86aab554edbb4244c8d1a1c90f152eee768afstevel uchar_t cq_hdr_count;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel uchar_t cq_hdr_type;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel uchar_t cq_hdr_flags;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel uchar_t cq_hdr_seqno;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel} cq_hdr_t;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel/*
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * Command Queue entry description.
3db86aab554edbb4244c8d1a1c90f152eee768afstevel */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afsteveltypedef struct cqe {
3db86aab554edbb4244c8d1a1c90f152eee768afstevel uchar_t cqe_payload[SOC_CQE_PAYLOAD];
3db86aab554edbb4244c8d1a1c90f152eee768afstevel cq_hdr_t cqe_hdr;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel} cqe_t;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel/*
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * CQ Entry types.
3db86aab554edbb4244c8d1a1c90f152eee768afstevel */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define CQ_TYPE_NOP 0x00
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define CQ_TYPE_OUTBOUND 0x01
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define CQ_TYPE_INBOUND 0x02
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define CQ_TYPE_SIMPLE 0x03
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define CQ_TYPE_IO_WRITE 0x04
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define CQ_TYPE_IO_READ 0x05
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define CQ_TYPE_UNSOLICITED 0x06
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define CQ_TYPE_BYPASS_DEV 0x06 /* supercedes unsolicited in SOC+ */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define CQ_TYPE_DIAGNOSTIC 0x07
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define CQ_TYPE_OFFLINE 0x08
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define CQ_TYPE_ADD_POOL 0x09 /* SOC+ enhancement */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define CQ_TYPE_DELETE_POOL 0x0a /* SOC+ enhancement */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define CQ_TYPE_ADD_BUFFER 0x0b /* SOC+ enhancement */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define CQ_TYPE_ADD_POOL_BUFFER 0x0c /* SOC+ enhancement */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define CQ_TYPE_REQUEST_ABORT 0x0d /* SOC+ enhnacement */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define CQ_TYPE_REQUEST_LIP 0x0e /* SOC+ enhancement */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define CQ_TYPE_REPORT_MAP 0x0f /* SOC+ enhancement */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define CQ_TYPE_RESPONSE 0x10
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define CQ_TYPE_INLINE 0x20
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel/*
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * CQ Entry Flags
3db86aab554edbb4244c8d1a1c90f152eee768afstevel */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define CQ_FLAG_CONTINUATION 0x01
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define CQ_FLAG_FULL 0x02
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define CQ_FLAG_BADHEADER 0x04
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define CQ_FLAG_BADPACKET 0x08
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel/*
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * CQ Descriptor Definition.
3db86aab554edbb4244c8d1a1c90f152eee768afstevel */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afsteveltypedef struct cq {
3db86aab554edbb4244c8d1a1c90f152eee768afstevel uint32_t cq_address;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel uchar_t cq_in;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel uchar_t cq_out;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel uchar_t cq_last_index;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel uchar_t cq_seqno;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel} soc_cq_t;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel/*
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * SOC header definition.
3db86aab554edbb4244c8d1a1c90f152eee768afstevel */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afsteveltypedef struct soc_hdr {
3db86aab554edbb4244c8d1a1c90f152eee768afstevel uint_t sh_request_token;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel ushort_t sh_flags;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel uchar_t sh_class;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel uchar_t sh_seg_cnt;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel uint_t sh_byte_cnt;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel} soc_header_t;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel/*
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * SOC header request packet definition.
3db86aab554edbb4244c8d1a1c90f152eee768afstevel */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afsteveltypedef struct soc_request {
3db86aab554edbb4244c8d1a1c90f152eee768afstevel soc_header_t sr_soc_hdr;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel fc_dataseg_t sr_dataseg[3];
3db86aab554edbb4244c8d1a1c90f152eee768afstevel fc_frame_header_t sr_fc_frame_hdr;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel cq_hdr_t sr_cqhdr;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel} soc_request_t;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afsteveltypedef soc_request_t soc_header_request_t;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel/*
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * SOC header response packet definition.
3db86aab554edbb4244c8d1a1c90f152eee768afstevel */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afsteveltypedef struct soc_response {
3db86aab554edbb4244c8d1a1c90f152eee768afstevel soc_header_t sr_soc_hdr;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel uint_t sr_soc_status;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel fc_dataseg_t sr_dataseg;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel uchar_t sr_reserved[10];
3db86aab554edbb4244c8d1a1c90f152eee768afstevel ushort_t sr_ncmds;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel fc_frame_header_t sr_fc_frame_hdr;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel cq_hdr_t sr_cqhdr;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel} soc_response_t;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel/*
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * SOC data request packet definition.
3db86aab554edbb4244c8d1a1c90f152eee768afstevel */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afsteveltypedef struct soc_data_request {
3db86aab554edbb4244c8d1a1c90f152eee768afstevel soc_header_t sdr_soc_hdr;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel fc_dataseg_t sdr_dataseg[6];
3db86aab554edbb4244c8d1a1c90f152eee768afstevel cq_hdr_t sdr_cqhdr;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel} soc_data_request_t;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel/*
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * SOC+ (only) command-only packet definitiion
3db86aab554edbb4244c8d1a1c90f152eee768afstevel */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afsteveltypedef struct soc_cmdonly_request {
3db86aab554edbb4244c8d1a1c90f152eee768afstevel soc_header_t scr_soc_hdr;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel uchar_t reserved[48];
3db86aab554edbb4244c8d1a1c90f152eee768afstevel cq_hdr_t scr_cqhdr;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel} soc_cmdonly_request_t;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel/*
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * SOC+ (only) diagnostic request packet definition
3db86aab554edbb4244c8d1a1c90f152eee768afstevel */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afsteveltypedef struct soc_diag_request {
3db86aab554edbb4244c8d1a1c90f152eee768afstevel soc_header_t sdr_soc_hdr;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel uint_t sdr_diag_cmd;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel uchar_t reserved[44];
3db86aab554edbb4244c8d1a1c90f152eee768afstevel cq_hdr_t sdr_cqhdr;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel} soc_diag_request_t;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define SOC_DIAG_NOP 0x00
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define SOC_DIAG_INT_LOOP 0x01
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define SOC_DIAG_EXT_LOOP 0x02
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define SOC_DIAG_REM_LOOP 0x03
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define SOC_DIAG_XRAM_TEST 0x04
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define SOC_DIAG_SOC_TEST 0x05
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define SOC_DIAG_HCB_TEST 0x06
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define SOC_DIAG_SOCLB_TEST 0x07
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define SOC_DIAG_SRDSLB_TEST 0x08
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define SOC_DIAG_EXTOE_TEST 0x09
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel/*
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * SOC+ (only) pool request packet definition
3db86aab554edbb4244c8d1a1c90f152eee768afstevel */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afsteveltypedef struct soc_pool_request {
3db86aab554edbb4244c8d1a1c90f152eee768afstevel soc_header_t spr_soc_hdr;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel uint_t spr_pool_id;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel uint_t spr_header_mask;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel uint_t spr_buf_size;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel uint_t spr_n_entries;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel uchar_t reserved[8];
3db86aab554edbb4244c8d1a1c90f152eee768afstevel fc_frame_header_t spr_fc_frame_hdr;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel cq_hdr_t spr_cqhdr;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel} soc_pool_request_t;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define SOCPR_MASK_RCTL 0x800000
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define SOCPR_MASK_DID 0x700000
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define SOCPR_MASK_SID 0x070000
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define SOCPR_MASK_TYPE 0x008000
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define SOCPR_MASK_F_CTL 0x007000
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define SOCPR_MASK_SEQ_ID 0x000800
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define SOCPR_MASK_D_CTL 0x000400
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define SOCPR_MASK_SEQ_CNT 0x000300
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define SOCPR_MASK_OX_ID 0x0000f0
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define SOCPR_MASK_PARAMETER 0x0000f0
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel/*
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * Macros for flags field
3db86aab554edbb4244c8d1a1c90f152eee768afstevel *
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * values used in both RSP's and REQ's
3db86aab554edbb4244c8d1a1c90f152eee768afstevel */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define SOC_PORT_B 0x0001 /* entry to/from SOC Port B */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define SOC_FC_HEADER 0x0002 /* this entry contains an FC_HEADER */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel/*
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * REQ: this request is supplying buffers
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * RSP: this pkt is unsolicited
3db86aab554edbb4244c8d1a1c90f152eee768afstevel */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define SOC_UNSOLICITED 0x0080
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel/*
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * values used only for REQ's
3db86aab554edbb4244c8d1a1c90f152eee768afstevel */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define SOC_NO_RESPONSE 0x0004 /* generate niether RSP nor INT */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define SOC_NO_INTR 0x0008 /* generate RSP only */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define SOC_XFER_RDY 0x0010 /* issue a XFRRDY packet for this cmd */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define SOC_IGNORE_RO 0x0020 /* ignore FC_HEADER relative offset */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define SOC_RESP_HEADER 0x0200 /* return frame header regardless of status */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel/*
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * values used only for RSP's
3db86aab554edbb4244c8d1a1c90f152eee768afstevel */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define SOC_COMPLETE 0x0040 /* previous CMD completed. */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define SOC_STATUS 0x0100 /* a SOC status change has occurred */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define CQ_SUCCESS 0x0
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define CQ_FAILURE 0x1
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define CQ_FULL 0x2
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define CQ_REQUEST_0 0
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define CQ_REQUEST_1 1
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define CQ_REQUEST_2 2
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define CQ_REQUEST_3 3
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define CQ_RESPONSE_0 0
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define CQ_RESPONSE_1 1
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define CQ_RESPONSE_2 2
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define CQ_RESPONSE_3 3
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define CQ_SOLICITED_OK CQ_RESPONSE_0
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define CQ_SOLICITED_BAD CQ_RESPONSE_1
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define CQ_UNSOLICITED CQ_RESPONSE_2
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afsteveltypedef struct soc_request_descriptor {
3db86aab554edbb4244c8d1a1c90f152eee768afstevel soc_request_t *srd_sp;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel uint_t srd_sp_count;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel caddr_t srd_cmd;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel uint_t srd_cmd_count;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel caddr_t srd_data;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel uint_t srd_data_count;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel} soc_request_desc_t;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#ifdef __cplusplus
3db86aab554edbb4244c8d1a1c90f152eee768afstevel}
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#endif
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#endif /* !_SYS_SOCAL_CQ_DEFS_H */