00001 #ifndef scdrpdef_h 00002 #define scdrpdef_h 00003 00004 #define SCDRP_C_VERSION 6 00005 #define SCDRP_K_SCDRPBASE 0 00006 #define SCDRP_C_SCDRPBASE 0 00007 #define SCDRP_M_FLAG_S0BUF 0x1 00008 #define SCDRP_M_FLAG_BUFFER_MAPPED 0x2 00009 #define SCDRP_M_FLAG_DISK_SPUN_UP 0x4 00010 #define SCDRP_M_FLAG_LOCK 0x8 00011 #define SCDRP_M_FLAG_QUEUED_IO 0x10 00012 #define SCDRP_M_FLAG_ACA_IO 0x20 00013 #define SCDRP_M_FLAG_CLEAR_ACA_MSG 0x40 00014 #define SCDRP_M_FLAG_ASENSE_VALID 0x80 00015 #define SCDRP_M_FLAG_ON_PORT_QUEUE 0x100 00016 #define SCDRP_M_FLAG_ON_DEV_QUEUE 0x200 00017 #define SCDRP_M_FLAG_ABORT_THIS_IO 0x400 00018 #define SCDRP_M_FLAG_QUEUE_FULL_INIT 0x800 00019 #define SCDRP_M_FLAG_QUEUE_FULL_SEEN 0x1000 00020 #define SCDRP_M_FLAG_WAIT_FOR_IO 0x2000 00021 #define SCDRP_M_FLAG_INTERNAL_REQUEST 0x4000 00022 #define SCDRP_M_FLAG_SEND_MESSAGE_ONLY 0x8000 00023 #define SCDRP_M_FLAG_SEND_DEVICE_RESET 0x10000 00024 #define SCDRP_M_FLAG_MODE_SENSE 0x60000 00025 #define SCDRP_M_FLAG_CL_PRIVATE_BUFF 0x80000 00026 #define SCDRP_M_FLAG_TENBYTE 0x100000 00027 #define SCDRP_M_FLAG_BUS_RESET 0x200000 00028 #define SCDRP_M_FLAG_ON_SYS_QUEUE 0x400000 00029 #define SCDRP_M_FLAG_ON_FP_QUEUE 0x800000 00030 #define SCDRP_M_FLAG_RBUN_WANTED 0x1000000 00031 #define SCDRP_M_DSF_NOWAIT 0x1 00032 #define SCDRP_M_DSF_RELEASE_SPDT_LOCK 0x2 00033 #define SCDRP_M_DSF_DEVICE_WAS_RESET 0x4 00034 #define SCDRP_M_DSF_REQUEST_ABORTED 0x8 00035 #define SCDRP_M_DSF_REQUEST_FLUSHED 0x10 00036 #define SCDRP_M_DSF_STALL_WFIKPCH_DIPL 0x20 00037 #define SCDRP_M_MSGO_IDENTIFY 0x1 00038 #define SCDRP_M_MSGO_QUEUE_TAG 0x2 00039 #define SCDRP_M_MSGO_SYNC_OUT 0x4 00040 #define SCDRP_M_MSGO_BUS_DEVICE_RESET 0x8 00041 #define SCDRP_M_MSGO_MSG_PARITY_ERROR 0x10 00042 #define SCDRP_M_MSGO_ID_ERROR 0x20 00043 #define SCDRP_M_MSGO_ABORT 0x40 00044 #define SCDRP_M_MSGO_NOP 0x80 00045 #define SCDRP_M_MSGO_MESSAGE_REJECT 0x100 00046 #define SCDRP_M_MSGO_CLEAR_ACA 0x200 00047 #define SCDRP_M_MSGO_LAST_BIT 0x400 00048 #define SCDRP_M_MSGI_SYNC_IN 0x1 00049 #define SCDRP_K_QCHAR_UNORDERED 0 00050 #define SCDRP_K_QCHAR_ORDERED 1 00051 #define SCDRP_K_QCHAR_HEAD 2 00052 #define SCDRP_K_QCHAR_NOT_QUEUED 3 00053 #define SCDRP_K_QCHAR_ACA 4 00054 #define SCDRP_M_EVENT_PARERR 0x1 00055 #define SCDRP_M_EVENT_BSYERR 0x2 00056 #define SCDRP_M_EVENT_MISPHS 0x4 00057 #define SCDRP_M_EVENT_BADPHS 0x8 00058 #define SCDRP_M_EVENT_RST 0x10 00059 #define SCDRP_M_EVENT_CTLERR 0x20 00060 #define SCDRP_M_EVENT_BUSERR 0x40 00061 #define SCDRP_M_EVENT_ABORT 0x80 00062 #define SCDRP_M_EVENT_MSGERR 0x100 00063 #define SCDRP_M_CNX_ABORT_PND 0x1 00064 #define SCDRP_M_CNX_ABORT_CMPL 0x2 00065 #define SCDRP_M_CNX_ABORT_INPROG 0x4 00066 #define SCDRP_M_CNX_ABORT_RESEL 0x8 00067 #define SCDRP_M_CNX_PND_RESEL 0x10 00068 #define SCDRP_M_CNX_DSCN 0x20 00069 #define SCDRP_M_CNX_TMODSCN 0x40 00070 #define SCDRP_M_PHASE_DATAOUT 0x1 00071 #define SCDRP_M_PHASE_DATAIN 0x2 00072 #define SCDRP_M_PHASE_CMD 0x4 00073 #define SCDRP_M_PHASE_STS 0x8 00074 #define SCDRP_M_PHASE_INV1 0x10 00075 #define SCDRP_M_PHASE_INV2 0x20 00076 #define SCDRP_M_PHASE_MSGOUT 0x40 00077 #define SCDRP_M_PHASE_MSGIN 0x80 00078 #define SCDRP_M_PHASE_ARB 0x100 00079 #define SCDRP_M_PHASE_SEL 0x200 00080 #define SCDRP_M_PHASE_RESEL 0x400 00081 #define SCDRP_M_PHASE_DISCON 0x800 00082 #define SCDRP_M_PHASE_CMD_CMPL 0x1000 00083 #define SCDRP_M_PHASE_TMODISCON 0x2000 00084 #define SCDRP_M_PHASE_FREE 0x4000 00085 #define SCDRP_K_SCSI_LEN 440 00086 #define SCDRP_C_SCSI_LEN 440 00087 #define SCDRP_K_SCSI_V73 1 00088 #define SCDRP_C_SCSI_V73 1 00089 #define SCDRP_K_LENGTH 504 00090 #define SCDRP_C_LENGTH 504 00091 00092 struct _scdrp { 00093 struct _fkb *scdrp_l_fqfl; 00094 struct _fkb *scdrp_l_fqbl; 00095 unsigned short int scdrp_w_scdrpsize; 00096 unsigned char scdrp_b_cd_type; 00097 unsigned char scdrp_b_flck; 00098 void (*scdrp_l_fpc)(); 00099 unsigned long scdrp_l_fr3; 00100 unsigned long scdrp_l_fr4; 00101 struct _ucb *scdrp_l_port_ucb; 00102 struct _ucb *scdrp_l_ucb; 00103 unsigned int scdrp_l_func; 00104 unsigned int scdrp_l_boff; 00105 unsigned int scdrp_is_sts; 00106 struct _pte *scdrp_l_svapte; 00107 unsigned int scdrp_l_bcnt; 00108 void *scdrp_l_media; 00109 unsigned int scdrp_l_abcnt; 00110 int (*scdrp_l_savd_rtn)(); 00111 void *scdrp_l_msg_buf; 00112 unsigned int scdrp_l_rspid; 00113 struct _cdt *scdrp_l_cdt; 00114 short int *scdrp_l_rwcptr; 00115 union { 00116 struct { 00117 struct _irp *scdrp_l_irp; 00118 struct _kpb *scdrp_ps_kpb; 00119 struct _scdrp *scdrp_ps_prev_scdrp; 00120 struct _spdt *scdrp_ps_spdt; 00121 void *scdrp_l_sva_user; 00122 void *scdrp_l_cmd_buf; 00123 unsigned int scdrp_l_cmd_buf_len; 00124 char *scdrp_l_cmd_ptr; 00125 int *scdrp_l_sts_ptr; 00126 union { 00127 unsigned int scdrp_l_scsi_flags; 00128 struct { 00129 unsigned scdrp_v_flag_s0buf : 1; 00130 unsigned scdrp_v_flag_buffer_mapped : 1; 00131 unsigned scdrp_v_flag_disk_spun_up : 1; 00132 unsigned scdrp_v_flag_lock : 1; 00133 unsigned scdrp_v_flag_queued_io : 1; 00134 unsigned scdrp_v_flag_aca_io : 1; 00135 unsigned scdrp_v_flag_clear_aca_msg : 1; 00136 unsigned scdrp_v_flag_asense_valid : 1; 00137 unsigned scdrp_v_flag_on_port_queue : 1; 00138 unsigned scdrp_v_flag_on_dev_queue : 1; 00139 unsigned scdrp_v_flag_abort_this_io : 1; 00140 unsigned scdrp_v_flag_queue_full_init : 1; 00141 unsigned scdrp_v_flag_queue_full_seen : 1; 00142 unsigned scdrp_v_flag_wait_for_io : 1; 00143 unsigned scdrp_v_flag_internal_request : 1; 00144 unsigned scdrp_v_flag_send_message_only : 1; 00145 unsigned scdrp_v_flag_send_device_reset : 1; 00146 unsigned scdrp_v_flag_mode_sense : 2; 00147 unsigned scdrp_v_flag_cl_private_buff : 1; 00148 unsigned scdrp_v_flag_tenbyte : 1; 00149 unsigned scdrp_v_flag_bus_reset : 1; 00150 unsigned scdrp_v_flag_on_sys_queue : 1; 00151 unsigned scdrp_v_flag_on_fp_queue : 1; 00152 unsigned scdrp_v_flag_rbun_wanted : 1; 00153 unsigned scdrp_v_fill_14_ : 7; 00154 }; 00155 }; 00156 union { 00157 unsigned int scdrp_is_dipl_scsi_flags; 00158 struct { 00159 unsigned scdrp_v_dsf_nowait : 1; 00160 unsigned scdrp_v_dsf_release_spdt_lock : 1; 00161 unsigned scdrp_v_dsf_device_was_reset : 1; 00162 unsigned scdrp_v_dsf_request_aborted : 1; 00163 unsigned scdrp_v_dsf_request_flushed : 1; 00164 unsigned scdrp_v_dsf_stall_wfikpch_dipl : 1; 00165 unsigned scdrp_v_fill_15_ : 2; 00166 }; 00167 }; 00168 void *scdrp_l_datacheck; 00169 unsigned int scdrp_l_cl_retry; 00170 unsigned int scdrp_l_dma_timeout; 00171 unsigned int scdrp_l_discon_timeout; 00172 unsigned int scdrp_l_addnl_info; 00173 unsigned char scdrp_b_sense_key; 00174 char scdrp_t_scdrp_align_0 [3]; 00175 unsigned int scdrp_l_pad_bcnt; 00176 void *scdrp_l_sva_dma; 00177 int scdrp_is_cmd_slot; 00178 struct _pte *scdrp_l_sva_spte; 00179 void *scdrp_ps_port_dma_va; 00180 struct _pte *scdrp_l_port_svapte; 00181 unsigned int scdrp_l_port_boff; 00182 void *scdrp_ps_mode_args; 00183 void *scdrp_l_scsimsgo_ptr; 00184 void *scdrp_l_scsimsgi_ptr; 00185 char scdrp_b_scsimsgo_buf [8]; 00186 char scdrp_b_scsimsgi_buf [8]; 00187 union { 00188 unsigned int scdrp_l_msgo_pending; 00189 struct { 00190 unsigned scdrp_v_msgo_identify : 1; 00191 unsigned scdrp_v_msgo_queue_tag : 1; 00192 unsigned scdrp_v_msgo_sync_out : 1; 00193 unsigned scdrp_v_msgo_bus_device_reset : 1; 00194 unsigned scdrp_v_msgo_msg_parity_error : 1; 00195 unsigned scdrp_v_msgo_id_error : 1; 00196 unsigned scdrp_v_msgo_abort : 1; 00197 unsigned scdrp_v_msgo_nop : 1; 00198 unsigned scdrp_v_msgo_message_reject : 1; 00199 unsigned scdrp_v_msgo_clear_aca : 1; 00200 unsigned scdrp_v_msgo_last_bit : 1; 00201 unsigned scdrp_v_fill_16_ : 5; 00202 }; 00203 }; 00204 union { 00205 unsigned int scdrp_l_msgi_pending; 00206 struct { 00207 unsigned scdrp_v_msgi_sync_in : 1; 00208 unsigned scdrp_v_fill_17_ : 7; 00209 }; 00210 }; 00211 unsigned char scdrp_b_last_msgo; 00212 char scdrp_t_scdrp_align_1 [3]; 00213 void *scdrp_l_data_ptr; 00214 unsigned int scdrp_l_trans_cnt; 00215 unsigned int scdrp_l_save_data_cnt; 00216 unsigned int scdrp_l_save_data_ptr; 00217 unsigned int scdrp_l_sdp_data_cnt; 00218 void *scdrp_l_sdp_data_ptr; 00219 unsigned int scdrp_l_duetime; 00220 unsigned int scdrp_is_cmd_bcnt; 00221 unsigned int scdrp_is_busy_retry_cnt; 00222 unsigned int scdrp_is_arb_retry_cnt; 00223 unsigned int scdrp_is_sel_retry_cnt; 00224 unsigned int scdrp_is_cmd_retry_cnt; 00225 unsigned int scdrp_is_sel_tqe_retry_cnt; 00226 unsigned int scdrp_is_dma_long; 00227 long long scdrp_q_time_stamp; 00228 union { 00229 unsigned int scdrp_is_queue_tag; 00230 unsigned long long scdrp_q_queue_tag; 00231 }; 00232 unsigned int scdrp_is_queue_char; 00233 void *scdrp_ps_pqfl; 00234 void *scdrp_ps_pqbl; 00235 void *scdrp_ps_sense_buffer; 00236 unsigned int scdrp_is_sense_buffer_len; 00237 union { 00238 unsigned int scdrp_is_events_seen; 00239 struct { 00240 unsigned scdrp_v_event_parerr : 1; 00241 unsigned scdrp_v_event_bsyerr : 1; 00242 unsigned scdrp_v_event_misphs : 1; 00243 unsigned scdrp_v_event_badphs : 1; 00244 unsigned scdrp_v_event_rst : 1; 00245 unsigned scdrp_v_event_ctlerr : 1; 00246 unsigned scdrp_v_event_buserr : 1; 00247 unsigned scdrp_v_event_abort : 1; 00248 unsigned scdrp_v_event_msgerr : 1; 00249 unsigned scdrp_v_fill_18_ : 7; 00250 }; 00251 }; 00252 union { 00253 unsigned int scdrp_is_cnx_sts; 00254 struct { 00255 unsigned scdrp_v_cnx_abort_pnd : 1; 00256 unsigned scdrp_v_cnx_abort_cmpl : 1; 00257 unsigned scdrp_v_cnx_abort_inprog : 1; 00258 unsigned scdrp_v_cnx_abort_resel : 1; 00259 unsigned scdrp_v_cnx_pnd_resel : 1; 00260 unsigned scdrp_v_cnx_dscn : 1; 00261 unsigned scdrp_v_cnx_tmodscn : 1; 00262 unsigned scdrp_v_fill_19_ : 1; 00263 }; 00264 }; 00265 unsigned int scdrp_is_sequence; 00266 void *scdrp_ps_class_kpb; 00267 union { 00268 unsigned int scdrp_is_bus_phase; 00269 struct { 00270 unsigned scdrp_v_phase_dataout : 1; 00271 unsigned scdrp_v_phase_datain : 1; 00272 unsigned scdrp_v_phase_cmd : 1; 00273 unsigned scdrp_v_phase_sts : 1; 00274 unsigned scdrp_v_phase_inv1 : 1; 00275 unsigned scdrp_v_phase_inv2 : 1; 00276 unsigned scdrp_v_phase_msgout : 1; 00277 unsigned scdrp_v_phase_msgin : 1; 00278 unsigned scdrp_v_phase_arb : 1; 00279 unsigned scdrp_v_phase_sel : 1; 00280 unsigned scdrp_v_phase_resel : 1; 00281 unsigned scdrp_v_phase_discon : 1; 00282 unsigned scdrp_v_phase_cmd_cmpl : 1; 00283 unsigned scdrp_v_phase_tmodiscon : 1; 00284 unsigned scdrp_v_phase_free : 1; 00285 unsigned scdrp_v_fill_20_ : 1; 00286 }; 00287 }; 00288 unsigned int scdrp_is_old_phases; 00289 unsigned int scdrp_is_request_status; 00290 00291 union { 00292 char scdrp_t_crctx_filler [96]; 00293 struct { 00294 char scdrp_t_crctx_ffill1 [56]; 00295 int scdrp_is_item_cnt; 00296 int scdrp_is_item_num; 00297 }; 00298 }; 00299 }; 00300 }; 00301 void *scdrp_ps_qio_p6; 00302 unsigned long long scdrp_q_port_specific; 00303 int scdrp_l_rsvd_long [11]; 00304 int scdrp_l_qfull_sts_cnt; 00305 union { 00306 void *scdrp_ps_scsi_rbun_p; 00307 struct _fcp_rbun *scdrp_ps_fcp_rbun; 00308 }; 00309 }; 00310 00311 #endif 00312 00313