root/drivers/scsi/bnx2i/57xx_iscsi_hsi.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* 57xx_iscsi_hsi.h: QLogic NetXtreme II iSCSI HSI.
   2  *
   3  * Copyright (c) 2006 - 2013 Broadcom Corporation
   4  * Copyright (c) 2014, QLogic Corporation
   5  *
   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.
   9  *
  10  * Written by: Anil Veerabhadrappa (anilgv@broadcom.com)
  11  * Previously Maintained by: Eddie Wai (eddie.wai@broadcom.com)
  12  * Maintained by: QLogic-Storage-Upstream@qlogic.com
  13  */
  14 #ifndef __57XX_ISCSI_HSI_LINUX_LE__
  15 #define __57XX_ISCSI_HSI_LINUX_LE__
  16 
  17 /*
  18  * iSCSI Async CQE
  19  */
  20 struct bnx2i_async_msg {
  21 #if defined(__BIG_ENDIAN)
  22         u8 op_code;
  23         u8 reserved1;
  24         u16 reserved0;
  25 #elif defined(__LITTLE_ENDIAN)
  26         u16 reserved0;
  27         u8 reserved1;
  28         u8 op_code;
  29 #endif
  30         u32 reserved2;
  31         u32 exp_cmd_sn;
  32         u32 max_cmd_sn;
  33         u32 reserved3[2];
  34 #if defined(__BIG_ENDIAN)
  35         u16 reserved5;
  36         u8 err_code;
  37         u8 reserved4;
  38 #elif defined(__LITTLE_ENDIAN)
  39         u8 reserved4;
  40         u8 err_code;
  41         u16 reserved5;
  42 #endif
  43         u32 reserved6;
  44         u32 lun[2];
  45 #if defined(__BIG_ENDIAN)
  46         u8 async_event;
  47         u8 async_vcode;
  48         u16 param1;
  49 #elif defined(__LITTLE_ENDIAN)
  50         u16 param1;
  51         u8 async_vcode;
  52         u8 async_event;
  53 #endif
  54 #if defined(__BIG_ENDIAN)
  55         u16 param2;
  56         u16 param3;
  57 #elif defined(__LITTLE_ENDIAN)
  58         u16 param3;
  59         u16 param2;
  60 #endif
  61         u32 reserved7[3];
  62         u32 cq_req_sn;
  63 };
  64 
  65 
  66 /*
  67  * iSCSI Buffer Descriptor (BD)
  68  */
  69 struct iscsi_bd {
  70         u32 buffer_addr_hi;
  71         u32 buffer_addr_lo;
  72 #if defined(__BIG_ENDIAN)
  73         u16 reserved0;
  74         u16 buffer_length;
  75 #elif defined(__LITTLE_ENDIAN)
  76         u16 buffer_length;
  77         u16 reserved0;
  78 #endif
  79 #if defined(__BIG_ENDIAN)
  80         u16 reserved3;
  81         u16 flags;
  82 #define ISCSI_BD_RESERVED1 (0x3F<<0)
  83 #define ISCSI_BD_RESERVED1_SHIFT 0
  84 #define ISCSI_BD_LAST_IN_BD_CHAIN (0x1<<6)
  85 #define ISCSI_BD_LAST_IN_BD_CHAIN_SHIFT 6
  86 #define ISCSI_BD_FIRST_IN_BD_CHAIN (0x1<<7)
  87 #define ISCSI_BD_FIRST_IN_BD_CHAIN_SHIFT 7
  88 #define ISCSI_BD_RESERVED2 (0xFF<<8)
  89 #define ISCSI_BD_RESERVED2_SHIFT 8
  90 #elif defined(__LITTLE_ENDIAN)
  91         u16 flags;
  92 #define ISCSI_BD_RESERVED1 (0x3F<<0)
  93 #define ISCSI_BD_RESERVED1_SHIFT 0
  94 #define ISCSI_BD_LAST_IN_BD_CHAIN (0x1<<6)
  95 #define ISCSI_BD_LAST_IN_BD_CHAIN_SHIFT 6
  96 #define ISCSI_BD_FIRST_IN_BD_CHAIN (0x1<<7)
  97 #define ISCSI_BD_FIRST_IN_BD_CHAIN_SHIFT 7
  98 #define ISCSI_BD_RESERVED2 (0xFF<<8)
  99 #define ISCSI_BD_RESERVED2_SHIFT 8
 100         u16 reserved3;
 101 #endif
 102 };
 103 
 104 
 105 /*
 106  * iSCSI Cleanup SQ WQE
 107  */
 108 struct bnx2i_cleanup_request {
 109 #if defined(__BIG_ENDIAN)
 110         u8 op_code;
 111         u8 reserved1;
 112         u16 reserved0;
 113 #elif defined(__LITTLE_ENDIAN)
 114         u16 reserved0;
 115         u8 reserved1;
 116         u8 op_code;
 117 #endif
 118         u32 reserved2[3];
 119 #if defined(__BIG_ENDIAN)
 120         u16 reserved3;
 121         u16 itt;
 122 #define ISCSI_CLEANUP_REQUEST_INDEX (0x3FFF<<0)
 123 #define ISCSI_CLEANUP_REQUEST_INDEX_SHIFT 0
 124 #define ISCSI_CLEANUP_REQUEST_TYPE (0x3<<14)
 125 #define ISCSI_CLEANUP_REQUEST_TYPE_SHIFT 14
 126 #elif defined(__LITTLE_ENDIAN)
 127         u16 itt;
 128 #define ISCSI_CLEANUP_REQUEST_INDEX (0x3FFF<<0)
 129 #define ISCSI_CLEANUP_REQUEST_INDEX_SHIFT 0
 130 #define ISCSI_CLEANUP_REQUEST_TYPE (0x3<<14)
 131 #define ISCSI_CLEANUP_REQUEST_TYPE_SHIFT 14
 132         u16 reserved3;
 133 #endif
 134         u32 reserved4[10];
 135 #if defined(__BIG_ENDIAN)
 136         u8 cq_index;
 137         u8 reserved6;
 138         u16 reserved5;
 139 #elif defined(__LITTLE_ENDIAN)
 140         u16 reserved5;
 141         u8 reserved6;
 142         u8 cq_index;
 143 #endif
 144 };
 145 
 146 
 147 /*
 148  * iSCSI Cleanup CQE
 149  */
 150 struct bnx2i_cleanup_response {
 151 #if defined(__BIG_ENDIAN)
 152         u8 op_code;
 153         u8 status;
 154         u16 reserved0;
 155 #elif defined(__LITTLE_ENDIAN)
 156         u16 reserved0;
 157         u8 status;
 158         u8 op_code;
 159 #endif
 160         u32 reserved1[3];
 161         u32 reserved2[2];
 162 #if defined(__BIG_ENDIAN)
 163         u16 reserved4;
 164         u8 err_code;
 165         u8 reserved3;
 166 #elif defined(__LITTLE_ENDIAN)
 167         u8 reserved3;
 168         u8 err_code;
 169         u16 reserved4;
 170 #endif
 171         u32 reserved5[7];
 172 #if defined(__BIG_ENDIAN)
 173         u16 reserved6;
 174         u16 itt;
 175 #define ISCSI_CLEANUP_RESPONSE_INDEX (0x3FFF<<0)
 176 #define ISCSI_CLEANUP_RESPONSE_INDEX_SHIFT 0
 177 #define ISCSI_CLEANUP_RESPONSE_TYPE (0x3<<14)
 178 #define ISCSI_CLEANUP_RESPONSE_TYPE_SHIFT 14
 179 #elif defined(__LITTLE_ENDIAN)
 180         u16 itt;
 181 #define ISCSI_CLEANUP_RESPONSE_INDEX (0x3FFF<<0)
 182 #define ISCSI_CLEANUP_RESPONSE_INDEX_SHIFT 0
 183 #define ISCSI_CLEANUP_RESPONSE_TYPE (0x3<<14)
 184 #define ISCSI_CLEANUP_RESPONSE_TYPE_SHIFT 14
 185         u16 reserved6;
 186 #endif
 187         u32 cq_req_sn;
 188 };
 189 
 190 
 191 /*
 192  * SCSI read/write SQ WQE
 193  */
 194 struct bnx2i_cmd_request {
 195 #if defined(__BIG_ENDIAN)
 196         u8 op_code;
 197         u8 op_attr;
 198 #define ISCSI_CMD_REQUEST_TASK_ATTR (0x7<<0)
 199 #define ISCSI_CMD_REQUEST_TASK_ATTR_SHIFT 0
 200 #define ISCSI_CMD_REQUEST_RESERVED1 (0x3<<3)
 201 #define ISCSI_CMD_REQUEST_RESERVED1_SHIFT 3
 202 #define ISCSI_CMD_REQUEST_WRITE (0x1<<5)
 203 #define ISCSI_CMD_REQUEST_WRITE_SHIFT 5
 204 #define ISCSI_CMD_REQUEST_READ (0x1<<6)
 205 #define ISCSI_CMD_REQUEST_READ_SHIFT 6
 206 #define ISCSI_CMD_REQUEST_FINAL (0x1<<7)
 207 #define ISCSI_CMD_REQUEST_FINAL_SHIFT 7
 208         u16 reserved0;
 209 #elif defined(__LITTLE_ENDIAN)
 210         u16 reserved0;
 211         u8 op_attr;
 212 #define ISCSI_CMD_REQUEST_TASK_ATTR (0x7<<0)
 213 #define ISCSI_CMD_REQUEST_TASK_ATTR_SHIFT 0
 214 #define ISCSI_CMD_REQUEST_RESERVED1 (0x3<<3)
 215 #define ISCSI_CMD_REQUEST_RESERVED1_SHIFT 3
 216 #define ISCSI_CMD_REQUEST_WRITE (0x1<<5)
 217 #define ISCSI_CMD_REQUEST_WRITE_SHIFT 5
 218 #define ISCSI_CMD_REQUEST_READ (0x1<<6)
 219 #define ISCSI_CMD_REQUEST_READ_SHIFT 6
 220 #define ISCSI_CMD_REQUEST_FINAL (0x1<<7)
 221 #define ISCSI_CMD_REQUEST_FINAL_SHIFT 7
 222         u8 op_code;
 223 #endif
 224 #if defined(__BIG_ENDIAN)
 225         u16 ud_buffer_offset;
 226         u16 sd_buffer_offset;
 227 #elif defined(__LITTLE_ENDIAN)
 228         u16 sd_buffer_offset;
 229         u16 ud_buffer_offset;
 230 #endif
 231         u32 lun[2];
 232 #if defined(__BIG_ENDIAN)
 233         u16 reserved2;
 234         u16 itt;
 235 #define ISCSI_CMD_REQUEST_INDEX (0x3FFF<<0)
 236 #define ISCSI_CMD_REQUEST_INDEX_SHIFT 0
 237 #define ISCSI_CMD_REQUEST_TYPE (0x3<<14)
 238 #define ISCSI_CMD_REQUEST_TYPE_SHIFT 14
 239 #elif defined(__LITTLE_ENDIAN)
 240         u16 itt;
 241 #define ISCSI_CMD_REQUEST_INDEX (0x3FFF<<0)
 242 #define ISCSI_CMD_REQUEST_INDEX_SHIFT 0
 243 #define ISCSI_CMD_REQUEST_TYPE (0x3<<14)
 244 #define ISCSI_CMD_REQUEST_TYPE_SHIFT 14
 245         u16 reserved2;
 246 #endif
 247         u32 total_data_transfer_length;
 248         u32 cmd_sn;
 249         u32 reserved3;
 250         u32 cdb[4];
 251         u32 zero_fill;
 252         u32 bd_list_addr_lo;
 253         u32 bd_list_addr_hi;
 254 #if defined(__BIG_ENDIAN)
 255         u8 cq_index;
 256         u8 sd_start_bd_index;
 257         u8 ud_start_bd_index;
 258         u8 num_bds;
 259 #elif defined(__LITTLE_ENDIAN)
 260         u8 num_bds;
 261         u8 ud_start_bd_index;
 262         u8 sd_start_bd_index;
 263         u8 cq_index;
 264 #endif
 265 };
 266 
 267 
 268 /*
 269  * task statistics for write response
 270  */
 271 struct bnx2i_write_resp_task_stat {
 272 #if defined(__BIG_ENDIAN)
 273         u16 num_r2ts;
 274         u16 num_data_outs;
 275 #elif defined(__LITTLE_ENDIAN)
 276         u16 num_data_outs;
 277         u16 num_r2ts;
 278 #endif
 279 };
 280 
 281 /*
 282  * task statistics for read response
 283  */
 284 struct bnx2i_read_resp_task_stat {
 285 #if defined(__BIG_ENDIAN)
 286         u16 reserved;
 287         u16 num_data_ins;
 288 #elif defined(__LITTLE_ENDIAN)
 289         u16 num_data_ins;
 290         u16 reserved;
 291 #endif
 292 };
 293 
 294 /*
 295  * task statistics for iSCSI cmd response
 296  */
 297 union bnx2i_cmd_resp_task_stat {
 298         struct bnx2i_write_resp_task_stat write_stat;
 299         struct bnx2i_read_resp_task_stat read_stat;
 300 };
 301 
 302 /*
 303  * SCSI Command CQE
 304  */
 305 struct bnx2i_cmd_response {
 306 #if defined(__BIG_ENDIAN)
 307         u8 op_code;
 308         u8 response_flags;
 309 #define ISCSI_CMD_RESPONSE_RESERVED0 (0x1<<0)
 310 #define ISCSI_CMD_RESPONSE_RESERVED0_SHIFT 0
 311 #define ISCSI_CMD_RESPONSE_RESIDUAL_UNDERFLOW (0x1<<1)
 312 #define ISCSI_CMD_RESPONSE_RESIDUAL_UNDERFLOW_SHIFT 1
 313 #define ISCSI_CMD_RESPONSE_RESIDUAL_OVERFLOW (0x1<<2)
 314 #define ISCSI_CMD_RESPONSE_RESIDUAL_OVERFLOW_SHIFT 2
 315 #define ISCSI_CMD_RESPONSE_BR_RESIDUAL_UNDERFLOW (0x1<<3)
 316 #define ISCSI_CMD_RESPONSE_BR_RESIDUAL_UNDERFLOW_SHIFT 3
 317 #define ISCSI_CMD_RESPONSE_BR_RESIDUAL_OVERFLOW (0x1<<4)
 318 #define ISCSI_CMD_RESPONSE_BR_RESIDUAL_OVERFLOW_SHIFT 4
 319 #define ISCSI_CMD_RESPONSE_RESERVED1 (0x7<<5)
 320 #define ISCSI_CMD_RESPONSE_RESERVED1_SHIFT 5
 321         u8 response;
 322         u8 status;
 323 #elif defined(__LITTLE_ENDIAN)
 324         u8 status;
 325         u8 response;
 326         u8 response_flags;
 327 #define ISCSI_CMD_RESPONSE_RESERVED0 (0x1<<0)
 328 #define ISCSI_CMD_RESPONSE_RESERVED0_SHIFT 0
 329 #define ISCSI_CMD_RESPONSE_RESIDUAL_UNDERFLOW (0x1<<1)
 330 #define ISCSI_CMD_RESPONSE_RESIDUAL_UNDERFLOW_SHIFT 1
 331 #define ISCSI_CMD_RESPONSE_RESIDUAL_OVERFLOW (0x1<<2)
 332 #define ISCSI_CMD_RESPONSE_RESIDUAL_OVERFLOW_SHIFT 2
 333 #define ISCSI_CMD_RESPONSE_BR_RESIDUAL_UNDERFLOW (0x1<<3)
 334 #define ISCSI_CMD_RESPONSE_BR_RESIDUAL_UNDERFLOW_SHIFT 3
 335 #define ISCSI_CMD_RESPONSE_BR_RESIDUAL_OVERFLOW (0x1<<4)
 336 #define ISCSI_CMD_RESPONSE_BR_RESIDUAL_OVERFLOW_SHIFT 4
 337 #define ISCSI_CMD_RESPONSE_RESERVED1 (0x7<<5)
 338 #define ISCSI_CMD_RESPONSE_RESERVED1_SHIFT 5
 339         u8 op_code;
 340 #endif
 341         u32 data_length;
 342         u32 exp_cmd_sn;
 343         u32 max_cmd_sn;
 344         u32 reserved2;
 345         u32 residual_count;
 346 #if defined(__BIG_ENDIAN)
 347         u16 reserved4;
 348         u8 err_code;
 349         u8 reserved3;
 350 #elif defined(__LITTLE_ENDIAN)
 351         u8 reserved3;
 352         u8 err_code;
 353         u16 reserved4;
 354 #endif
 355         u32 reserved5[5];
 356         union bnx2i_cmd_resp_task_stat task_stat;
 357         u32 reserved6;
 358 #if defined(__BIG_ENDIAN)
 359         u16 reserved7;
 360         u16 itt;
 361 #define ISCSI_CMD_RESPONSE_INDEX (0x3FFF<<0)
 362 #define ISCSI_CMD_RESPONSE_INDEX_SHIFT 0
 363 #define ISCSI_CMD_RESPONSE_TYPE (0x3<<14)
 364 #define ISCSI_CMD_RESPONSE_TYPE_SHIFT 14
 365 #elif defined(__LITTLE_ENDIAN)
 366         u16 itt;
 367 #define ISCSI_CMD_RESPONSE_INDEX (0x3FFF<<0)
 368 #define ISCSI_CMD_RESPONSE_INDEX_SHIFT 0
 369 #define ISCSI_CMD_RESPONSE_TYPE (0x3<<14)
 370 #define ISCSI_CMD_RESPONSE_TYPE_SHIFT 14
 371         u16 reserved7;
 372 #endif
 373         u32 cq_req_sn;
 374 };
 375 
 376 
 377 
 378 /*
 379  * firmware middle-path request SQ WQE
 380  */
 381 struct bnx2i_fw_mp_request {
 382 #if defined(__BIG_ENDIAN)
 383         u8 op_code;
 384         u8 op_attr;
 385         u16 hdr_opaque1;
 386 #elif defined(__LITTLE_ENDIAN)
 387         u16 hdr_opaque1;
 388         u8 op_attr;
 389         u8 op_code;
 390 #endif
 391         u32 data_length;
 392         u32 hdr_opaque2[2];
 393 #if defined(__BIG_ENDIAN)
 394         u16 reserved0;
 395         u16 itt;
 396 #define ISCSI_FW_MP_REQUEST_INDEX (0x3FFF<<0)
 397 #define ISCSI_FW_MP_REQUEST_INDEX_SHIFT 0
 398 #define ISCSI_FW_MP_REQUEST_TYPE (0x3<<14)
 399 #define ISCSI_FW_MP_REQUEST_TYPE_SHIFT 14
 400 #elif defined(__LITTLE_ENDIAN)
 401         u16 itt;
 402 #define ISCSI_FW_MP_REQUEST_INDEX (0x3FFF<<0)
 403 #define ISCSI_FW_MP_REQUEST_INDEX_SHIFT 0
 404 #define ISCSI_FW_MP_REQUEST_TYPE (0x3<<14)
 405 #define ISCSI_FW_MP_REQUEST_TYPE_SHIFT 14
 406         u16 reserved0;
 407 #endif
 408         u32 hdr_opaque3[4];
 409         u32 resp_bd_list_addr_lo;
 410         u32 resp_bd_list_addr_hi;
 411         u32 resp_buffer;
 412 #define ISCSI_FW_MP_REQUEST_RESP_BUFFER_LENGTH (0xFFFFFF<<0)
 413 #define ISCSI_FW_MP_REQUEST_RESP_BUFFER_LENGTH_SHIFT 0
 414 #define ISCSI_FW_MP_REQUEST_NUM_RESP_BDS (0xFF<<24)
 415 #define ISCSI_FW_MP_REQUEST_NUM_RESP_BDS_SHIFT 24
 416 #if defined(__BIG_ENDIAN)
 417         u16 reserved4;
 418         u8 reserved3;
 419         u8 flags;
 420 #define ISCSI_FW_MP_REQUEST_RESERVED1 (0x1<<0)
 421 #define ISCSI_FW_MP_REQUEST_RESERVED1_SHIFT 0
 422 #define ISCSI_FW_MP_REQUEST_LOCAL_COMPLETION (0x1<<1)
 423 #define ISCSI_FW_MP_REQUEST_LOCAL_COMPLETION_SHIFT 1
 424 #define ISCSI_FW_MP_REQUEST_UPDATE_EXP_STAT_SN (0x1<<2)
 425 #define ISCSI_FW_MP_REQUEST_UPDATE_EXP_STAT_SN_SHIFT 2
 426 #define ISCSI_FW_MP_REQUEST_RESERVED2 (0x1F<<3)
 427 #define ISCSI_FW_MP_REQUEST_RESERVED2_SHIFT 3
 428 #elif defined(__LITTLE_ENDIAN)
 429         u8 flags;
 430 #define ISCSI_FW_MP_REQUEST_RESERVED1 (0x1<<0)
 431 #define ISCSI_FW_MP_REQUEST_RESERVED1_SHIFT 0
 432 #define ISCSI_FW_MP_REQUEST_LOCAL_COMPLETION (0x1<<1)
 433 #define ISCSI_FW_MP_REQUEST_LOCAL_COMPLETION_SHIFT 1
 434 #define ISCSI_FW_MP_REQUEST_UPDATE_EXP_STAT_SN (0x1<<2)
 435 #define ISCSI_FW_MP_REQUEST_UPDATE_EXP_STAT_SN_SHIFT 2
 436 #define ISCSI_FW_MP_REQUEST_RESERVED2 (0x1F<<3)
 437 #define ISCSI_FW_MP_REQUEST_RESERVED2_SHIFT 3
 438         u8 reserved3;
 439         u16 reserved4;
 440 #endif
 441         u32 bd_list_addr_lo;
 442         u32 bd_list_addr_hi;
 443 #if defined(__BIG_ENDIAN)
 444         u8 cq_index;
 445         u8 reserved6;
 446         u8 reserved5;
 447         u8 num_bds;
 448 #elif defined(__LITTLE_ENDIAN)
 449         u8 num_bds;
 450         u8 reserved5;
 451         u8 reserved6;
 452         u8 cq_index;
 453 #endif
 454 };
 455 
 456 
 457 /*
 458  * firmware response - CQE: used only by firmware
 459  */
 460 struct bnx2i_fw_response {
 461         u32 hdr_dword1[2];
 462         u32 hdr_exp_cmd_sn;
 463         u32 hdr_max_cmd_sn;
 464         u32 hdr_ttt;
 465         u32 hdr_res_cnt;
 466         u32 cqe_flags;
 467 #define ISCSI_FW_RESPONSE_RESERVED2 (0xFF<<0)
 468 #define ISCSI_FW_RESPONSE_RESERVED2_SHIFT 0
 469 #define ISCSI_FW_RESPONSE_ERR_CODE (0xFF<<8)
 470 #define ISCSI_FW_RESPONSE_ERR_CODE_SHIFT 8
 471 #define ISCSI_FW_RESPONSE_RESERVED3 (0xFFFF<<16)
 472 #define ISCSI_FW_RESPONSE_RESERVED3_SHIFT 16
 473         u32 stat_sn;
 474         u32 hdr_dword2[2];
 475         u32 hdr_dword3[2];
 476         u32 task_stat;
 477         u32 reserved0;
 478         u32 hdr_itt;
 479         u32 cq_req_sn;
 480 };
 481 
 482 
 483 /*
 484  * iSCSI KCQ CQE parameters
 485  */
 486 union iscsi_kcqe_params {
 487         u32 reserved0[4];
 488 };
 489 
 490 /*
 491  * iSCSI KCQ CQE
 492  */
 493 struct iscsi_kcqe {
 494         u32 iscsi_conn_id;
 495         u32 completion_status;
 496         u32 iscsi_conn_context_id;
 497         union iscsi_kcqe_params params;
 498 #if defined(__BIG_ENDIAN)
 499         u8 flags;
 500 #define ISCSI_KCQE_RESERVED0 (0xF<<0)
 501 #define ISCSI_KCQE_RESERVED0_SHIFT 0
 502 #define ISCSI_KCQE_LAYER_CODE (0x7<<4)
 503 #define ISCSI_KCQE_LAYER_CODE_SHIFT 4
 504 #define ISCSI_KCQE_RESERVED1 (0x1<<7)
 505 #define ISCSI_KCQE_RESERVED1_SHIFT 7
 506         u8 op_code;
 507         u16 qe_self_seq;
 508 #elif defined(__LITTLE_ENDIAN)
 509         u16 qe_self_seq;
 510         u8 op_code;
 511         u8 flags;
 512 #define ISCSI_KCQE_RESERVED0 (0xF<<0)
 513 #define ISCSI_KCQE_RESERVED0_SHIFT 0
 514 #define ISCSI_KCQE_LAYER_CODE (0x7<<4)
 515 #define ISCSI_KCQE_LAYER_CODE_SHIFT 4
 516 #define ISCSI_KCQE_RESERVED1 (0x1<<7)
 517 #define ISCSI_KCQE_RESERVED1_SHIFT 7
 518 #endif
 519 };
 520 
 521 
 522 
 523 /*
 524  * iSCSI KWQE header
 525  */
 526 struct iscsi_kwqe_header {
 527 #if defined(__BIG_ENDIAN)
 528         u8 flags;
 529 #define ISCSI_KWQE_HEADER_RESERVED0 (0xF<<0)
 530 #define ISCSI_KWQE_HEADER_RESERVED0_SHIFT 0
 531 #define ISCSI_KWQE_HEADER_LAYER_CODE (0x7<<4)
 532 #define ISCSI_KWQE_HEADER_LAYER_CODE_SHIFT 4
 533 #define ISCSI_KWQE_HEADER_RESERVED1 (0x1<<7)
 534 #define ISCSI_KWQE_HEADER_RESERVED1_SHIFT 7
 535         u8 op_code;
 536 #elif defined(__LITTLE_ENDIAN)
 537         u8 op_code;
 538         u8 flags;
 539 #define ISCSI_KWQE_HEADER_RESERVED0 (0xF<<0)
 540 #define ISCSI_KWQE_HEADER_RESERVED0_SHIFT 0
 541 #define ISCSI_KWQE_HEADER_LAYER_CODE (0x7<<4)
 542 #define ISCSI_KWQE_HEADER_LAYER_CODE_SHIFT 4
 543 #define ISCSI_KWQE_HEADER_RESERVED1 (0x1<<7)
 544 #define ISCSI_KWQE_HEADER_RESERVED1_SHIFT 7
 545 #endif
 546 };
 547 
 548 /*
 549  * iSCSI firmware init request 1
 550  */
 551 struct iscsi_kwqe_init1 {
 552 #if defined(__BIG_ENDIAN)
 553         struct iscsi_kwqe_header hdr;
 554         u8 reserved0;
 555         u8 num_cqs;
 556 #elif defined(__LITTLE_ENDIAN)
 557         u8 num_cqs;
 558         u8 reserved0;
 559         struct iscsi_kwqe_header hdr;
 560 #endif
 561         u32 dummy_buffer_addr_lo;
 562         u32 dummy_buffer_addr_hi;
 563 #if defined(__BIG_ENDIAN)
 564         u16 num_ccells_per_conn;
 565         u16 num_tasks_per_conn;
 566 #elif defined(__LITTLE_ENDIAN)
 567         u16 num_tasks_per_conn;
 568         u16 num_ccells_per_conn;
 569 #endif
 570 #if defined(__BIG_ENDIAN)
 571         u16 sq_wqes_per_page;
 572         u16 sq_num_wqes;
 573 #elif defined(__LITTLE_ENDIAN)
 574         u16 sq_num_wqes;
 575         u16 sq_wqes_per_page;
 576 #endif
 577 #if defined(__BIG_ENDIAN)
 578         u8 cq_log_wqes_per_page;
 579         u8 flags;
 580 #define ISCSI_KWQE_INIT1_PAGE_SIZE (0xF<<0)
 581 #define ISCSI_KWQE_INIT1_PAGE_SIZE_SHIFT 0
 582 #define ISCSI_KWQE_INIT1_DELAYED_ACK_ENABLE (0x1<<4)
 583 #define ISCSI_KWQE_INIT1_DELAYED_ACK_ENABLE_SHIFT 4
 584 #define ISCSI_KWQE_INIT1_KEEP_ALIVE_ENABLE (0x1<<5)
 585 #define ISCSI_KWQE_INIT1_KEEP_ALIVE_ENABLE_SHIFT 5
 586 #define ISCSI_KWQE_INIT1_TIME_STAMPS_ENABLE (0x1<<6)
 587 #define ISCSI_KWQE_INIT1_TIME_STAMPS_ENABLE_SHIFT 6
 588 #define ISCSI_KWQE_INIT1_RESERVED1 (0x1<<7)
 589 #define ISCSI_KWQE_INIT1_RESERVED1_SHIFT 7
 590         u16 cq_num_wqes;
 591 #elif defined(__LITTLE_ENDIAN)
 592         u16 cq_num_wqes;
 593         u8 flags;
 594 #define ISCSI_KWQE_INIT1_PAGE_SIZE (0xF<<0)
 595 #define ISCSI_KWQE_INIT1_PAGE_SIZE_SHIFT 0
 596 #define ISCSI_KWQE_INIT1_DELAYED_ACK_ENABLE (0x1<<4)
 597 #define ISCSI_KWQE_INIT1_DELAYED_ACK_ENABLE_SHIFT 4
 598 #define ISCSI_KWQE_INIT1_KEEP_ALIVE_ENABLE (0x1<<5)
 599 #define ISCSI_KWQE_INIT1_KEEP_ALIVE_ENABLE_SHIFT 5
 600 #define ISCSI_KWQE_INIT1_TIME_STAMPS_ENABLE (0x1<<6)
 601 #define ISCSI_KWQE_INIT1_TIME_STAMPS_ENABLE_SHIFT 6
 602 #define ISCSI_KWQE_INIT1_RESERVED1 (0x1<<7)
 603 #define ISCSI_KWQE_INIT1_RESERVED1_SHIFT 7
 604         u8 cq_log_wqes_per_page;
 605 #endif
 606 #if defined(__BIG_ENDIAN)
 607         u16 cq_num_pages;
 608         u16 sq_num_pages;
 609 #elif defined(__LITTLE_ENDIAN)
 610         u16 sq_num_pages;
 611         u16 cq_num_pages;
 612 #endif
 613 #if defined(__BIG_ENDIAN)
 614         u16 rq_buffer_size;
 615         u16 rq_num_wqes;
 616 #elif defined(__LITTLE_ENDIAN)
 617         u16 rq_num_wqes;
 618         u16 rq_buffer_size;
 619 #endif
 620 };
 621 
 622 /*
 623  * iSCSI firmware init request 2
 624  */
 625 struct iscsi_kwqe_init2 {
 626 #if defined(__BIG_ENDIAN)
 627         struct iscsi_kwqe_header hdr;
 628         u16 max_cq_sqn;
 629 #elif defined(__LITTLE_ENDIAN)
 630         u16 max_cq_sqn;
 631         struct iscsi_kwqe_header hdr;
 632 #endif
 633         u32 error_bit_map[2];
 634         u32 reserved1[5];
 635 };
 636 
 637 /*
 638  * Initial iSCSI connection offload request 1
 639  */
 640 struct iscsi_kwqe_conn_offload1 {
 641 #if defined(__BIG_ENDIAN)
 642         struct iscsi_kwqe_header hdr;
 643         u16 iscsi_conn_id;
 644 #elif defined(__LITTLE_ENDIAN)
 645         u16 iscsi_conn_id;
 646         struct iscsi_kwqe_header hdr;
 647 #endif
 648         u32 sq_page_table_addr_lo;
 649         u32 sq_page_table_addr_hi;
 650         u32 cq_page_table_addr_lo;
 651         u32 cq_page_table_addr_hi;
 652         u32 reserved0[3];
 653 };
 654 
 655 /*
 656  * iSCSI Page Table Entry (PTE)
 657  */
 658 struct iscsi_pte {
 659         u32 hi;
 660         u32 lo;
 661 };
 662 
 663 /*
 664  * Initial iSCSI connection offload request 2
 665  */
 666 struct iscsi_kwqe_conn_offload2 {
 667 #if defined(__BIG_ENDIAN)
 668         struct iscsi_kwqe_header hdr;
 669         u16 reserved0;
 670 #elif defined(__LITTLE_ENDIAN)
 671         u16 reserved0;
 672         struct iscsi_kwqe_header hdr;
 673 #endif
 674         u32 rq_page_table_addr_lo;
 675         u32 rq_page_table_addr_hi;
 676         struct iscsi_pte sq_first_pte;
 677         struct iscsi_pte cq_first_pte;
 678         u32 num_additional_wqes;
 679 };
 680 
 681 
 682 /*
 683  * Initial iSCSI connection offload request 3
 684  */
 685 struct iscsi_kwqe_conn_offload3 {
 686 #if defined(__BIG_ENDIAN)
 687         struct iscsi_kwqe_header hdr;
 688         u16 reserved0;
 689 #elif defined(__LITTLE_ENDIAN)
 690         u16 reserved0;
 691         struct iscsi_kwqe_header hdr;
 692 #endif
 693         u32 reserved1;
 694         struct iscsi_pte qp_first_pte[3];
 695 };
 696 
 697 
 698 /*
 699  * iSCSI connection update request
 700  */
 701 struct iscsi_kwqe_conn_update {
 702 #if defined(__BIG_ENDIAN)
 703         struct iscsi_kwqe_header hdr;
 704         u16 reserved0;
 705 #elif defined(__LITTLE_ENDIAN)
 706         u16 reserved0;
 707         struct iscsi_kwqe_header hdr;
 708 #endif
 709 #if defined(__BIG_ENDIAN)
 710         u8 session_error_recovery_level;
 711         u8 max_outstanding_r2ts;
 712         u8 reserved2;
 713         u8 conn_flags;
 714 #define ISCSI_KWQE_CONN_UPDATE_HEADER_DIGEST (0x1<<0)
 715 #define ISCSI_KWQE_CONN_UPDATE_HEADER_DIGEST_SHIFT 0
 716 #define ISCSI_KWQE_CONN_UPDATE_DATA_DIGEST (0x1<<1)
 717 #define ISCSI_KWQE_CONN_UPDATE_DATA_DIGEST_SHIFT 1
 718 #define ISCSI_KWQE_CONN_UPDATE_INITIAL_R2T (0x1<<2)
 719 #define ISCSI_KWQE_CONN_UPDATE_INITIAL_R2T_SHIFT 2
 720 #define ISCSI_KWQE_CONN_UPDATE_IMMEDIATE_DATA (0x1<<3)
 721 #define ISCSI_KWQE_CONN_UPDATE_IMMEDIATE_DATA_SHIFT 3
 722 #define ISCSI_KWQE_CONN_UPDATE_OOO_SUPPORT_MODE (0x3<<4)
 723 #define ISCSI_KWQE_CONN_UPDATE_OOO_SUPPORT_MODE_SHIFT 4
 724 #define ISCSI_KWQE_CONN_UPDATE_RESERVED1 (0x3<<6)
 725 #define ISCSI_KWQE_CONN_UPDATE_RESERVED1_SHIFT 6
 726 #elif defined(__LITTLE_ENDIAN)
 727         u8 conn_flags;
 728 #define ISCSI_KWQE_CONN_UPDATE_HEADER_DIGEST (0x1<<0)
 729 #define ISCSI_KWQE_CONN_UPDATE_HEADER_DIGEST_SHIFT 0
 730 #define ISCSI_KWQE_CONN_UPDATE_DATA_DIGEST (0x1<<1)
 731 #define ISCSI_KWQE_CONN_UPDATE_DATA_DIGEST_SHIFT 1
 732 #define ISCSI_KWQE_CONN_UPDATE_INITIAL_R2T (0x1<<2)
 733 #define ISCSI_KWQE_CONN_UPDATE_INITIAL_R2T_SHIFT 2
 734 #define ISCSI_KWQE_CONN_UPDATE_IMMEDIATE_DATA (0x1<<3)
 735 #define ISCSI_KWQE_CONN_UPDATE_IMMEDIATE_DATA_SHIFT 3
 736 #define ISCSI_KWQE_CONN_UPDATE_OOO_SUPPORT_MODE (0x3<<4)
 737 #define ISCSI_KWQE_CONN_UPDATE_OOO_SUPPORT_MODE_SHIFT 4
 738 #define ISCSI_KWQE_CONN_UPDATE_RESERVED1 (0x3<<6)
 739 #define ISCSI_KWQE_CONN_UPDATE_RESERVED1_SHIFT 6
 740         u8 reserved2;
 741         u8 max_outstanding_r2ts;
 742         u8 session_error_recovery_level;
 743 #endif
 744         u32 context_id;
 745         u32 max_send_pdu_length;
 746         u32 max_recv_pdu_length;
 747         u32 first_burst_length;
 748         u32 max_burst_length;
 749         u32 exp_stat_sn;
 750 };
 751 
 752 /*
 753  * iSCSI destroy connection request
 754  */
 755 struct iscsi_kwqe_conn_destroy {
 756 #if defined(__BIG_ENDIAN)
 757         struct iscsi_kwqe_header hdr;
 758         u16 reserved0;
 759 #elif defined(__LITTLE_ENDIAN)
 760         u16 reserved0;
 761         struct iscsi_kwqe_header hdr;
 762 #endif
 763         u32 context_id;
 764         u32 reserved1[6];
 765 };
 766 
 767 /*
 768  * iSCSI KWQ WQE
 769  */
 770 union iscsi_kwqe {
 771         struct iscsi_kwqe_init1 init1;
 772         struct iscsi_kwqe_init2 init2;
 773         struct iscsi_kwqe_conn_offload1 conn_offload1;
 774         struct iscsi_kwqe_conn_offload2 conn_offload2;
 775         struct iscsi_kwqe_conn_update conn_update;
 776         struct iscsi_kwqe_conn_destroy conn_destroy;
 777 };
 778 
 779 /*
 780  * iSCSI Login SQ WQE
 781  */
 782 struct bnx2i_login_request {
 783 #if defined(__BIG_ENDIAN)
 784         u8 op_code;
 785         u8 op_attr;
 786 #define ISCSI_LOGIN_REQUEST_NEXT_STAGE (0x3<<0)
 787 #define ISCSI_LOGIN_REQUEST_NEXT_STAGE_SHIFT 0
 788 #define ISCSI_LOGIN_REQUEST_CURRENT_STAGE (0x3<<2)
 789 #define ISCSI_LOGIN_REQUEST_CURRENT_STAGE_SHIFT 2
 790 #define ISCSI_LOGIN_REQUEST_RESERVED0 (0x3<<4)
 791 #define ISCSI_LOGIN_REQUEST_RESERVED0_SHIFT 4
 792 #define ISCSI_LOGIN_REQUEST_CONT (0x1<<6)
 793 #define ISCSI_LOGIN_REQUEST_CONT_SHIFT 6
 794 #define ISCSI_LOGIN_REQUEST_TRANSIT (0x1<<7)
 795 #define ISCSI_LOGIN_REQUEST_TRANSIT_SHIFT 7
 796         u8 version_max;
 797         u8 version_min;
 798 #elif defined(__LITTLE_ENDIAN)
 799         u8 version_min;
 800         u8 version_max;
 801         u8 op_attr;
 802 #define ISCSI_LOGIN_REQUEST_NEXT_STAGE (0x3<<0)
 803 #define ISCSI_LOGIN_REQUEST_NEXT_STAGE_SHIFT 0
 804 #define ISCSI_LOGIN_REQUEST_CURRENT_STAGE (0x3<<2)
 805 #define ISCSI_LOGIN_REQUEST_CURRENT_STAGE_SHIFT 2
 806 #define ISCSI_LOGIN_REQUEST_RESERVED0 (0x3<<4)
 807 #define ISCSI_LOGIN_REQUEST_RESERVED0_SHIFT 4
 808 #define ISCSI_LOGIN_REQUEST_CONT (0x1<<6)
 809 #define ISCSI_LOGIN_REQUEST_CONT_SHIFT 6
 810 #define ISCSI_LOGIN_REQUEST_TRANSIT (0x1<<7)
 811 #define ISCSI_LOGIN_REQUEST_TRANSIT_SHIFT 7
 812         u8 op_code;
 813 #endif
 814         u32 data_length;
 815         u32 isid_lo;
 816 #if defined(__BIG_ENDIAN)
 817         u16 isid_hi;
 818         u16 tsih;
 819 #elif defined(__LITTLE_ENDIAN)
 820         u16 tsih;
 821         u16 isid_hi;
 822 #endif
 823 #if defined(__BIG_ENDIAN)
 824         u16 reserved2;
 825         u16 itt;
 826 #define ISCSI_LOGIN_REQUEST_INDEX (0x3FFF<<0)
 827 #define ISCSI_LOGIN_REQUEST_INDEX_SHIFT 0
 828 #define ISCSI_LOGIN_REQUEST_TYPE (0x3<<14)
 829 #define ISCSI_LOGIN_REQUEST_TYPE_SHIFT 14
 830 #elif defined(__LITTLE_ENDIAN)
 831         u16 itt;
 832 #define ISCSI_LOGIN_REQUEST_INDEX (0x3FFF<<0)
 833 #define ISCSI_LOGIN_REQUEST_INDEX_SHIFT 0
 834 #define ISCSI_LOGIN_REQUEST_TYPE (0x3<<14)
 835 #define ISCSI_LOGIN_REQUEST_TYPE_SHIFT 14
 836         u16 reserved2;
 837 #endif
 838 #if defined(__BIG_ENDIAN)
 839         u16 cid;
 840         u16 reserved3;
 841 #elif defined(__LITTLE_ENDIAN)
 842         u16 reserved3;
 843         u16 cid;
 844 #endif
 845         u32 cmd_sn;
 846         u32 exp_stat_sn;
 847         u32 reserved4;
 848         u32 resp_bd_list_addr_lo;
 849         u32 resp_bd_list_addr_hi;
 850         u32 resp_buffer;
 851 #define ISCSI_LOGIN_REQUEST_RESP_BUFFER_LENGTH (0xFFFFFF<<0)
 852 #define ISCSI_LOGIN_REQUEST_RESP_BUFFER_LENGTH_SHIFT 0
 853 #define ISCSI_LOGIN_REQUEST_NUM_RESP_BDS (0xFF<<24)
 854 #define ISCSI_LOGIN_REQUEST_NUM_RESP_BDS_SHIFT 24
 855 #if defined(__BIG_ENDIAN)
 856         u16 reserved8;
 857         u8 reserved7;
 858         u8 flags;
 859 #define ISCSI_LOGIN_REQUEST_RESERVED5 (0x3<<0)
 860 #define ISCSI_LOGIN_REQUEST_RESERVED5_SHIFT 0
 861 #define ISCSI_LOGIN_REQUEST_UPDATE_EXP_STAT_SN (0x1<<2)
 862 #define ISCSI_LOGIN_REQUEST_UPDATE_EXP_STAT_SN_SHIFT 2
 863 #define ISCSI_LOGIN_REQUEST_RESERVED6 (0x1F<<3)
 864 #define ISCSI_LOGIN_REQUEST_RESERVED6_SHIFT 3
 865 #elif defined(__LITTLE_ENDIAN)
 866         u8 flags;
 867 #define ISCSI_LOGIN_REQUEST_RESERVED5 (0x3<<0)
 868 #define ISCSI_LOGIN_REQUEST_RESERVED5_SHIFT 0
 869 #define ISCSI_LOGIN_REQUEST_UPDATE_EXP_STAT_SN (0x1<<2)
 870 #define ISCSI_LOGIN_REQUEST_UPDATE_EXP_STAT_SN_SHIFT 2
 871 #define ISCSI_LOGIN_REQUEST_RESERVED6 (0x1F<<3)
 872 #define ISCSI_LOGIN_REQUEST_RESERVED6_SHIFT 3
 873         u8 reserved7;
 874         u16 reserved8;
 875 #endif
 876         u32 bd_list_addr_lo;
 877         u32 bd_list_addr_hi;
 878 #if defined(__BIG_ENDIAN)
 879         u8 cq_index;
 880         u8 reserved10;
 881         u8 reserved9;
 882         u8 num_bds;
 883 #elif defined(__LITTLE_ENDIAN)
 884         u8 num_bds;
 885         u8 reserved9;
 886         u8 reserved10;
 887         u8 cq_index;
 888 #endif
 889 };
 890 
 891 
 892 /*
 893  * iSCSI Login CQE
 894  */
 895 struct bnx2i_login_response {
 896 #if defined(__BIG_ENDIAN)
 897         u8 op_code;
 898         u8 response_flags;
 899 #define ISCSI_LOGIN_RESPONSE_NEXT_STAGE (0x3<<0)
 900 #define ISCSI_LOGIN_RESPONSE_NEXT_STAGE_SHIFT 0
 901 #define ISCSI_LOGIN_RESPONSE_CURRENT_STAGE (0x3<<2)
 902 #define ISCSI_LOGIN_RESPONSE_CURRENT_STAGE_SHIFT 2
 903 #define ISCSI_LOGIN_RESPONSE_RESERVED0 (0x3<<4)
 904 #define ISCSI_LOGIN_RESPONSE_RESERVED0_SHIFT 4
 905 #define ISCSI_LOGIN_RESPONSE_CONT (0x1<<6)
 906 #define ISCSI_LOGIN_RESPONSE_CONT_SHIFT 6
 907 #define ISCSI_LOGIN_RESPONSE_TRANSIT (0x1<<7)
 908 #define ISCSI_LOGIN_RESPONSE_TRANSIT_SHIFT 7
 909         u8 version_max;
 910         u8 version_active;
 911 #elif defined(__LITTLE_ENDIAN)
 912         u8 version_active;
 913         u8 version_max;
 914         u8 response_flags;
 915 #define ISCSI_LOGIN_RESPONSE_NEXT_STAGE (0x3<<0)
 916 #define ISCSI_LOGIN_RESPONSE_NEXT_STAGE_SHIFT 0
 917 #define ISCSI_LOGIN_RESPONSE_CURRENT_STAGE (0x3<<2)
 918 #define ISCSI_LOGIN_RESPONSE_CURRENT_STAGE_SHIFT 2
 919 #define ISCSI_LOGIN_RESPONSE_RESERVED0 (0x3<<4)
 920 #define ISCSI_LOGIN_RESPONSE_RESERVED0_SHIFT 4
 921 #define ISCSI_LOGIN_RESPONSE_CONT (0x1<<6)
 922 #define ISCSI_LOGIN_RESPONSE_CONT_SHIFT 6
 923 #define ISCSI_LOGIN_RESPONSE_TRANSIT (0x1<<7)
 924 #define ISCSI_LOGIN_RESPONSE_TRANSIT_SHIFT 7
 925         u8 op_code;
 926 #endif
 927         u32 data_length;
 928         u32 exp_cmd_sn;
 929         u32 max_cmd_sn;
 930         u32 reserved1[2];
 931 #if defined(__BIG_ENDIAN)
 932         u16 reserved3;
 933         u8 err_code;
 934         u8 reserved2;
 935 #elif defined(__LITTLE_ENDIAN)
 936         u8 reserved2;
 937         u8 err_code;
 938         u16 reserved3;
 939 #endif
 940         u32 stat_sn;
 941         u32 isid_lo;
 942 #if defined(__BIG_ENDIAN)
 943         u16 isid_hi;
 944         u16 tsih;
 945 #elif defined(__LITTLE_ENDIAN)
 946         u16 tsih;
 947         u16 isid_hi;
 948 #endif
 949 #if defined(__BIG_ENDIAN)
 950         u8 status_class;
 951         u8 status_detail;
 952         u16 reserved4;
 953 #elif defined(__LITTLE_ENDIAN)
 954         u16 reserved4;
 955         u8 status_detail;
 956         u8 status_class;
 957 #endif
 958         u32 reserved5[3];
 959 #if defined(__BIG_ENDIAN)
 960         u16 reserved6;
 961         u16 itt;
 962 #define ISCSI_LOGIN_RESPONSE_INDEX (0x3FFF<<0)
 963 #define ISCSI_LOGIN_RESPONSE_INDEX_SHIFT 0
 964 #define ISCSI_LOGIN_RESPONSE_TYPE (0x3<<14)
 965 #define ISCSI_LOGIN_RESPONSE_TYPE_SHIFT 14
 966 #elif defined(__LITTLE_ENDIAN)
 967         u16 itt;
 968 #define ISCSI_LOGIN_RESPONSE_INDEX (0x3FFF<<0)
 969 #define ISCSI_LOGIN_RESPONSE_INDEX_SHIFT 0
 970 #define ISCSI_LOGIN_RESPONSE_TYPE (0x3<<14)
 971 #define ISCSI_LOGIN_RESPONSE_TYPE_SHIFT 14
 972         u16 reserved6;
 973 #endif
 974         u32 cq_req_sn;
 975 };
 976 
 977 
 978 /*
 979  * iSCSI Logout SQ WQE
 980  */
 981 struct bnx2i_logout_request {
 982 #if defined(__BIG_ENDIAN)
 983         u8 op_code;
 984         u8 op_attr;
 985 #define ISCSI_LOGOUT_REQUEST_REASON (0x7F<<0)
 986 #define ISCSI_LOGOUT_REQUEST_REASON_SHIFT 0
 987 #define ISCSI_LOGOUT_REQUEST_ALWAYS_ONE (0x1<<7)
 988 #define ISCSI_LOGOUT_REQUEST_ALWAYS_ONE_SHIFT 7
 989         u16 reserved0;
 990 #elif defined(__LITTLE_ENDIAN)
 991         u16 reserved0;
 992         u8 op_attr;
 993 #define ISCSI_LOGOUT_REQUEST_REASON (0x7F<<0)
 994 #define ISCSI_LOGOUT_REQUEST_REASON_SHIFT 0
 995 #define ISCSI_LOGOUT_REQUEST_ALWAYS_ONE (0x1<<7)
 996 #define ISCSI_LOGOUT_REQUEST_ALWAYS_ONE_SHIFT 7
 997         u8 op_code;
 998 #endif
 999         u32 data_length;
1000         u32 reserved1[2];
1001 #if defined(__BIG_ENDIAN)
1002         u16 reserved2;
1003         u16 itt;
1004 #define ISCSI_LOGOUT_REQUEST_INDEX (0x3FFF<<0)
1005 #define ISCSI_LOGOUT_REQUEST_INDEX_SHIFT 0
1006 #define ISCSI_LOGOUT_REQUEST_TYPE (0x3<<14)
1007 #define ISCSI_LOGOUT_REQUEST_TYPE_SHIFT 14
1008 #elif defined(__LITTLE_ENDIAN)
1009         u16 itt;
1010 #define ISCSI_LOGOUT_REQUEST_INDEX (0x3FFF<<0)
1011 #define ISCSI_LOGOUT_REQUEST_INDEX_SHIFT 0
1012 #define ISCSI_LOGOUT_REQUEST_TYPE (0x3<<14)
1013 #define ISCSI_LOGOUT_REQUEST_TYPE_SHIFT 14
1014         u16 reserved2;
1015 #endif
1016 #if defined(__BIG_ENDIAN)
1017         u16 cid;
1018         u16 reserved3;
1019 #elif defined(__LITTLE_ENDIAN)
1020         u16 reserved3;
1021         u16 cid;
1022 #endif
1023         u32 cmd_sn;
1024         u32 reserved4[5];
1025         u32 zero_fill;
1026         u32 bd_list_addr_lo;
1027         u32 bd_list_addr_hi;
1028 #if defined(__BIG_ENDIAN)
1029         u8 cq_index;
1030         u8 reserved6;
1031         u8 reserved5;
1032         u8 num_bds;
1033 #elif defined(__LITTLE_ENDIAN)
1034         u8 num_bds;
1035         u8 reserved5;
1036         u8 reserved6;
1037         u8 cq_index;
1038 #endif
1039 };
1040 
1041 
1042 /*
1043  * iSCSI Logout CQE
1044  */
1045 struct bnx2i_logout_response {
1046 #if defined(__BIG_ENDIAN)
1047         u8 op_code;
1048         u8 reserved1;
1049         u8 response;
1050         u8 reserved0;
1051 #elif defined(__LITTLE_ENDIAN)
1052         u8 reserved0;
1053         u8 response;
1054         u8 reserved1;
1055         u8 op_code;
1056 #endif
1057         u32 reserved2;
1058         u32 exp_cmd_sn;
1059         u32 max_cmd_sn;
1060         u32 reserved3[2];
1061 #if defined(__BIG_ENDIAN)
1062         u16 reserved5;
1063         u8 err_code;
1064         u8 reserved4;
1065 #elif defined(__LITTLE_ENDIAN)
1066         u8 reserved4;
1067         u8 err_code;
1068         u16 reserved5;
1069 #endif
1070         u32 reserved6[3];
1071 #if defined(__BIG_ENDIAN)
1072         u16 time_to_wait;
1073         u16 time_to_retain;
1074 #elif defined(__LITTLE_ENDIAN)
1075         u16 time_to_retain;
1076         u16 time_to_wait;
1077 #endif
1078         u32 reserved7[3];
1079 #if defined(__BIG_ENDIAN)
1080         u16 reserved8;
1081         u16 itt;
1082 #define ISCSI_LOGOUT_RESPONSE_INDEX (0x3FFF<<0)
1083 #define ISCSI_LOGOUT_RESPONSE_INDEX_SHIFT 0
1084 #define ISCSI_LOGOUT_RESPONSE_TYPE (0x3<<14)
1085 #define ISCSI_LOGOUT_RESPONSE_TYPE_SHIFT 14
1086 #elif defined(__LITTLE_ENDIAN)
1087         u16 itt;
1088 #define ISCSI_LOGOUT_RESPONSE_INDEX (0x3FFF<<0)
1089 #define ISCSI_LOGOUT_RESPONSE_INDEX_SHIFT 0
1090 #define ISCSI_LOGOUT_RESPONSE_TYPE (0x3<<14)
1091 #define ISCSI_LOGOUT_RESPONSE_TYPE_SHIFT 14
1092         u16 reserved8;
1093 #endif
1094         u32 cq_req_sn;
1095 };
1096 
1097 
1098 /*
1099  * iSCSI Nop-In CQE
1100  */
1101 struct bnx2i_nop_in_msg {
1102 #if defined(__BIG_ENDIAN)
1103         u8 op_code;
1104         u8 reserved1;
1105         u16 reserved0;
1106 #elif defined(__LITTLE_ENDIAN)
1107         u16 reserved0;
1108         u8 reserved1;
1109         u8 op_code;
1110 #endif
1111         u32 data_length;
1112         u32 exp_cmd_sn;
1113         u32 max_cmd_sn;
1114         u32 ttt;
1115         u32 reserved2;
1116 #if defined(__BIG_ENDIAN)
1117         u16 reserved4;
1118         u8 err_code;
1119         u8 reserved3;
1120 #elif defined(__LITTLE_ENDIAN)
1121         u8 reserved3;
1122         u8 err_code;
1123         u16 reserved4;
1124 #endif
1125         u32 reserved5;
1126         u32 lun[2];
1127         u32 reserved6[4];
1128 #if defined(__BIG_ENDIAN)
1129         u16 reserved7;
1130         u16 itt;
1131 #define ISCSI_NOP_IN_MSG_INDEX (0x3FFF<<0)
1132 #define ISCSI_NOP_IN_MSG_INDEX_SHIFT 0
1133 #define ISCSI_NOP_IN_MSG_TYPE (0x3<<14)
1134 #define ISCSI_NOP_IN_MSG_TYPE_SHIFT 14
1135 #elif defined(__LITTLE_ENDIAN)
1136         u16 itt;
1137 #define ISCSI_NOP_IN_MSG_INDEX (0x3FFF<<0)
1138 #define ISCSI_NOP_IN_MSG_INDEX_SHIFT 0
1139 #define ISCSI_NOP_IN_MSG_TYPE (0x3<<14)
1140 #define ISCSI_NOP_IN_MSG_TYPE_SHIFT 14
1141         u16 reserved7;
1142 #endif
1143         u32 cq_req_sn;
1144 };
1145 
1146 
1147 /*
1148  * iSCSI NOP-OUT SQ WQE
1149  */
1150 struct bnx2i_nop_out_request {
1151 #if defined(__BIG_ENDIAN)
1152         u8 op_code;
1153         u8 op_attr;
1154 #define ISCSI_NOP_OUT_REQUEST_RESERVED1 (0x7F<<0)
1155 #define ISCSI_NOP_OUT_REQUEST_RESERVED1_SHIFT 0
1156 #define ISCSI_NOP_OUT_REQUEST_ALWAYS_ONE (0x1<<7)
1157 #define ISCSI_NOP_OUT_REQUEST_ALWAYS_ONE_SHIFT 7
1158         u16 reserved0;
1159 #elif defined(__LITTLE_ENDIAN)
1160         u16 reserved0;
1161         u8 op_attr;
1162 #define ISCSI_NOP_OUT_REQUEST_RESERVED1 (0x7F<<0)
1163 #define ISCSI_NOP_OUT_REQUEST_RESERVED1_SHIFT 0
1164 #define ISCSI_NOP_OUT_REQUEST_ALWAYS_ONE (0x1<<7)
1165 #define ISCSI_NOP_OUT_REQUEST_ALWAYS_ONE_SHIFT 7
1166         u8 op_code;
1167 #endif
1168         u32 data_length;
1169         u32 lun[2];
1170 #if defined(__BIG_ENDIAN)
1171         u16 reserved2;
1172         u16 itt;
1173 #define ISCSI_NOP_OUT_REQUEST_INDEX (0x3FFF<<0)
1174 #define ISCSI_NOP_OUT_REQUEST_INDEX_SHIFT 0
1175 #define ISCSI_NOP_OUT_REQUEST_TYPE (0x3<<14)
1176 #define ISCSI_NOP_OUT_REQUEST_TYPE_SHIFT 14
1177 #elif defined(__LITTLE_ENDIAN)
1178         u16 itt;
1179 #define ISCSI_NOP_OUT_REQUEST_INDEX (0x3FFF<<0)
1180 #define ISCSI_NOP_OUT_REQUEST_INDEX_SHIFT 0
1181 #define ISCSI_NOP_OUT_REQUEST_TYPE (0x3<<14)
1182 #define ISCSI_NOP_OUT_REQUEST_TYPE_SHIFT 14
1183         u16 reserved2;
1184 #endif
1185         u32 ttt;
1186         u32 cmd_sn;
1187         u32 reserved3[2];
1188         u32 resp_bd_list_addr_lo;
1189         u32 resp_bd_list_addr_hi;
1190         u32 resp_buffer;
1191 #define ISCSI_NOP_OUT_REQUEST_RESP_BUFFER_LENGTH (0xFFFFFF<<0)
1192 #define ISCSI_NOP_OUT_REQUEST_RESP_BUFFER_LENGTH_SHIFT 0
1193 #define ISCSI_NOP_OUT_REQUEST_NUM_RESP_BDS (0xFF<<24)
1194 #define ISCSI_NOP_OUT_REQUEST_NUM_RESP_BDS_SHIFT 24
1195 #if defined(__BIG_ENDIAN)
1196         u16 reserved7;
1197         u8 reserved6;
1198         u8 flags;
1199 #define ISCSI_NOP_OUT_REQUEST_RESERVED4 (0x1<<0)
1200 #define ISCSI_NOP_OUT_REQUEST_RESERVED4_SHIFT 0
1201 #define ISCSI_NOP_OUT_REQUEST_LOCAL_COMPLETION (0x1<<1)
1202 #define ISCSI_NOP_OUT_REQUEST_LOCAL_COMPLETION_SHIFT 1
1203 #define ISCSI_NOP_OUT_REQUEST_ZERO_FILL (0x3F<<2)
1204 #define ISCSI_NOP_OUT_REQUEST_ZERO_FILL_SHIFT 2
1205 #elif defined(__LITTLE_ENDIAN)
1206         u8 flags;
1207 #define ISCSI_NOP_OUT_REQUEST_RESERVED4 (0x1<<0)
1208 #define ISCSI_NOP_OUT_REQUEST_RESERVED4_SHIFT 0
1209 #define ISCSI_NOP_OUT_REQUEST_LOCAL_COMPLETION (0x1<<1)
1210 #define ISCSI_NOP_OUT_REQUEST_LOCAL_COMPLETION_SHIFT 1
1211 #define ISCSI_NOP_OUT_REQUEST_ZERO_FILL (0x3F<<2)
1212 #define ISCSI_NOP_OUT_REQUEST_ZERO_FILL_SHIFT 2
1213         u8 reserved6;
1214         u16 reserved7;
1215 #endif
1216         u32 bd_list_addr_lo;
1217         u32 bd_list_addr_hi;
1218 #if defined(__BIG_ENDIAN)
1219         u8 cq_index;
1220         u8 reserved9;
1221         u8 reserved8;
1222         u8 num_bds;
1223 #elif defined(__LITTLE_ENDIAN)
1224         u8 num_bds;
1225         u8 reserved8;
1226         u8 reserved9;
1227         u8 cq_index;
1228 #endif
1229 };
1230 
1231 /*
1232  * iSCSI Reject CQE
1233  */
1234 struct bnx2i_reject_msg {
1235 #if defined(__BIG_ENDIAN)
1236         u8 op_code;
1237         u8 reserved1;
1238         u8 reason;
1239         u8 reserved0;
1240 #elif defined(__LITTLE_ENDIAN)
1241         u8 reserved0;
1242         u8 reason;
1243         u8 reserved1;
1244         u8 op_code;
1245 #endif
1246         u32 data_length;
1247         u32 exp_cmd_sn;
1248         u32 max_cmd_sn;
1249         u32 reserved2[2];
1250 #if defined(__BIG_ENDIAN)
1251         u16 reserved4;
1252         u8 err_code;
1253         u8 reserved3;
1254 #elif defined(__LITTLE_ENDIAN)
1255         u8 reserved3;
1256         u8 err_code;
1257         u16 reserved4;
1258 #endif
1259         u32 reserved5[8];
1260         u32 cq_req_sn;
1261 };
1262 
1263 /*
1264  * bnx2i iSCSI TMF SQ WQE
1265  */
1266 struct bnx2i_tmf_request {
1267 #if defined(__BIG_ENDIAN)
1268         u8 op_code;
1269         u8 op_attr;
1270 #define ISCSI_TMF_REQUEST_FUNCTION (0x7F<<0)
1271 #define ISCSI_TMF_REQUEST_FUNCTION_SHIFT 0
1272 #define ISCSI_TMF_REQUEST_ALWAYS_ONE (0x1<<7)
1273 #define ISCSI_TMF_REQUEST_ALWAYS_ONE_SHIFT 7
1274         u16 reserved0;
1275 #elif defined(__LITTLE_ENDIAN)
1276         u16 reserved0;
1277         u8 op_attr;
1278 #define ISCSI_TMF_REQUEST_FUNCTION (0x7F<<0)
1279 #define ISCSI_TMF_REQUEST_FUNCTION_SHIFT 0
1280 #define ISCSI_TMF_REQUEST_ALWAYS_ONE (0x1<<7)
1281 #define ISCSI_TMF_REQUEST_ALWAYS_ONE_SHIFT 7
1282         u8 op_code;
1283 #endif
1284         u32 data_length;
1285         u32 lun[2];
1286 #if defined(__BIG_ENDIAN)
1287         u16 reserved1;
1288         u16 itt;
1289 #define ISCSI_TMF_REQUEST_INDEX (0x3FFF<<0)
1290 #define ISCSI_TMF_REQUEST_INDEX_SHIFT 0
1291 #define ISCSI_TMF_REQUEST_TYPE (0x3<<14)
1292 #define ISCSI_TMF_REQUEST_TYPE_SHIFT 14
1293 #elif defined(__LITTLE_ENDIAN)
1294         u16 itt;
1295 #define ISCSI_TMF_REQUEST_INDEX (0x3FFF<<0)
1296 #define ISCSI_TMF_REQUEST_INDEX_SHIFT 0
1297 #define ISCSI_TMF_REQUEST_TYPE (0x3<<14)
1298 #define ISCSI_TMF_REQUEST_TYPE_SHIFT 14
1299         u16 reserved1;
1300 #endif
1301         u32 ref_itt;
1302         u32 cmd_sn;
1303         u32 reserved2;
1304         u32 ref_cmd_sn;
1305         u32 reserved3[3];
1306         u32 zero_fill;
1307         u32 bd_list_addr_lo;
1308         u32 bd_list_addr_hi;
1309 #if defined(__BIG_ENDIAN)
1310         u8 cq_index;
1311         u8 reserved5;
1312         u8 reserved4;
1313         u8 num_bds;
1314 #elif defined(__LITTLE_ENDIAN)
1315         u8 num_bds;
1316         u8 reserved4;
1317         u8 reserved5;
1318         u8 cq_index;
1319 #endif
1320 };
1321 
1322 /*
1323  * iSCSI Text SQ WQE
1324  */
1325 struct bnx2i_text_request {
1326 #if defined(__BIG_ENDIAN)
1327         u8 op_code;
1328         u8 op_attr;
1329 #define ISCSI_TEXT_REQUEST_RESERVED1 (0x3F<<0)
1330 #define ISCSI_TEXT_REQUEST_RESERVED1_SHIFT 0
1331 #define ISCSI_TEXT_REQUEST_CONT (0x1<<6)
1332 #define ISCSI_TEXT_REQUEST_CONT_SHIFT 6
1333 #define ISCSI_TEXT_REQUEST_FINAL (0x1<<7)
1334 #define ISCSI_TEXT_REQUEST_FINAL_SHIFT 7
1335         u16 reserved0;
1336 #elif defined(__LITTLE_ENDIAN)
1337         u16 reserved0;
1338         u8 op_attr;
1339 #define ISCSI_TEXT_REQUEST_RESERVED1 (0x3F<<0)
1340 #define ISCSI_TEXT_REQUEST_RESERVED1_SHIFT 0
1341 #define ISCSI_TEXT_REQUEST_CONT (0x1<<6)
1342 #define ISCSI_TEXT_REQUEST_CONT_SHIFT 6
1343 #define ISCSI_TEXT_REQUEST_FINAL (0x1<<7)
1344 #define ISCSI_TEXT_REQUEST_FINAL_SHIFT 7
1345         u8 op_code;
1346 #endif
1347         u32 data_length;
1348         u32 lun[2];
1349 #if defined(__BIG_ENDIAN)
1350         u16 reserved3;
1351         u16 itt;
1352 #define ISCSI_TEXT_REQUEST_INDEX (0x3FFF<<0)
1353 #define ISCSI_TEXT_REQUEST_INDEX_SHIFT 0
1354 #define ISCSI_TEXT_REQUEST_TYPE (0x3<<14)
1355 #define ISCSI_TEXT_REQUEST_TYPE_SHIFT 14
1356 #elif defined(__LITTLE_ENDIAN)
1357         u16 itt;
1358 #define ISCSI_TEXT_REQUEST_INDEX (0x3FFF<<0)
1359 #define ISCSI_TEXT_REQUEST_INDEX_SHIFT 0
1360 #define ISCSI_TEXT_REQUEST_TYPE (0x3<<14)
1361 #define ISCSI_TEXT_REQUEST_TYPE_SHIFT 14
1362         u16 reserved3;
1363 #endif
1364         u32 ttt;
1365         u32 cmd_sn;
1366         u32 reserved4[2];
1367         u32 resp_bd_list_addr_lo;
1368         u32 resp_bd_list_addr_hi;
1369         u32 resp_buffer;
1370 #define ISCSI_TEXT_REQUEST_RESP_BUFFER_LENGTH (0xFFFFFF<<0)
1371 #define ISCSI_TEXT_REQUEST_RESP_BUFFER_LENGTH_SHIFT 0
1372 #define ISCSI_TEXT_REQUEST_NUM_RESP_BDS (0xFF<<24)
1373 #define ISCSI_TEXT_REQUEST_NUM_RESP_BDS_SHIFT 24
1374         u32 zero_fill;
1375         u32 bd_list_addr_lo;
1376         u32 bd_list_addr_hi;
1377 #if defined(__BIG_ENDIAN)
1378         u8 cq_index;
1379         u8 reserved7;
1380         u8 reserved6;
1381         u8 num_bds;
1382 #elif defined(__LITTLE_ENDIAN)
1383         u8 num_bds;
1384         u8 reserved6;
1385         u8 reserved7;
1386         u8 cq_index;
1387 #endif
1388 };
1389 
1390 /*
1391  * iSCSI SQ WQE
1392  */
1393 union iscsi_request {
1394         struct bnx2i_cmd_request cmd;
1395         struct bnx2i_tmf_request tmf;
1396         struct bnx2i_nop_out_request nop_out;
1397         struct bnx2i_login_request login_req;
1398         struct bnx2i_text_request text;
1399         struct bnx2i_logout_request logout_req;
1400         struct bnx2i_cleanup_request cleanup;
1401 };
1402 
1403 
1404 /*
1405  * iSCSI TMF CQE
1406  */
1407 struct bnx2i_tmf_response {
1408 #if defined(__BIG_ENDIAN)
1409         u8 op_code;
1410         u8 reserved1;
1411         u8 response;
1412         u8 reserved0;
1413 #elif defined(__LITTLE_ENDIAN)
1414         u8 reserved0;
1415         u8 response;
1416         u8 reserved1;
1417         u8 op_code;
1418 #endif
1419         u32 reserved2;
1420         u32 exp_cmd_sn;
1421         u32 max_cmd_sn;
1422         u32 reserved3[2];
1423 #if defined(__BIG_ENDIAN)
1424         u16 reserved5;
1425         u8 err_code;
1426         u8 reserved4;
1427 #elif defined(__LITTLE_ENDIAN)
1428         u8 reserved4;
1429         u8 err_code;
1430         u16 reserved5;
1431 #endif
1432         u32 reserved6[7];
1433 #if defined(__BIG_ENDIAN)
1434         u16 reserved7;
1435         u16 itt;
1436 #define ISCSI_TMF_RESPONSE_INDEX (0x3FFF<<0)
1437 #define ISCSI_TMF_RESPONSE_INDEX_SHIFT 0
1438 #define ISCSI_TMF_RESPONSE_TYPE (0x3<<14)
1439 #define ISCSI_TMF_RESPONSE_TYPE_SHIFT 14
1440 #elif defined(__LITTLE_ENDIAN)
1441         u16 itt;
1442 #define ISCSI_TMF_RESPONSE_INDEX (0x3FFF<<0)
1443 #define ISCSI_TMF_RESPONSE_INDEX_SHIFT 0
1444 #define ISCSI_TMF_RESPONSE_TYPE (0x3<<14)
1445 #define ISCSI_TMF_RESPONSE_TYPE_SHIFT 14
1446         u16 reserved7;
1447 #endif
1448         u32 cq_req_sn;
1449 };
1450 
1451 /*
1452  * iSCSI Text CQE
1453  */
1454 struct bnx2i_text_response {
1455 #if defined(__BIG_ENDIAN)
1456         u8 op_code;
1457         u8 response_flags;
1458 #define ISCSI_TEXT_RESPONSE_RESERVED1 (0x3F<<0)
1459 #define ISCSI_TEXT_RESPONSE_RESERVED1_SHIFT 0
1460 #define ISCSI_TEXT_RESPONSE_CONT (0x1<<6)
1461 #define ISCSI_TEXT_RESPONSE_CONT_SHIFT 6
1462 #define ISCSI_TEXT_RESPONSE_FINAL (0x1<<7)
1463 #define ISCSI_TEXT_RESPONSE_FINAL_SHIFT 7
1464         u16 reserved0;
1465 #elif defined(__LITTLE_ENDIAN)
1466         u16 reserved0;
1467         u8 response_flags;
1468 #define ISCSI_TEXT_RESPONSE_RESERVED1 (0x3F<<0)
1469 #define ISCSI_TEXT_RESPONSE_RESERVED1_SHIFT 0
1470 #define ISCSI_TEXT_RESPONSE_CONT (0x1<<6)
1471 #define ISCSI_TEXT_RESPONSE_CONT_SHIFT 6
1472 #define ISCSI_TEXT_RESPONSE_FINAL (0x1<<7)
1473 #define ISCSI_TEXT_RESPONSE_FINAL_SHIFT 7
1474         u8 op_code;
1475 #endif
1476         u32 data_length;
1477         u32 exp_cmd_sn;
1478         u32 max_cmd_sn;
1479         u32 ttt;
1480         u32 reserved2;
1481 #if defined(__BIG_ENDIAN)
1482         u16 reserved4;
1483         u8 err_code;
1484         u8 reserved3;
1485 #elif defined(__LITTLE_ENDIAN)
1486         u8 reserved3;
1487         u8 err_code;
1488         u16 reserved4;
1489 #endif
1490         u32 reserved5;
1491         u32 lun[2];
1492         u32 reserved6[4];
1493 #if defined(__BIG_ENDIAN)
1494         u16 reserved7;
1495         u16 itt;
1496 #define ISCSI_TEXT_RESPONSE_INDEX (0x3FFF<<0)
1497 #define ISCSI_TEXT_RESPONSE_INDEX_SHIFT 0
1498 #define ISCSI_TEXT_RESPONSE_TYPE (0x3<<14)
1499 #define ISCSI_TEXT_RESPONSE_TYPE_SHIFT 14
1500 #elif defined(__LITTLE_ENDIAN)
1501         u16 itt;
1502 #define ISCSI_TEXT_RESPONSE_INDEX (0x3FFF<<0)
1503 #define ISCSI_TEXT_RESPONSE_INDEX_SHIFT 0
1504 #define ISCSI_TEXT_RESPONSE_TYPE (0x3<<14)
1505 #define ISCSI_TEXT_RESPONSE_TYPE_SHIFT 14
1506         u16 reserved7;
1507 #endif
1508         u32 cq_req_sn;
1509 };
1510 
1511 /*
1512  * iSCSI CQE
1513  */
1514 union iscsi_response {
1515         struct bnx2i_cmd_response cmd;
1516         struct bnx2i_tmf_response tmf;
1517         struct bnx2i_login_response login_resp;
1518         struct bnx2i_text_response text;
1519         struct bnx2i_logout_response logout_resp;
1520         struct bnx2i_cleanup_response cleanup;
1521         struct bnx2i_reject_msg reject;
1522         struct bnx2i_async_msg async;
1523         struct bnx2i_nop_in_msg nop_in;
1524 };
1525 
1526 #endif /* __57XX_ISCSI_HSI_LINUX_LE__ */

/* [<][>][^][v][top][bottom][index][help] */