⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 isp_inline.h

📁 这个linux源代码是很全面的~基本完整了~使用c编译的~由于时间问题我没有亲自测试~但就算用来做参考资料也是非常好的
💻 H
📖 第 1 页 / 共 4 页
字号:
		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 + -