Linux 2.6.34-rc3
[pohmelfs.git] / drivers / scsi / cxgb3i / cxgb3i_pdu.h
blob0770b23d90da1a704019e6d538a8aae2640f21d4
1 /*
2 * cxgb3i_ulp2.h: Chelsio S3xx iSCSI driver.
4 * Copyright (c) 2008 Chelsio Communications, Inc.
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation.
10 * Written by: Karen Xie (kxie@chelsio.com)
13 #ifndef __CXGB3I_ULP2_PDU_H__
14 #define __CXGB3I_ULP2_PDU_H__
16 struct cpl_iscsi_hdr_norss {
17 union opcode_tid ot;
18 u16 pdu_len_ddp;
19 u16 len;
20 u32 seq;
21 u16 urg;
22 u8 rsvd;
23 u8 status;
26 struct cpl_rx_data_ddp_norss {
27 union opcode_tid ot;
28 u16 urg;
29 u16 len;
30 u32 seq;
31 u32 nxt_seq;
32 u32 ulp_crc;
33 u32 ddp_status;
36 #define RX_DDP_STATUS_IPP_SHIFT 27 /* invalid pagepod */
37 #define RX_DDP_STATUS_TID_SHIFT 26 /* tid mismatch */
38 #define RX_DDP_STATUS_COLOR_SHIFT 25 /* color mismatch */
39 #define RX_DDP_STATUS_OFFSET_SHIFT 24 /* offset mismatch */
40 #define RX_DDP_STATUS_ULIMIT_SHIFT 23 /* ulimit error */
41 #define RX_DDP_STATUS_TAG_SHIFT 22 /* tag mismatch */
42 #define RX_DDP_STATUS_DCRC_SHIFT 21 /* dcrc error */
43 #define RX_DDP_STATUS_HCRC_SHIFT 20 /* hcrc error */
44 #define RX_DDP_STATUS_PAD_SHIFT 19 /* pad error */
45 #define RX_DDP_STATUS_PPP_SHIFT 18 /* pagepod parity error */
46 #define RX_DDP_STATUS_LLIMIT_SHIFT 17 /* llimit error */
47 #define RX_DDP_STATUS_DDP_SHIFT 16 /* ddp'able */
48 #define RX_DDP_STATUS_PMM_SHIFT 15 /* pagepod mismatch */
50 #define ULP2_FLAG_DATA_READY 0x1
51 #define ULP2_FLAG_DATA_DDPED 0x2
52 #define ULP2_FLAG_HCRC_ERROR 0x10
53 #define ULP2_FLAG_DCRC_ERROR 0x20
54 #define ULP2_FLAG_PAD_ERROR 0x40
56 void cxgb3i_conn_closing(struct s3_conn *c3cn);
57 void cxgb3i_conn_pdu_ready(struct s3_conn *c3cn);
58 void cxgb3i_conn_tx_open(struct s3_conn *c3cn);
59 #endif