]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/scsi/iscsi_tcp.h
Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6
[mv-sheeva.git] / drivers / scsi / iscsi_tcp.h
index 609f4778d12549c30b7b2dbab36bfcd6202e2940..7eba44df0a7f204059eae6f2be95dfe732c91954 100644 (file)
 #define IN_PROGRESS_HEADER_GATHER      0x1
 #define IN_PROGRESS_DATA_RECV          0x2
 #define IN_PROGRESS_DDIGEST_RECV       0x3
+#define IN_PROGRESS_PAD_RECV           0x4
 
 /* xmit state machine */
 #define XMSTATE_IDLE                   0x0
-#define XMSTATE_R_HDR                  0x1
-#define XMSTATE_W_HDR                  0x2
+#define XMSTATE_CMD_HDR_INIT           0x1
+#define XMSTATE_CMD_HDR_XMIT           0x2
 #define XMSTATE_IMM_HDR                        0x4
 #define XMSTATE_IMM_DATA               0x8
 #define XMSTATE_UNS_INIT               0x10
 #define XMSTATE_W_PAD                  0x200
 #define XMSTATE_W_RESEND_PAD           0x400
 #define XMSTATE_W_RESEND_DATA_DIGEST   0x800
+#define XMSTATE_IMM_HDR_INIT           0x1000
+#define XMSTATE_SOL_HDR_INIT           0x2000
 
 #define ISCSI_PAD_LEN                  4
 #define ISCSI_SG_TABLESIZE             SG_ALL
 #define ISCSI_TCP_MAX_CMD_LEN          16
 
+struct crypto_hash;
 struct socket;
 
 /* Socket connection recieve helper */
@@ -81,6 +85,7 @@ struct iscsi_tcp_conn {
                                                 * stop to terminate */
        /* iSCSI connection-wide sequencing */
        int                     hdr_size;       /* PDU header size */
+
        /* control data */
        struct iscsi_tcp_recv   in;             /* TCP receive context */
        int                     in_progress;    /* connection state machine */
@@ -91,8 +96,8 @@ struct iscsi_tcp_conn {
        void                    (*old_write_space)(struct sock *);
 
        /* data and header digests */
-       struct crypto_tfm       *tx_tfm;        /* CRC32C (Tx) */
-       struct crypto_tfm       *rx_tfm;        /* CRC32C (Rx) */
+       struct hash_desc        tx_hash;        /* CRC32C (Tx) */
+       struct hash_desc        rx_hash;        /* CRC32C (Rx) */
 
        /* MIB custom statistics */
        uint32_t                sendpage_failures_cnt;
@@ -150,7 +155,7 @@ struct iscsi_tcp_cmd_task {
        struct scatterlist      *sg;                    /* per-cmd SG list  */
        struct scatterlist      *bad_sg;                /* assert statement */
        int                     sg_count;               /* SG's to process  */
-       uint32_t                exp_r2tsn;
+       uint32_t                exp_datasn;             /* expected target's R2TSN/DataSN */
        int                     data_offset;
        struct iscsi_r2t_info   *r2t;                   /* in progress R2T    */
        struct iscsi_queue      r2tpool;