📄 eribld.c
字号:
if (temp_long == 0x80000000) { os_std(&tmp1_long, OS$gen_long, DD$erradr); os_std(&elrp->el_body.elmem.elmemerr.regs[2], OS$gen_long, DD$error_adr); } os_std(&elrp->el_body.elmem.elmemerr.regs[3], OS$gen_long, DD$chksyn);/* temp_long = elrp->el_body.elesr.elesr.el_esrkn02.esr_epc;*/ temp_long = elrp->el_body.elmem.elmemerr.regs[0]; temp_long &= 0x80000000; if (temp_long == 0x80000000) os_std(&elrp->el_body.elmem.elmemerr.regs[0], OS$gen_long, DD$pmax_epc); break; case ELMCNTR_5500: cds_ptr->subtype = DD$MIPSFAIR2_MEM_CDS; if (ini_seg(cds_ptr) == EI$FAIL) status = EI$FAIL; os_std(&elrp->el_body.elmem.elmemerr.regs[0], OS$gen_long, DD$mf2_mesr); os_std(&elrp->el_body.elmem.elmemerr.regs[1], OS$gen_long, DD$pmax_paddr); os_std(&elrp->el_body.elmem.elmemerr.regs[2], OS$gen_long, DD$pmax_epc); os_std(&elrp->el_body.elmem.elmemerr.regs[3], OS$gen_long, DD$badva); if (elrp->el_body.elmem.elmemerr.regs[4] > 0 & elrp->el_body.elmem.elmemerr.regs[4] < 5) os_std(&elrp->el_body.elmem.elmemerr.regs[4], OS$gen_long, DD$board_num); break; case ELMCNTR_XMA2: cds_ptr->subtype = DD$XMA2_CDS; if (ini_seg(cds_ptr) == EI$FAIL) status = EI$FAIL; os_std(&elrp->el_body.el_xma2.xma_node, OS$gen_long, DD$xnode); os_std(&elrp->el_body.el_xma2.xma_dtype, OS$gen_long, DD$dtype); os_std(&elrp->el_body.el_xma2.xma_xbe, OS$gen_long, DD$xbe0); os_std(&elrp->el_body.el_xma2.xma_seadr, OS$gen_long, DD$seadr); os_std(&elrp->el_body.el_xma2.xma_mctl1, OS$gen_long, DD$6500_mctl1); os_std(&elrp->el_body.el_xma2.xma_mecer, OS$gen_long, DD$mecer); os_std(&elrp->el_body.el_xma2.xma_mecea, OS$gen_long, DD$mecea); os_std(&elrp->el_body.el_xma2.xma_mctl2, OS$gen_long, DD$mctl2); os_std(&elrp->el_body.el_xma2.xma_becer, OS$gen_long, DD$becer); os_std(&elrp->el_body.el_xma2.xma_becea, OS$gen_long, DD$becea); os_std(&elrp->el_body.el_xma2.xma_stadr, OS$gen_long, DD$stadr); os_std(&elrp->el_body.el_xma2.xma_enadr, OS$gen_long, DD$enadr); os_std(&elrp->el_body.el_xma2.xma_intlv, OS$gen_long, DD$intlv); os_std(&elrp->el_body.el_xma2.xma_mctl3, OS$gen_long, DD$mctl3); os_std(&elrp->el_body.el_xma2.xma_mctl4, OS$gen_long, DD$6500_mctl4); os_std(&elrp->el_body.el_xma2.xma_bsctl, OS$gen_long, DD$bsctl); os_std(&elrp->el_body.el_xma2.xma_bsadr, OS$gen_long, DD$bsadr); os_std(&elrp->el_body.el_xma2.xma_eectl, OS$gen_long, DD$eectl); os_std(&elrp->el_body.el_xma2.xma_tmoer, OS$gen_long, DD$tmoer); break; case ELMCNTR_9000_SE: case ELMCNTR_9000_HE: status = v9000_bld_mem(eis_ptr,dis_ptr,cds_ptr,sds_ptr,ads_ptr,sis_ptr,elrp); break; default: unk_rec = TRUE; break; } break; /*************** 102 ELCT_DISK (Disk Errors) *******************/ case ELCT_DISK: sis_ptr->subtype = DD$SUM_DISK_SIS; if (ini_seg(sis_ptr) == EI$FAIL) status = EI$FAIL; os_std(&elrp->elsubid.subid_num, OS$gen_short, DD$controller); os_std(&elrp->elsubid.subid_unitnum, OS$gen_short, DD$unitnumber); os_std(&elrp->elsubid.subid_unitnum, OS$gen_short, DD$sum_unum); switch(elrp->elsubid.subid_type) { case ELDEV_MSCP: sds_ptr->subtype = DD$DSK_COM_SDS; if (ini_seg(sds_ptr) == EI$FAIL) status = EI$FAIL; os_std(&elrp->elsubid.subid_ctldevtyp, OS$dsdisk, DD$devclass); os_std(&elrp->elsubid.subid_ctldevtyp, OS$dsdtyp, DD$devtype); os_std(&elrp->elsubid.subid_ctldevtyp, OS$sum_dev_d, DD$sum_dev); os_std(&elrp->elsubid.subid_ctldevtyp, OS$sum_dev_ddpre, DD$sum_dev_pre); if (mscp_bld(eis_ptr,dis_ptr,cds_ptr,sds_ptr,ads_ptr, elrp) == EI$FAIL) status = EI$FAIL; os_std(&elrp->U_MSCP.mslg_unit, OS$gen_short, DD$dsaunit); os_std(&elrp->U_MSCP.mslg_event, OS$gen_short, DD$dsastat); os_std(&elrp->U_MSCP.mslg_event, OS$gen_short, DD$sum_event); os_std(((DD$BYTE *) &elrp->U_MSCP.mslg_unit_id[1])+2, OS$gen_short, DD$unitid2); break; case ELDEV_SCSI: os_std(&elrp->elsubid.subid_ctldevtyp, OS$scdtyp, DD$devclass); os_std(&elrp->elsubid.subid_ctldevtyp, OS$scdisk, DD$devtype); os_std(&elrp->elsubid.subid_ctldevtyp, OS$sum_dev_dz, DD$sum_dev); os_std(&elrp->elsubid.subid_ctldevtyp, OS$sum_dev_dzpre, DD$sum_dev_pre); if (scsi_bld(eis_ptr,dis_ptr,cds_ptr,sds_ptr,ads_ptr,elrp) == EI$FAIL) status = EI$FAIL; break; default: unk_rec = TRUE; break; } break; /*************** 103 ELCT_TAPE (Tape Errors) *******************/ case ELCT_TAPE: sis_ptr->subtype = DD$SUM_DISK_SIS; if (ini_seg(sis_ptr) == EI$FAIL) status = EI$FAIL; os_std(&elrp->elsubid.subid_num, OS$gen_short, DD$controller); os_std(&elrp->elsubid.subid_unitnum, OS$gen_short, DD$unitnumber); os_std(&elrp->elsubid.subid_unitnum, OS$gen_short, DD$sum_unum); switch(elrp->elsubid.subid_type) { case ELDEV_MSCP: sds_ptr->subtype = DD$STI_COM_SDS; if (ini_seg(sds_ptr) == EI$FAIL) status = EI$FAIL; os_std(&elrp->elsubid.subid_ctldevtyp, OS$dstape, DD$devclass); os_std(&elrp->elsubid.subid_ctldevtyp, OS$dsttyp, DD$devtype); os_std(&elrp->elsubid.subid_ctldevtyp, OS$sum_dev_t, DD$sum_dev); os_std(&elrp->elsubid.subid_ctldevtyp, OS$sum_dev_tpre, DD$sum_dev_pre); if (mscp_bld(eis_ptr,dis_ptr,cds_ptr,sds_ptr,ads_ptr, elrp) == EI$FAIL) status = EI$FAIL; os_std(&elrp->U_MSCP.mslg_event, OS$gen_short, DD$sum_event); switch (elrp->elsubid.subid_ctldevtyp) { case ELTT_TA78: case ELTT_TA81: case ELTT_TA90: case ELTT_TA91: if (elrp->U_MSCP.mslg_format == 0x0b) os_std(&elrp->U_MSCP.mslg_event, OS$gen_short, DD$fm_b_stat); else os_std(&elrp->U_MSCP.mslg_event, OS$gen_short, DD$ta_dsastat); break; case ELTT_TK50: case ELTT_TK70: os_std(&elrp->U_MSCP.mslg_event, OS$gen_short, DD$tk_dsastat); break; case ELTT_TU81: os_std(&elrp->U_MSCP.mslg_event, OS$gen_short, DD$tu_dsastat); break; case ELTT_TRV20: os_std(&elrp->U_MSCP.mslg_event, OS$gen_short, DD$rv_dsastat); break; } os_std(&elrp->U_MSCP.mslg_unit, OS$gen_short, DD$dsaunit); os_std(((DD$BYTE *) &elrp->U_MSCP.mslg_unit_id[1])+2, OS$gen_short, DD$tp_unitid2); break; case ELDEV_SCSI: os_std(&elrp->elsubid.subid_ctldevtyp, OS$scttyp, DD$devclass); os_std(&elrp->elsubid.subid_ctldevtyp, OS$sctape, DD$devtype); os_std(&elrp->elsubid.subid_ctldevtyp, OS$sum_dev_tz, DD$sum_dev); os_std(&elrp->elsubid.subid_ctldevtyp, OS$sum_dev_tpre, DD$sum_dev_pre); if (scsi_bld(eis_ptr,dis_ptr,cds_ptr,sds_ptr,ads_ptr,elrp) == EI$FAIL) status = EI$FAIL; break; default: unk_rec = TRUE; break; } break; /*************** 104 ELCT_DCNTL (Controller Errors) ************/ case ELCT_DCNTL: os_std(&elrp->elsubid.subid_class, OS$adaperr, DD$devclass); os_std(&elrp->elsubid.subid_type, OS$ctlsyn, DD$coarsesyndrome); switch (elrp->elsubid.subid_type) { case ELMSCP_CNTRL: case ELTMSCP_CNTRL: os_std(&elrp->elsubid.subid_num, OS$gen_short, DD$controller); os_std(&elrp->elsubid.subid_unitnum, OS$gen_short, DD$unitnumber); os_std(&elrp->elsubid.subid_ctldevtyp, OS$mscp_ctltyp, DD$devtype); sds_ptr->subtype = DD$DSK_COM_SDS; if (ini_seg(sds_ptr) == EI$FAIL) status = EI$FAIL; if (mscp_bld(eis_ptr,dis_ptr,cds_ptr,sds_ptr,ads_ptr, elrp) == EI$FAIL) status = EI$FAIL; os_std(&elrp->U_MSCP.mslg_event, OS$gen_short, DD$dsastat); break;/*********************** SCSI CONTROLLER ERRORS *******************/ case ELSCSI_CNTRL: if (scsi_bld(eis_ptr,dis_ptr,cds_ptr,sds_ptr,ads_ptr,elrp) == EI$FAIL) status = EI$FAIL; break;/*********************** BVP CONTROLLER ERRORS *******************/ case ELBI_BVP: os_std(&elrp->elsubid.subid_num, OS$gen_short, DD$controller); os_std(&elrp->elsubid.subid_unitnum, OS$gen_short, DD$unitnumber); os_std(&elrp->elsubid.subid_ctldevtyp, OS$bvptyp, DD$devtype); switch (elrp->elsubid.subid_ctldevtyp) { case ELBVP_ACP: case ELBVP_SHDWFAX: cds_ptr->subtype = DD$LYNX_ACP_CDS; sds_ptr->subtype = DD$LYNX_ACP_SDS; ads_ptr->subtype = DD$LYNX_ACP_ADS; if (ini_seg(cds_ptr) == EI$FAIL) status = EI$FAIL; if (ini_seg(sds_ptr) == EI$FAIL) status = EI$FAIL; if (ini_seg(ads_ptr) == EI$FAIL) status = EI$FAIL; os_std(&elrp->el_body.ellxerr.bi_csr, OS$gen_long, DD$bicsr); os_std(&elrp->el_body.ellxerr.bi_buserr, OS$gen_long, DD$bibuserreg); os_std(&elrp->el_body.ellxerr.port_error, OS$gen_long, DD$bvperr); os_std(&elrp->el_body.ellxerr.port_data, OS$gen_long, DD$port_data); os_std(&elrp->el_body.ellxerr.ACP_status, OS$gen_long, DD$lx_acp_stat); os_std(&elrp->el_body.ellxerr.test_num, OS$gen_long, DD$lx_errtst); os_std(&elrp->el_body.ellxerr.subtest_num, OS$gen_long, DD$lx_errsubtst); os_std(elrp->el_body.ellxerr.error_name, OS$gen_long, DD$lx_errname); os_std(&elrp->el_body.ellxerr.PR_byte1, OS$gen_long, DD$lx_pr1); os_std(&elrp->el_body.ellxerr.PR_byte2, OS$gen_long, DD$lx_pr2); os_std(&elrp->el_body.ellxerr.PR_config, OS$gen_long, DD$lx_prconf); os_std(&elrp->el_body.ellxerr.PR_rev, OS$gen_long, DD$lx_prrev); break; default: sds_ptr->subtype = DD$BVP_SDS; if (ini_seg(sds_ptr) == EI$FAIL) status = EI$FAIL; os_std(&elrp->el_body.elbvp.bvp_biic_typ, OS$gen_long, DD$bidevreg); os_std(&elrp->el_body.elbvp.bvp_biic_csr, OS$gen_long, DD$bicsr); os_std(&elrp->el_body.elbvp.bvp_pcntl, OS$gen_long, DD$bvpcntl); switch (elrp->el_body.elbvp.bvp_pstatus) { case 1: case 3: case 4: cds_ptr->subtype = DD$BVP_BIER_CDS; if (ini_seg(cds_ptr) == EI$FAIL) status = EI$FAIL; os_std(&elrp->el_body.elbvp.bvp_pstatus, OS$gen_long, DD$bvpsts); os_std(&elrp->el_body.elbvp.bvp_perr, OS$gen_long, DD$bibuserreg); os_std(&elrp->el_body.elbvp.bvp_pdata, OS$gen_long, DD$biaddr); break; default: cds_ptr->subtype = DD$BVP_GEN_CDS; if (ini_seg(cds_ptr) == EI$FAIL) status = EI$FAIL; os_std(&elrp->el_body.elbvp.bvp_pstatus, OS$gen_long, DD$bvpsts); os_std(&elrp->el_body.elbvp.bvp_perr, OS$gen_long, DD$bvperr); os_std(&elrp->el_body.elbvp.bvp_pdata, OS$gen_long, DD$port_data); break; } break; } break;/************************* CI CONTROLLER ERRORS ******************/ case ELCI_ATTN: cds_ptr->subtype = DD$CI_GEN_CDS; if (ini_seg(cds_ptr) == EI$FAIL) status = EI$FAIL; sds_ptr->subtype = DD$CI_DATTN_SDS; if (ini_seg(sds_ptr) == EI$FAIL) status = EI$FAIL; ads_ptr->subtype = DD$CI_DATTN_ADS;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -