Print this page
NEX-5717 import QLogic 16G FC drivers
Reviewed by: Steve Peng <steve.peng@nexenta.com>
Reviewed by: Josef 'Jeff' Sipek <josef.sipek@nexenta.com>
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>

*** 17,27 **** * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END */ ! /* Copyright 2010 QLogic Corporation */ /* * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. */ --- 17,27 ---- * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END */ ! /* Copyright 2015 QLogic Corporation */ /* * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. */
*** 32,42 **** * ISP2xxx Solaris Fibre Channel Adapter (FCA) driver header file. * * *********************************************************************** * * ** * * NOTICE ** ! * * COPYRIGHT (C) 1996-2010 QLOGIC CORPORATION ** * * ALL RIGHTS RESERVED ** * * ** * *********************************************************************** * */ --- 32,42 ---- * ISP2xxx Solaris Fibre Channel Adapter (FCA) driver header file. * * *********************************************************************** * * ** * * NOTICE ** ! * * COPYRIGHT (C) 1996-2015 QLOGIC CORPORATION ** * * ALL RIGHTS RESERVED ** * * ** * *********************************************************************** * */
*** 43,54 **** #ifdef __cplusplus extern "C" { #endif ! #define INVALID_ENTRY_TYPE 0 /* * ISP queue - 32-Bit DMA addressing command with extended LUN support * entry structure definition. */ #define IOCB_CMD_TYPE_2 0x11 /* Command entry */ --- 43,64 ---- #ifdef __cplusplus extern "C" { #endif ! typedef struct ql_64bit_data_seg { ! uint32_t address[2]; ! uint32_t length; ! } ql_64bit_data_seg_t; + typedef struct ql_32bit_data_seg { + uint32_t address; + uint32_t length; + } ql_32bit_data_seg_t; + + #define ABORTED_ENTRY_TYPE 0 + /* * ISP queue - 32-Bit DMA addressing command with extended LUN support * entry structure definition. */ #define IOCB_CMD_TYPE_2 0x11 /* Command entry */
*** 69,84 **** uint8_t reserved_1[2]; uint16_t timeout; /* Command timeout. */ uint16_t dseg_count; /* Data segment count - LSB. */ uint8_t scsi_cdb[MAX_CMDSZ]; /* SCSI command words. */ uint32_t byte_count; /* Total byte count. */ ! uint32_t dseg_0_address; /* Data segment 0 address. */ ! uint32_t dseg_0_length; /* Data segment 0 length. */ ! uint32_t dseg_1_address; /* Data segment 1 address. */ ! uint32_t dseg_1_length; /* Data segment 1 length. */ ! uint32_t dseg_2_address; /* Data segment 2 address. */ ! uint32_t dseg_2_length; /* Data segment 2 length. */ } cmd_entry_t, request_t; /* * Command entry control flags least significant byte. */ --- 79,89 ---- uint8_t reserved_1[2]; uint16_t timeout; /* Command timeout. */ uint16_t dseg_count; /* Data segment count - LSB. */ uint8_t scsi_cdb[MAX_CMDSZ]; /* SCSI command words. */ uint32_t byte_count; /* Total byte count. */ ! ql_32bit_data_seg_t dseg[3]; /* Data segments. */ } cmd_entry_t, request_t; /* * Command entry control flags least significant byte. */
*** 110,121 **** uint8_t crn; /* Command reference number. */ uint8_t scsi_cdb[MAX_CMDSZ]; /* SCSI command bytes. */ uint32_t total_byte_count; uint8_t target_id[3]; /* SCSI Target ID */ uint8_t vp_index; ! uint32_t dseg_0_address[2]; /* Data segment 0 address. */ ! uint32_t dseg_0_length; /* Data segment 0 length. */ } cmd7_24xx_entry_t; /* * ISP24xx queue - Command IOCB structure definition. */ --- 115,125 ---- uint8_t crn; /* Command reference number. */ uint8_t scsi_cdb[MAX_CMDSZ]; /* SCSI command bytes. */ uint32_t total_byte_count; uint8_t target_id[3]; /* SCSI Target ID */ uint8_t vp_index; ! ql_64bit_data_seg_t dseg; /* Data segments. */ } cmd7_24xx_entry_t; /* * ISP24xx queue - Command IOCB structure definition. */
*** 137,148 **** uint32_t cmnd_address[2]; uint32_t rsp_address[2]; /* Data segment 0 address. */ uint32_t total_byte_count; uint8_t target_id[3]; /* SCSI Target ID */ uint8_t vp_index; ! uint32_t dseg_0_address[2]; /* Data segment 0 address. */ ! uint32_t dseg_0_length; /* Data segment 0 length. */ } cmd6_24xx_entry_t; typedef struct fcp_cmnd { uint8_t fcp_lun[8]; /* SCSI LUN ID. */ uint8_t crn; /* Command reference number. */ --- 141,151 ---- uint32_t cmnd_address[2]; uint32_t rsp_address[2]; /* Data segment 0 address. */ uint32_t total_byte_count; uint8_t target_id[3]; /* SCSI Target ID */ uint8_t vp_index; ! ql_64bit_data_seg_t dseg; /* Data segments. */ } cmd6_24xx_entry_t; typedef struct fcp_cmnd { uint8_t fcp_lun[8]; /* SCSI LUN ID. */ uint8_t crn; /* Command reference number. */
*** 203,216 **** uint8_t reserved_1[2]; uint16_t timeout; /* Command timeout. */ uint16_t dseg_count; /* Data segment count - LSB. */ uint8_t scsi_cdb[MAX_CMDSZ]; /* SCSI command words. */ uint32_t byte_count; /* Total byte count. */ ! uint32_t dseg_0_address[2]; /* Data segment 0 address. */ ! uint32_t dseg_0_length; /* Data segment 0 length. */ ! uint32_t dseg_1_address[2]; /* Data segment 1 address. */ ! uint32_t dseg_1_length; /* Data segment 1 length. */ } cmd_3_entry_t; /* * ISP queue - Command type 4 DSD list pointer structure definition. */ --- 206,216 ---- uint8_t reserved_1[2]; uint16_t timeout; /* Command timeout. */ uint16_t dseg_count; /* Data segment count - LSB. */ uint8_t scsi_cdb[MAX_CMDSZ]; /* SCSI command words. */ uint32_t byte_count; /* Total byte count. */ ! ql_64bit_data_seg_t dseg[2]; /* Data segments. */ } cmd_3_entry_t; /* * ISP queue - Command type 4 DSD list pointer structure definition. */
*** 250,273 **** uint8_t entry_type; /* Entry type. */ uint8_t entry_count; /* Entry count. */ uint8_t sys_define; /* System defined. */ uint8_t entry_status; /* Entry Status. */ uint32_t reserved; ! uint32_t dseg_0_address; /* Data segment 0 address. */ ! uint32_t dseg_0_length; /* Data segment 0 length. */ ! uint32_t dseg_1_address; /* Data segment 1 address. */ ! uint32_t dseg_1_length; /* Data segment 1 length. */ ! uint32_t dseg_2_address; /* Data segment 2 address. */ ! uint32_t dseg_2_length; /* Data segment 2 length. */ ! uint32_t dseg_3_address; /* Data segment 3 address. */ ! uint32_t dseg_3_length; /* Data segment 3 length. */ ! uint32_t dseg_4_address; /* Data segment 4 address. */ ! uint32_t dseg_4_length; /* Data segment 4 length. */ ! uint32_t dseg_5_address; /* Data segment 5 address. */ ! uint32_t dseg_5_length; /* Data segment 5 length. */ ! uint32_t dseg_6_address; /* Data segment 6 address. */ ! uint32_t dseg_6_length; /* Data segment 6 length. */ } cont_entry_t; /* * ISP queue - 64-Bit addressing, continuation entry structure definition. */ --- 250,260 ---- uint8_t entry_type; /* Entry type. */ uint8_t entry_count; /* Entry count. */ uint8_t sys_define; /* System defined. */ uint8_t entry_status; /* Entry Status. */ uint32_t reserved; ! ql_32bit_data_seg_t dseg[7]; /* Data segments. */ } cont_entry_t; /* * ISP queue - 64-Bit addressing, continuation entry structure definition. */
*** 276,295 **** typedef struct cont_type_1_entry { uint8_t entry_type; /* Entry type. */ uint8_t entry_count; /* Entry count. */ uint8_t sys_define; /* System defined. */ uint8_t entry_status; /* Entry Status. */ ! uint32_t dseg_0_address[2]; /* Data segment 0 address. */ ! uint32_t dseg_0_length; /* Data segment 0 length. */ ! uint32_t dseg_1_address[2]; /* Data segment 1 address. */ ! uint32_t dseg_1_length; /* Data segment 1 length. */ ! uint32_t dseg_2_address[2]; /* Data segment 2 address. */ ! uint32_t dseg_2_length; /* Data segment 2 length. */ ! uint32_t dseg_3_address[2]; /* Data segment 3 address. */ ! uint32_t dseg_3_length; /* Data segment 3 length. */ ! uint32_t dseg_4_address[2]; /* Data segment 4 address. */ ! uint32_t dseg_4_length; /* Data segment 4 length. */ } cont_type_1_entry_t; /* * ISP queue - status entry structure definition. */ --- 263,273 ---- typedef struct cont_type_1_entry { uint8_t entry_type; /* Entry type. */ uint8_t entry_count; /* Entry count. */ uint8_t sys_define; /* System defined. */ uint8_t entry_status; /* Entry Status. */ ! ql_64bit_data_seg_t dseg[5]; /* Data segments. */ } cont_type_1_entry_t; /* * ISP queue - status entry structure definition. */
*** 383,392 **** --- 361,371 ---- #define CS_RESOUCE_UNAVAILABLE 0x2C /* Frimware resource unavailable. */ #define CS_TASK_MGMT_OVERRUN 0x30 /* Task management overrun. */ #define CS_LOGIN_LOGOUT_ERROR 0x31 /* login/logout IOCB error. */ #define CS_SEQ_COMPLETE 0x40 /* Sequence Complete. */ #define CS_ABORTED_SEQ_REC 0x47 /* Abort sequence was received. */ + #define CS_DEV_NOT_READY 0x81 /* Device not ready */ #define CS_INVALID_PARAMETER 0x102 /* IP invalid_parameter. */ #define CS_ERROR_RESOURCE 0x103 /* IP insufficient resources. */ #define CS_IP_NOT_INITIALIZED 0x104 /* IP not_initialized. */ #define CS_BAD_PAYLOAD 0x180 /* Driver defined */
*** 501,516 **** uint8_t cmd_dseg_count_h; /* CMD segment count - MSB. */ uint16_t total_dseg_count; /* CMD + RESP segment count. */ uint8_t reserved_2[10]; uint32_t resp_byte_count; /* Response byte count */ uint32_t cmd_byte_count; /* Command byte count */ ! uint32_t dseg_0_address[2]; /* Data segment 0 address. */ ! uint32_t dseg_0_length; /* Data segment 0 length. */ ! uint32_t dseg_1_address[2]; /* Data segment 1 address. */ ! uint32_t dseg_1_length; /* Data segment 1 length. */ } ms_entry_t; /* * ISP24xx queue - CT Pass-Through IOCB structure definition. */ #define CT_PASSTHRU_TYPE 0x29 #define CT_PASSTHRU_DATA_SEGMENTS 1 /* Number of data segments. */ --- 480,494 ---- uint8_t cmd_dseg_count_h; /* CMD segment count - MSB. */ uint16_t total_dseg_count; /* CMD + RESP segment count. */ uint8_t reserved_2[10]; uint32_t resp_byte_count; /* Response byte count */ uint32_t cmd_byte_count; /* Command byte count */ ! ql_64bit_data_seg_t dseg[2]; /* Data segments. */ } ms_entry_t; + #define CF_ELS_PASSTHROUGH BIT_7 /* MSB */ + /* * ISP24xx queue - CT Pass-Through IOCB structure definition. */ #define CT_PASSTHRU_TYPE 0x29 #define CT_PASSTHRU_DATA_SEGMENTS 1 /* Number of data segments. */
*** 529,542 **** uint16_t reserved_1; uint16_t resp_dseg_count; uint8_t reserved_2[10]; uint32_t resp_byte_count; uint32_t cmd_byte_count; ! uint32_t dseg_0_address[2]; /* Data segment 0 address. */ ! uint32_t dseg_0_length; /* Data segment 0 length. */ ! uint32_t dseg_1_address[2]; /* Data segment 1 address. */ ! uint32_t dseg_1_length; /* Data segment 1 length. */ } ct_passthru_entry_t; /* * ISP24xx queue - ELS Pass-Through IOCB structure definition. */ --- 507,517 ---- uint16_t reserved_1; uint16_t resp_dseg_count; uint8_t reserved_2[10]; uint32_t resp_byte_count; uint32_t cmd_byte_count; ! ql_64bit_data_seg_t dseg[2]; /* Data segments. */ } ct_passthru_entry_t; /* * ISP24xx queue - ELS Pass-Through IOCB structure definition. */
*** 563,576 **** uint8_t s_id_7_0; uint8_t s_id_15_8; uint16_t control_flags; uint32_t rcv_payld_data_bcnt; uint32_t xmt_payld_data_bcnt; ! uint32_t xmt_dseg_0_address[2]; /* Tx Data segment 0 address. */ ! uint32_t xmt_dseg_0_length; /* Tx Data segment 0 length. */ ! uint32_t rcv_dseg_0_address[2]; /* Rx Data segment 0 address. */ ! uint32_t rcv_dseg_0_length; /* Rx Data segment 0 length. */ } els_passthru_entry_t; /* * ISP24x queue - ELS Pass-Through IOCB response. */ --- 538,548 ---- uint8_t s_id_7_0; uint8_t s_id_15_8; uint16_t control_flags; uint32_t rcv_payld_data_bcnt; uint32_t xmt_payld_data_bcnt; ! ql_64bit_data_seg_t dseg[2]; /* Data segments. */ } els_passthru_entry_t; /* * ISP24x queue - ELS Pass-Through IOCB response. */
*** 954,980 **** struct { uint8_t reserved_2[2]; uint8_t scsi_status_l; uint8_t scsi_status_h; uint32_t byte_count; ! uint32_t dseg_0_address; ! uint32_t dseg_0_length; ! uint32_t dseg_1_address; ! uint32_t dseg_1_length; ! uint32_t dseg_2_address; ! uint32_t dseg_2_length; }s0_32bit; struct { uint8_t reserved_3[2]; uint8_t scsi_status_l; uint8_t scsi_status_h; uint32_t byte_count; ! uint32_t dseg_0_address[2]; ! uint32_t dseg_0_length; ! uint32_t dseg_1_address[2]; ! uint32_t dseg_1_length; }s0_64bit; struct { uint8_t sense_length_l; uint8_t sense_length_h; --- 926,944 ---- struct { uint8_t reserved_2[2]; uint8_t scsi_status_l; uint8_t scsi_status_h; uint32_t byte_count; ! ql_32bit_data_seg_t dseg[3]; }s0_32bit; struct { uint8_t reserved_3[2]; uint8_t scsi_status_l; uint8_t scsi_status_h; uint32_t byte_count; ! ql_64bit_data_seg_t dseg[2]; }s0_64bit; struct { uint8_t sense_length_l; uint8_t sense_length_h;
*** 1023,1035 **** uint16_t scsi_status; uint32_t relative_offset; uint32_t reserved_3; uint32_t transfer_length; uint32_t reserved_4; ! uint32_t dseg_0_address_l; ! uint32_t dseg_0_address_h; ! uint32_t dseg_0_length; }s0; struct { uint16_t sense_length; uint16_t flags; --- 987,997 ---- uint16_t scsi_status; uint32_t relative_offset; uint32_t reserved_3; uint32_t transfer_length; uint32_t reserved_4; ! ql_64bit_data_seg_t dseg; }s0; struct { uint16_t sense_length; uint16_t flags;
*** 1047,1059 **** uint32_t residual_length; uint16_t ox_id; uint8_t reserved_3[10]; uint32_t transfer_length; uint32_t reserved_4; ! uint32_t dseg_0_address_l; ! uint32_t dseg_0_address_h; ! uint32_t dseg_0_length; }s2; }type; } ctio_snd_entry_t; /* --- 1009,1019 ---- uint32_t residual_length; uint16_t ox_id; uint8_t reserved_3[10]; uint32_t transfer_length; uint32_t reserved_4; ! ql_64bit_data_seg_t dseg; }s2; }type; } ctio_snd_entry_t; /*
*** 1086,1098 **** uint16_t scsi_status; uint32_t relative_offset; uint32_t reserved_3; uint32_t transfer_length; uint32_t reserved_4; ! uint32_t dseg_0_address_l; ! uint32_t dseg_0_address_h; ! uint32_t dseg_0_length; }s0; struct { uint16_t sense_length; uint16_t flags; --- 1046,1056 ---- uint16_t scsi_status; uint32_t relative_offset; uint32_t reserved_3; uint32_t transfer_length; uint32_t reserved_4; ! ql_64bit_data_seg_t dseg; }s0; struct { uint16_t sense_length; uint16_t flags;
*** 1110,1122 **** uint32_t residual_length; uint16_t ox_id; uint8_t reserved_3[10]; uint32_t transfer_length; uint32_t reserved_4; ! uint32_t dseg_0_address_l; ! uint32_t dseg_0_address_h; ! uint32_t dseg_0_length; }s2; }type; } ctio_rcv_entry_t; /* --- 1068,1078 ---- uint32_t residual_length; uint16_t ox_id; uint8_t reserved_3[10]; uint32_t transfer_length; uint32_t reserved_4; ! ql_64bit_data_seg_t dseg; }s2; }type; } ctio_rcv_entry_t; /*
*** 1138,1153 **** uint8_t reserved_1[2]; uint16_t timeout; /* Command timeout. */ uint16_t dseg_count; /* Data segment count. */ uint8_t reserved_2[16]; uint32_t byte_count; /* Total byte count. */ ! uint32_t dseg_0_address; /* Data segment 0 address. */ ! uint32_t dseg_0_length; /* Data segment 0 length. */ ! uint32_t dseg_1_address; /* Data segment 1 address. */ ! uint32_t dseg_1_length; /* Data segment 1 length. */ ! uint32_t dseg_2_address; /* Data segment 2 address. */ ! uint32_t dseg_2_length; /* Data segment 2 length. */ } ip_entry_t; /* * ISP queue - 64-Bit DMA addressing IP entry structure definition. */ --- 1094,1104 ---- uint8_t reserved_1[2]; uint16_t timeout; /* Command timeout. */ uint16_t dseg_count; /* Data segment count. */ uint8_t reserved_2[16]; uint32_t byte_count; /* Total byte count. */ ! ql_32bit_data_seg_t dseg[3]; /* Data segments. */ } ip_entry_t; /* * ISP queue - 64-Bit DMA addressing IP entry structure definition. */
*** 1167,1180 **** uint8_t reserved_1[2]; uint16_t timeout; /* Command timeout. */ uint16_t dseg_count; /* Data segment count. */ uint8_t reserved_2[16]; uint32_t byte_count; /* Total byte count. */ ! uint32_t dseg_0_address[2]; /* Data segment 0 address. */ ! uint32_t dseg_0_length; /* Data segment 0 length. */ ! uint32_t dseg_1_address[2]; /* Data segment 1 address. */ ! uint32_t dseg_1_length; /* Data segment 1 length. */ } ip_a64_entry_t; /* * ISP24xx queue - IP command entry structure definition. */ --- 1118,1128 ---- uint8_t reserved_1[2]; uint16_t timeout; /* Command timeout. */ uint16_t dseg_count; /* Data segment count. */ uint8_t reserved_2[16]; uint32_t byte_count; /* Total byte count. */ ! ql_64bit_data_seg_t dseg[2]; /* Data segments. */ } ip_a64_entry_t; /* * ISP24xx queue - IP command entry structure definition. */
*** 1195,1206 **** uint16_t frame_hdr_cntrl_flgs; uint8_t reserved_2[12]; uint32_t sys_define_2; uint32_t byte_count; /* Total byte count. */ uint8_t reserved_3[4]; ! uint32_t dseg_0_address[2]; /* Data segment 0 address. */ ! uint32_t dseg_0_length; /* Data segment 0 length. */ } ip_cmd_entry_t; /* * IP command Control Flags. */ --- 1143,1153 ---- uint16_t frame_hdr_cntrl_flgs; uint8_t reserved_2[12]; uint32_t sys_define_2; uint32_t byte_count; /* Total byte count. */ uint8_t reserved_3[4]; ! ql_64bit_data_seg_t dseg; /* Data segments. */ } ip_cmd_entry_t; /* * IP command Control Flags. */
*** 1365,1376 **** uint8_t entry_type; /* Entry type. */ uint8_t entry_count; /* Entry count. */ uint8_t sys_define; /* System defined. */ uint8_t entry_status; /* Entry Status. */ uint32_t handle; /* System handle */ ! uint8_t acq_cnt; /* format 0 acquired, format 1 count */ ! uint8_t setup; /* format 0 */ uint8_t reserved[2]; uint8_t port_id[3]; uint8_t format; uint8_t vp_index[16]; uint8_t reserved_1[32]; --- 1312,1323 ---- uint8_t entry_type; /* Entry type. */ uint8_t entry_count; /* Entry count. */ uint8_t sys_define; /* System defined. */ uint8_t entry_status; /* Entry Status. */ uint32_t handle; /* System handle */ ! uint8_t vp_acquired; ! uint8_t vp_setup; uint8_t reserved[2]; uint8_t port_id[3]; uint8_t format; uint8_t vp_index[16]; uint8_t reserved_1[32];
*** 1382,1397 **** uint8_t sys_define; /* System defined. */ uint8_t entry_status; /* Entry Status. */ uint32_t handle; /* System handle */ uint16_t vp_count; uint8_t vp_index; ! uint8_t status; uint8_t port_id[3]; uint8_t format; uint8_t reserved[48]; } report_id_1_t; /* * ISP2400 queue - Verify Menlo FW entry structure definition. */ #define VERIFY_MENLO_TYPE 0x1b typedef struct vfy_menlo_entry { --- 1329,1368 ---- uint8_t sys_define; /* System defined. */ uint8_t entry_status; /* Entry Status. */ uint32_t handle; /* System handle */ uint16_t vp_count; uint8_t vp_index; ! uint8_t vp_status; uint8_t port_id[3]; uint8_t format; uint8_t reserved[48]; } report_id_1_t; + typedef struct report_id_acq { + uint8_t entry_type; /* Entry type. */ + uint8_t entry_count; /* Entry count. */ + uint8_t sys_define; /* System defined. */ + uint8_t entry_status; /* Entry Status. */ + uint32_t handle; /* System handle */ + uint8_t vp_acquired; + uint8_t vp_setup; + uint8_t vp_index; + uint8_t vp_status; + uint8_t port_id[3]; + uint8_t format; + uint8_t status_subcode; + uint8_t flags; + uint16_t fip_flags; + uint16_t fcf_index; + uint16_t mac[3]; + uint8_t reserved[4]; + uint8_t ls_rjt_subcode; + uint8_t ls_rjt_explanation; + uint8_t ls_rjt_reason_code; + uint8_t reserved_1[29]; + } report_id_acq_t; + /* * ISP2400 queue - Verify Menlo FW entry structure definition. */ #define VERIFY_MENLO_TYPE 0x1b typedef struct vfy_menlo_entry {
*** 1408,1419 **** uint32_t exch_addr; uint32_t reserved_2[3]; uint32_t fw_size; uint32_t fw_sequence_size; uint32_t relative_offset; ! uint32_t dseg_0_address[2]; /* Data segment 0 address. */ ! uint32_t dseg_0_length; /* Data segment 0 length. */ } vfy_menlo_entry_t; /* * Option Flags. */ --- 1379,1389 ---- uint32_t exch_addr; uint32_t reserved_2[3]; uint32_t fw_size; uint32_t fw_sequence_size; uint32_t relative_offset; ! ql_64bit_data_seg_t dseg; /* Data segments. */ } vfy_menlo_entry_t; /* * Option Flags. */
*** 1442,1453 **** uint32_t parameter_2; uint32_t parameter_3; uint32_t reserved_2[3]; uint32_t total_byte_count; uint32_t reserved_3; ! uint32_t dseg_0_address[2]; /* Data segment 0 address. */ ! uint32_t dseg_0_length; /* Data segment 0 length. */ } menlo_data_entry_t; /* * Mailbox IOCB. */ --- 1412,1422 ---- uint32_t parameter_2; uint32_t parameter_3; uint32_t reserved_2[3]; uint32_t total_byte_count; uint32_t reserved_3; ! ql_64bit_data_seg_t dseg; /* Data segments. */ } menlo_data_entry_t; /* * Mailbox IOCB. */
*** 1464,1473 **** --- 1433,1443 ---- log_entry_t log; vp_control_entry_t vpc; vp_modify_entry_t vpm; vfy_menlo_entry_t mvfy; menlo_data_entry_t mdata; + els_passthru_entry_t els; } ql_mbx_iocb_t; /* * Global Data in ql_iocb.c source file. */
*** 1474,1493 **** /* * Global Function Prototypes in ql_iocb.c source file. */ void ql_start_iocb(ql_adapter_state_t *, ql_srb_t *); ! void ql_isp_cmd(ql_adapter_state_t *); ! int ql_marker(ql_adapter_state_t *, uint16_t, uint16_t, uint8_t); void ql_isp_rcvbuf(ql_adapter_state_t *); ! void ql_command_iocb(ql_adapter_state_t *, ql_srb_t *, void *); ! void ql_ms_iocb(ql_adapter_state_t *, ql_srb_t *, void *); ! void ql_ip_iocb(ql_adapter_state_t *, ql_srb_t *, void *); ! void ql_command_24xx_iocb(ql_adapter_state_t *, ql_srb_t *, void *); ! void ql_ms_24xx_iocb(ql_adapter_state_t *, ql_srb_t *, void *); ! void ql_ip_24xx_iocb(ql_adapter_state_t *, ql_srb_t *, void *); ! void ql_els_24xx_iocb(ql_adapter_state_t *, ql_srb_t *, void *); #ifdef __cplusplus } #endif --- 1444,1465 ---- /* * Global Function Prototypes in ql_iocb.c source file. */ void ql_start_iocb(ql_adapter_state_t *, ql_srb_t *); ! int ql_marker(ql_adapter_state_t *, uint16_t, ql_lun_t *lq, uint8_t); void ql_isp_rcvbuf(ql_adapter_state_t *); ! void ql_command_iocb(ql_adapter_state_t *, ql_request_q_t *, ql_srb_t *, ! void *); ! void ql_ms_iocb(ql_adapter_state_t *, ql_request_q_t *, ql_srb_t *, void *); ! void ql_ip_iocb(ql_adapter_state_t *, ql_request_q_t *, ql_srb_t *, void *); ! void ql_command_24xx_iocb(ql_adapter_state_t *, ql_request_q_t *, ql_srb_t *, ! void *); ! void ql_ms_24xx_iocb(ql_adapter_state_t *, ql_request_q_t *, ql_srb_t *, ! void *); ! void ql_ip_24xx_iocb(ql_adapter_state_t *, ql_request_q_t *, ql_srb_t *, ! void *); #ifdef __cplusplus } #endif