📄 isp_inline.h
字号:
ISP_IOXPUT_16(isp, ctsrc->rsp.m0.ct_scsi_status, &ctdst->rsp.m0.ct_scsi_status); ISP_IOXPUT_32(isp, ctsrc->rsp.m0.ct_xfrlen, &ctdst->rsp.m0.ct_xfrlen); if (ctsrc->ct_header.rqs_entry_type == RQSTYPE_CTIO2) { for (i = 0; i < ISP_RQDSEG_T2; i++) { ISP_IOXPUT_32(isp, ctsrc->rsp.m0.ct_dataseg[i].ds_base, &ctdst->rsp.m0.ct_dataseg[i].ds_base); ISP_IOXPUT_32(isp, ctsrc->rsp.m0.ct_dataseg[i].ds_count, &ctdst->rsp.m0.ct_dataseg[i].ds_count); } } else if (ctsrc->ct_header.rqs_entry_type == RQSTYPE_CTIO3) { for (i = 0; i < ISP_RQDSEG_T3; i++) { ISP_IOXPUT_32(isp, ctsrc->rsp.m0.ct_dataseg64[i].ds_base, &ctdst->rsp.m0.ct_dataseg64[i].ds_base); ISP_IOXPUT_32(isp, ctsrc->rsp.m0.ct_dataseg64[i].ds_basehi, &ctdst->rsp.m0.ct_dataseg64[i].ds_basehi); ISP_IOXPUT_32(isp, ctsrc->rsp.m0.ct_dataseg64[i].ds_count, &ctdst->rsp.m0.ct_dataseg64[i].ds_count); } } else if (ctsrc->ct_header.rqs_entry_type == RQSTYPE_CTIO4) { ISP_IOXPUT_16(isp, ctsrc->rsp.m0.ct_dslist.ds_type, &ctdst->rsp.m0.ct_dslist.ds_type); ISP_IOXPUT_32(isp, ctsrc->rsp.m0.ct_dslist.ds_segment, &ctdst->rsp.m0.ct_dslist.ds_segment); ISP_IOXPUT_32(isp, ctsrc->rsp.m0.ct_dslist.ds_base, &ctdst->rsp.m0.ct_dslist.ds_base); } } else if ((ctsrc->ct_flags & CT2_FLAG_MMASK) == CT2_FLAG_MODE1) { ISP_IOXPUT_16(isp, ctsrc->rsp.m1._reserved, &ctdst->rsp.m1._reserved); ISP_IOXPUT_16(isp, ctsrc->rsp.m1._reserved2, &ctdst->rsp.m1._reserved2); ISP_IOXPUT_16(isp, ctsrc->rsp.m1.ct_senselen, &ctdst->rsp.m1.ct_senselen); ISP_IOXPUT_16(isp, ctsrc->rsp.m1.ct_scsi_status, &ctdst->rsp.m1.ct_scsi_status); ISP_IOXPUT_16(isp, ctsrc->rsp.m1.ct_resplen, &ctdst->rsp.m1.ct_resplen); for (i = 0; i < MAXRESPLEN; i++) { ISP_IOXPUT_8(isp, ctsrc->rsp.m1.ct_resp[i], &ctdst->rsp.m1.ct_resp[i]); } } else { ISP_IOXPUT_32(isp, ctsrc->rsp.m2._reserved, &ctdst->rsp.m2._reserved); ISP_IOXPUT_16(isp, ctsrc->rsp.m2._reserved2, &ctdst->rsp.m2._reserved2); ISP_IOXPUT_16(isp, ctsrc->rsp.m2._reserved3, &ctdst->rsp.m2._reserved3); ISP_IOXPUT_32(isp, ctsrc->rsp.m2.ct_datalen, &ctdst->rsp.m2.ct_datalen); ISP_IOXPUT_32(isp, ctsrc->rsp.m2.ct_fcp_rsp_iudata.ds_base, &ctdst->rsp.m2.ct_fcp_rsp_iudata.ds_base); ISP_IOXPUT_32(isp, ctsrc->rsp.m2.ct_fcp_rsp_iudata.ds_count, &ctdst->rsp.m2.ct_fcp_rsp_iudata.ds_count); }}static INLINE voidisp_get_ctio2(struct ispsoftc *isp, ct2_entry_t *ctsrc, ct2_entry_t *ctdst){ int i; isp_copy_in_hdr(isp, &ctsrc->ct_header, &ctdst->ct_header); ISP_IOXGET_16(isp, &ctsrc->ct_reserved, ctdst->ct_reserved); ISP_IOXGET_16(isp, &ctsrc->ct_fwhandle, ctdst->ct_fwhandle); ISP_IOXGET_8(isp, &ctsrc->ct_lun, ctdst->ct_lun); ISP_IOXGET_8(isp, &ctsrc->ct_iid, ctdst->ct_iid); ISP_IOXGET_16(isp, &ctsrc->ct_rxid, ctdst->ct_rxid); ISP_IOXGET_16(isp, &ctsrc->ct_flags, ctdst->ct_flags); ISP_IOXGET_16(isp, &ctsrc->ct_status, ctdst->ct_status); ISP_IOXGET_16(isp, &ctsrc->ct_timeout, ctdst->ct_timeout); ISP_IOXGET_16(isp, &ctsrc->ct_seg_count, ctdst->ct_seg_count); ISP_IOXGET_32(isp, &ctsrc->ct_reloff, ctdst->ct_reloff); ISP_IOXGET_32(isp, &ctsrc->ct_resid, ctdst->ct_resid); for (i = 0; i < 4; i++) { ISP_IOXGET_32(isp, &ctsrc->rsp.fw._reserved[i], ctdst->rsp.fw._reserved[i]); } ISP_IOXGET_16(isp, &ctsrc->rsp.fw.ct_scsi_status, ctdst->rsp.fw.ct_scsi_status); for (i = 0; i < QLTM_SENSELEN; i++) { ISP_IOXGET_8(isp, &ctsrc->rsp.fw.ct_sense[i], ctdst->rsp.fw.ct_sense[i]); }}static INLINE voidisp_put_enable_lun(struct ispsoftc *isp, lun_entry_t *lesrc, lun_entry_t *ledst){ int i; isp_copy_out_hdr(isp, &lesrc->le_header, &ledst->le_header); ISP_IOXPUT_32(isp, lesrc->le_reserved, &ledst->le_reserved); if (ISP_IS_SBUS(isp)) { ISP_IOXPUT_8(isp, lesrc->le_lun, &ledst->le_rsvd); ISP_IOXPUT_8(isp, lesrc->le_rsvd, &ledst->le_lun); ISP_IOXPUT_8(isp, lesrc->le_ops, &ledst->le_tgt); ISP_IOXPUT_8(isp, lesrc->le_tgt, &ledst->le_ops); ISP_IOXPUT_8(isp, lesrc->le_status, &ledst->le_reserved2); ISP_IOXPUT_8(isp, lesrc->le_reserved2, &ledst->le_status); ISP_IOXPUT_8(isp, lesrc->le_cmd_count, &ledst->le_in_count); ISP_IOXPUT_8(isp, lesrc->le_in_count, &ledst->le_cmd_count); ISP_IOXPUT_8(isp, lesrc->le_cdb6len, &ledst->le_cdb7len); ISP_IOXPUT_8(isp, lesrc->le_cdb7len, &ledst->le_cdb6len); } else { ISP_IOXPUT_8(isp, lesrc->le_lun, &ledst->le_lun); ISP_IOXPUT_8(isp, lesrc->le_rsvd, &ledst->le_rsvd); ISP_IOXPUT_8(isp, lesrc->le_ops, &ledst->le_ops); ISP_IOXPUT_8(isp, lesrc->le_tgt, &ledst->le_tgt); ISP_IOXPUT_8(isp, lesrc->le_status, &ledst->le_status); ISP_IOXPUT_8(isp, lesrc->le_reserved2, &ledst->le_reserved2); ISP_IOXPUT_8(isp, lesrc->le_cmd_count, &ledst->le_cmd_count); ISP_IOXPUT_8(isp, lesrc->le_in_count, &ledst->le_in_count); ISP_IOXPUT_8(isp, lesrc->le_cdb6len, &ledst->le_cdb6len); ISP_IOXPUT_8(isp, lesrc->le_cdb7len, &ledst->le_cdb7len); } ISP_IOXPUT_32(isp, lesrc->le_flags, &ledst->le_flags); ISP_IOXPUT_16(isp, lesrc->le_timeout, &ledst->le_timeout); for (i = 0; i < 20; i++) { ISP_IOXPUT_8(isp, lesrc->le_reserved3[i], &ledst->le_reserved3[i]); }}static INLINE voidisp_get_enable_lun(struct ispsoftc *isp, lun_entry_t *lesrc, lun_entry_t *ledst){ int i; isp_copy_in_hdr(isp, &lesrc->le_header, &ledst->le_header); ISP_IOXGET_32(isp, &lesrc->le_reserved, ledst->le_reserved); if (ISP_IS_SBUS(isp)) { ISP_IOXGET_8(isp, &lesrc->le_lun, ledst->le_rsvd); ISP_IOXGET_8(isp, &lesrc->le_rsvd, ledst->le_lun); ISP_IOXGET_8(isp, &lesrc->le_ops, ledst->le_tgt); ISP_IOXGET_8(isp, &lesrc->le_tgt, ledst->le_ops); ISP_IOXGET_8(isp, &lesrc->le_status, ledst->le_reserved2); ISP_IOXGET_8(isp, &lesrc->le_reserved2, ledst->le_status); ISP_IOXGET_8(isp, &lesrc->le_cmd_count, ledst->le_in_count); ISP_IOXGET_8(isp, &lesrc->le_in_count, ledst->le_cmd_count); ISP_IOXGET_8(isp, &lesrc->le_cdb6len, ledst->le_cdb7len); ISP_IOXGET_8(isp, &lesrc->le_cdb7len, ledst->le_cdb6len); } else { ISP_IOXGET_8(isp, &lesrc->le_lun, ledst->le_lun); ISP_IOXGET_8(isp, &lesrc->le_rsvd, ledst->le_rsvd); ISP_IOXGET_8(isp, &lesrc->le_ops, ledst->le_ops); ISP_IOXGET_8(isp, &lesrc->le_tgt, ledst->le_tgt); ISP_IOXGET_8(isp, &lesrc->le_status, ledst->le_status); ISP_IOXGET_8(isp, &lesrc->le_reserved2, ledst->le_reserved2); ISP_IOXGET_8(isp, &lesrc->le_cmd_count, ledst->le_cmd_count); ISP_IOXGET_8(isp, &lesrc->le_in_count, ledst->le_in_count); ISP_IOXGET_8(isp, &lesrc->le_cdb6len, ledst->le_cdb6len); ISP_IOXGET_8(isp, &lesrc->le_cdb7len, ledst->le_cdb7len); } ISP_IOXGET_32(isp, &lesrc->le_flags, ledst->le_flags); ISP_IOXGET_16(isp, &lesrc->le_timeout, ledst->le_timeout); for (i = 0; i < 20; i++) { ISP_IOXGET_8(isp, &lesrc->le_reserved3[i], ledst->le_reserved3[i]); }}static INLINE voidisp_put_notify(struct ispsoftc *isp, in_entry_t *insrc, in_entry_t *indst){ int i; isp_copy_out_hdr(isp, &insrc->in_header, &indst->in_header); ISP_IOXPUT_32(isp, insrc->in_reserved, &indst->in_reserved); if (ISP_IS_SBUS(isp)) { ISP_IOXPUT_8(isp, insrc->in_lun, &indst->in_iid); ISP_IOXPUT_8(isp, insrc->in_iid, &indst->in_lun); ISP_IOXPUT_8(isp, insrc->in_reserved2, &indst->in_tgt); ISP_IOXPUT_8(isp, insrc->in_tgt, &indst->in_reserved2); ISP_IOXPUT_8(isp, insrc->in_status, &indst->in_rsvd2); ISP_IOXPUT_8(isp, insrc->in_rsvd2, &indst->in_status); ISP_IOXPUT_8(isp, insrc->in_tag_val, &indst->in_tag_type); ISP_IOXPUT_8(isp, insrc->in_tag_type, &indst->in_tag_val); } else { ISP_IOXPUT_8(isp, insrc->in_lun, &indst->in_lun); ISP_IOXPUT_8(isp, insrc->in_iid, &indst->in_iid); ISP_IOXPUT_8(isp, insrc->in_reserved2, &indst->in_reserved2); ISP_IOXPUT_8(isp, insrc->in_tgt, &indst->in_tgt); ISP_IOXPUT_8(isp, insrc->in_status, &indst->in_status); ISP_IOXPUT_8(isp, insrc->in_rsvd2, &indst->in_rsvd2); ISP_IOXPUT_8(isp, insrc->in_tag_val, &indst->in_tag_val); ISP_IOXPUT_8(isp, insrc->in_tag_type, &indst->in_tag_type); } ISP_IOXPUT_32(isp, insrc->in_flags, &indst->in_flags); ISP_IOXPUT_16(isp, insrc->in_seqid, &indst->in_seqid); for (i = 0; i < IN_MSGLEN; i++) { ISP_IOXPUT_8(isp, insrc->in_msg[i], &indst->in_msg[i]); } for (i = 0; i < IN_RSVDLEN; i++) { ISP_IOXPUT_8(isp, insrc->in_reserved3[i], &indst->in_reserved3[i]); } for (i = 0; i < QLTM_SENSELEN; i++) { ISP_IOXPUT_8(isp, insrc->in_sense[i], &indst->in_sense[i]); }}static INLINE voidisp_get_notify(struct ispsoftc *isp, in_entry_t *insrc, in_entry_t *indst){ int i; isp_copy_in_hdr(isp, &insrc->in_header, &indst->in_header); ISP_IOXGET_32(isp, &insrc->in_reserved, indst->in_reserved); if (ISP_IS_SBUS(isp)) { ISP_IOXGET_8(isp, &insrc->in_lun, indst->in_iid); ISP_IOXGET_8(isp, &insrc->in_iid, indst->in_lun); ISP_IOXGET_8(isp, &insrc->in_reserved2, indst->in_tgt); ISP_IOXGET_8(isp, &insrc->in_tgt, indst->in_reserved2); ISP_IOXGET_8(isp, &insrc->in_status, indst->in_rsvd2); ISP_IOXGET_8(isp, &insrc->in_rsvd2, indst->in_status); ISP_IOXGET_8(isp, &insrc->in_tag_val, indst->in_tag_type); ISP_IOXGET_8(isp, &insrc->in_tag_type, indst->in_tag_val); } else { ISP_IOXGET_8(isp, &insrc->in_lun, indst->in_lun); ISP_IOXGET_8(isp, &insrc->in_iid, indst->in_iid); ISP_IOXGET_8(isp, &insrc->in_reserved2, indst->in_reserved2); ISP_IOXGET_8(isp, &insrc->in_tgt, indst->in_tgt); ISP_IOXGET_8(isp, &insrc->in_status, indst->in_status); ISP_IOXGET_8(isp, &insrc->in_rsvd2, indst->in_rsvd2); ISP_IOXGET_8(isp, &insrc->in_tag_val, indst->in_tag_val); ISP_IOXGET_8(isp, &insrc->in_tag_type, indst->in_tag_type); } ISP_IOXGET_32(isp, &insrc->in_flags, indst->in_flags); ISP_IOXGET_16(isp, &insrc->in_seqid, indst->in_seqid); for (i = 0; i < IN_MSGLEN; i++) { ISP_IOXGET_8(isp, &insrc->in_msg[i], indst->in_msg[i]); } for (i = 0; i < IN_RSVDLEN; i++) { ISP_IOXGET_8(isp, &insrc->in_reserved3[i], indst->in_reserved3[i]); } for (i = 0; i < QLTM_SENSELEN; i++) { ISP_IOXGET_8(isp, &insrc->in_sense[i], indst->in_sense[i]); }}static INLINE voidisp_put_notify_fc(struct ispsoftc *isp, in_fcentry_t *insrc, in_fcentry_t *indst){ isp_copy_out_hdr(isp, &insrc->in_header, &indst->in_header); ISP_IOXPUT_32(isp, insrc->in_reserved, &indst->in_reserved); ISP_IOXPUT_8(isp, insrc->in_lun, &indst->in_lun); ISP_IOXPUT_8(isp, insrc->in_iid, &indst->in_iid); ISP_IOXPUT_16(isp, insrc->in_scclun, &indst->in_scclun); ISP_IOXPUT_32(isp, insrc->in_reserved2, &indst->in_reserved2); ISP_IOXPUT_16(isp, insrc->in_status, &indst->in_status); ISP_IOXPUT_16(isp, insrc->in_task_flags, &indst->in_task_flags); ISP_IOXPUT_16(isp, insrc->in_seqid, &indst->in_seqid);}static INLINE voidisp_get_notify_fc(struct ispsoftc *isp, in_fcentry_t *insrc, in_fcentry_t *indst){ isp_copy_in_hdr(isp, &insrc->in_header, &indst->in_header); ISP_IOXGET_32(isp, &insrc->in_reserved, indst->in_reserved); ISP_IOXGET_8(isp, &insrc->in_lun, indst->in_lun); ISP_IOXGET_8(isp, &insrc->in_iid, indst->in_iid); ISP_IOXGET_16(isp, &insrc->in_scclun, indst->in_scclun); ISP_IOXGET_32(isp, &insrc->in_reserved2, indst->in_reserved2); ISP_IOXGET_16(isp, &insrc->in_status, indst->in_status); ISP_IOXGET_16(isp, &insrc->in_task_flags, indst->in_task_flags); ISP_IOXGET_16(isp, &insrc->in_seqid, indst->in_seqid);}static INLINE voidisp_put_notify_ack(struct ispsoftc *isp, na_entry_t *nasrc, na_entry_t *nadst){ int i; isp_copy_out_hdr(isp, &nasrc->na_header, &nadst->na_header); ISP_IOXPUT_32(isp, nasrc->na_reserved, &nadst->na_reserved); if (ISP_IS_SBUS(isp)) { ISP_IOXPUT_8(isp, nasrc->na_lun, &nadst->na_iid); ISP_IOXPUT_8(isp, nasrc->na_iid, &nadst->na_lun); ISP_IOXPUT_8(isp, nasrc->na_status, &nadst->na_event); ISP_IOXPUT_8(isp, nasrc->na_event, &nadst->na_status); } else { ISP_IOXPUT_8(isp, nasrc->na_lun, &nadst->na_lun); ISP_IOXPUT_8(isp, nasrc->na_iid, &nadst->na_iid); ISP_IOXPUT_8(isp, nasrc->na_status, &nadst->na_status); ISP_IOXPUT_8(isp, nasrc->na_event, &nadst->na_event); } ISP_IOXPUT_32(isp, nasrc->na_flags, &nadst->na_flags); for (i = 0; i < NA_RSVDLEN; i++) { ISP_IOXPUT_16(isp, nasrc->na_reserved3[i], &nadst->na_reserved3[i]); }}static INLINE voidisp_get_notify_ack(struct ispsoftc *isp, na_entry_t *nasrc, na_entry_t *nadst){ int i; isp_copy_in_hdr(isp, &nasrc->na_header, &nadst->na_header); ISP_IOXGET_32(isp, &nasrc->na_reserved, nadst->na_reserved); if (ISP_IS_SBUS(isp)) { ISP_IOXGET_8(isp, &nasrc->na_lun, nadst->na_iid); ISP_IOXGET_8(isp, &nasrc->na_iid, nadst->na_lun); ISP_IOXGET_8(isp, &nasrc->na_status, nadst->na_event); ISP_IOXGET_8(isp, &nasrc->na_event, nadst->na_status); } else { ISP_IOXGET_8(isp, &nasrc->na_lun, nadst->na_lun); ISP_IOXGET_8(isp, &nasrc->na_iid, nadst->na_iid); ISP_IOXGET_8(isp, &nasrc->na_status, nadst->na_status); ISP_IOXGET_8(isp, &nasrc->na_event, nadst->na_event); } ISP_IOXGET_32(isp, &nasrc->na_flags, nadst->na_flags); for (i = 0; i < NA_RSVDLEN; i++) { ISP_IOXGET_16(isp, &nasrc->na_reserved3[i], nadst->na_reserved3[i]); }}static INLINE voidisp_put_notify_ack_fc(struct ispsoftc *isp, na_fcentry_t *nasrc, na_fcentry_t *nadst){ int i; isp_copy_out_hdr(isp, &nasrc->na_header, &nadst->na_header); ISP_IOXPUT_32(isp, nasrc->na_reserved, &nadst->na_reserved); ISP_IOXPUT_8(isp, nasrc->na_lun, &nadst->na_lun); ISP_IOXPUT_8(isp, nasrc->na_iid, &nadst->na_iid); ISP_IOXPUT_16(isp, nasrc->na_scclun, &nadst->na_scclun); ISP_IOXPUT_16(isp, nasrc->na_flags, &nadst->na_flags); ISP_IOXPUT_16(isp, nasrc->na_reserved2, &nadst->na_reserved2); ISP_IOXPUT_16(isp, nasrc->na_status, &nadst->na_status); ISP_IOXPUT_16(isp, nasrc->na_task_flags, &nadst->na_task_flags); ISP_IOXPUT_16(isp, nasrc->na_seqid, &nadst->na_seqid); for (i = 0; i < NA2_RSVDLEN; i++) { ISP_IOXPUT_16(isp, nasrc->na_reserved3[i], &nadst->na_reserved3[i]); }}static INLINE voidisp_get_notify_ack_fc(struct ispsoftc *isp, na_fcentry_t *nasrc, na_fcentry_t *nadst){ int i; isp_copy_in_hdr(isp, &nasrc->na_header, &nadst->na_header); ISP_IOXGET_32(isp, &nasrc->na_reserved, nadst->na_reserved); ISP_IOXGET_8(isp, &nasrc->na_lun, nadst->na_lun); ISP_IOXGET_8(isp, &nasrc->na_iid, nadst->na_iid); ISP_IOXGET_16(isp, &nasrc->na_scclun, nadst->na_scclun); ISP_IOXGET_16(isp, &nasrc->na_flags, nadst->na_flags); ISP_IOXGET_16(isp, &nasrc->na_reserved2, nadst->na_reserved2); ISP_IOXGET_16(isp, &nasrc->na_status, nadst->na_status); ISP_IOXGET_16(isp, &nasrc->na_task_flags, nadst->na_task_flags); ISP_IOXGET_16(isp, &nasrc->na_seqid, nadst->na_seqid); for (i = 0; i < NA2_RSVDLEN; i++) { ISP_IOXGET_16(isp, &nasrc->na_reserved3[i], nadst->na_reserved3[i]); }}#endif#endif /* _ISP_INLINE_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -