📄 eribld.c
字号:
os_std(&elrp->el_body.elmck.elmck_frame.el6400mcf.s_bcsts, OS$gen_long, DD$bcsts1); else { if (((elrp->el_body.elmck.elmck_frame.el6400mcf.s_bcsts & 0x01E00000) == 0x02) || ((elrp->el_body.elmck.elmck_frame.el6400mcf.s_bcsts & 0x01E00000) == 0x0A)) os_std(&elrp->el_body.elmck.elmck_frame.el6400mcf.s_bcsts, OS$gen_long, DD$bcsts0a); else os_std(&elrp->el_body.elmck.elmck_frame.el6400mcf.s_bcsts, OS$gen_long, DD$bcsts0b); } if ((elrp->el_body.elmck.elmck_frame.el6400mcf.s_bcsts & 0x00000001) == 0x01) os_std(&elrp->el_body.elmck.elmck_frame.el6400mcf.s_bcerr, OS$gen_long, DD$bcerr); os_std(&elrp->el_body.elmck.elmck_frame.el6400mcf.s_pcsts, OS$gen_long, DD$pcsts); if ((elrp->el_body.elmck.elmck_frame.el6400mcf.s_pcsts & 0x00000080) == 0x01) os_std(&elrp->el_body.elmck.elmck_frame.el6400mcf.s_pcerr, OS$gen_long, DD$pcerr1); else os_std(&elrp->el_body.elmck.elmck_frame.el6400mcf.s_pcerr, OS$gen_long, DD$pcerr0); os_std(&elrp->el_body.elmck.elmck_frame.el6400mcf.s_vintsr, OS$gen_long, DD$vintsr); break; case ELMCKT_6500: cds_ptr->subtype = DD$6500_MCHECK_CDS; ads_ptr->subtype = DD$6500_INT_ADS; if (ini_seg(cds_ptr) == EI$FAIL) status = EI$FAIL; if (ini_seg(ads_ptr) == EI$FAIL) status = EI$FAIL; os_std(&elrp->el_body.elmck.elmck_frame.el6500mcf.bcnt, OS$gen_long, DD$mcbcnt); os_std(&elrp->el_body.elmck.elmck_frame.el6500mcf.mcode, OS$gen_long, DD$mc_code); os_std(&elrp->el_body.elmck.elmck_frame.el6500mcf.vaddr, OS$gen_long, DD$vaddr); os_std(&elrp->el_body.elmck.elmck_frame.el6500mcf.viba, OS$gen_long, DD$viba); os_std(&elrp->el_body.elmck.elmck_frame.el6500mcf.iccs_sisr, OS$gen_long, DD$6500_iccs_sisr); os_std(&elrp->el_body.elmck.elmck_frame.el6500mcf.istate, OS$gen_long, DD$6500_istate); os_std(&elrp->el_body.elmck.elmck_frame.el6500mcf.sc, OS$gen_long, DD$sc); os_std(&elrp->el_body.elmck.elmck_frame.el6500mcf.pc, OS$gen_long, DD$pc); os_std(&elrp->el_body.elmck.elmck_frame.el6500mcf.psl, OS$gen_long, DD$6500_psl); os_std(&elrp->el_body.elmck.elmck_frame.el6500mcf.s_xbe0, OS$gen_long, DD$xbe0); os_std(&elrp->el_body.elmck.elmck_frame.el6500mcf.s_xfadr0, OS$gen_long, DD$xfadr0); os_std(&elrp->el_body.elmck.elmck_frame.el6500mcf.s_xfaer0, OS$gen_long, DD$xfaer); os_std(&elrp->el_body.elmck.elmck_frame.el6500mcf.s_xbeer0, OS$gen_long, DD$xbeer); os_std(&elrp->el_body.elmck.elmck_frame.el6500mcf.s_wfadr0, OS$gen_long, DD$wfadr0); os_std(&elrp->el_body.elmck.elmck_frame.el6500mcf.s_wfadr1, OS$gen_long, DD$wfadr1); os_std(&elrp->el_body.elmck.elmck_frame.el6500mcf.s_fdal0, OS$gen_long, DD$fdal0); os_std(&elrp->el_body.elmck.elmck_frame.el6500mcf.s_fdal1, OS$gen_long, DD$fdal1); os_std(&elrp->el_body.elmck.elmck_frame.el6500mcf.s_fdal2, OS$gen_long, DD$fdal2); os_std(&elrp->el_body.elmck.elmck_frame.el6500mcf.s_fdal3, OS$gen_long, DD$fdal3); os_std(&elrp->el_body.elmck.elmck_frame.el6500mcf.s_sscbtr, OS$gen_long, DD$6500_sscbtr); os_std(&elrp->el_body.elmck.elmck_frame.el6500mcf.s_bcsts, OS$gen_long, DD$bcsts); os_std(&elrp->el_body.elmck.elmck_frame.el6500mcf.s_bcera, OS$gen_long, DD$bcera); os_std(&elrp->el_body.elmck.elmck_frame.el6500mcf.s_bcert, OS$gen_long, DD$bcert); os_std(&elrp->el_body.elmck.elmck_frame.el6500mcf.s_pcsts, OS$gen_long, DD$6500_pcsts); os_std(&elrp->el_body.elmck.elmck_frame.el6500mcf.s_pcerr, OS$gen_long, DD$pcerr); os_std(&elrp->el_body.elmck.elmck_frame.el6500mcf.s_vintsr, OS$gen_long, DD$6500_vintsr); break; case ELMCKT_9000: cds_ptr->subtype = DD$MCK9000_CDS; if (ini_seg(cds_ptr) == EI$FAIL) status = EI$FAIL;#define AQMCK &elrp->el_body.elmck.elmck_frame.el9000mcf#define AQEBOXMCK &elrp->el_body.elmck.elmck_frame.el9000eboxmcf#define MCK_EBOX 0 if(elrp->el_body.elmck.elmck_frame.el9000mcf.mc_type == MCK_EBOX) { /* MCK from EBOX */ os_std(AQEBOXMCK.mc_length, OS$gen_long, DD$mck9000_length); os_std(AQEBOXMCK.mc_type, OS$gen_long, DD$mck9000_type); os_std(AQEBOXMCK.mc_pc, OS$gen_long, DD$mck9000_pc); os_std(AQEBOXMCK.mc_psl, OS$gen_long, DD$psl); } else { /* MCK from SPU */ os_std(AQMCK.mc_length, OS$gen_long, DD$mck9000_length); os_std(AQMCK.mc_type, OS$gen_long, DD$mck9000_type); os_std(AQMCK.mc_pc, OS$gen_long, DD$mck9000_pc); os_std(AQMCK.mc_psl, OS$gen_long, DD$psl); os_std(AQMCK.mc_id, OS$gen_long, DD$mck9000_id); os_std(AQMCK.mc_err_summ, OS$gen_long, DD$mck9000_err_summ); os_std(AQMCK.mc_sys_summ, OS$gen_long, DD$mck9000_sys_summ); os_std(AQMCK.mc_vaddr, OS$gen_long, DD$mck9000_vaddr); os_std(AQMCK.mc_paddr, OS$gen_long, DD$mck9000_paddr); os_std(AQMCK.mc_misc_info, OS$gen_long, DD$mck9000_misc_info); os_std(AQMCK.mc_vpsr, OS$gen_long, DD$vec_vpsr); } break; case ELMCKT_9000SPU: status = v9000_bld_spumck(eis_ptr,dis_ptr,cds_ptr,sds_ptr,ads_ptr,sis_ptr,elrp); break; default: unk_rec = TRUE; break; } break;/*************** 101 ELCT_MEM (Memory Errors) ******************/ case ELCT_MEM : ads_ptr->subtype = DD$MEM_ADS; if (ini_seg(ads_ptr) == EI$FAIL) status = EI$FAIL; os_std(&elrp->elsubid.subid_class, OS$memerr, DD$devclass); os_std(&elrp->elsubid.subid_ctldevtyp, OS$memory_type, DD$devtype); if( elrp->elsubid.subid_ctldevtyp != ELMCNTR_9000_SE && elrp->elsubid.subid_ctldevtyp != ELMCNTR_9000_HE && elrp->elsubid.subid_ctldevtyp != ELMCNTR_XMA2 && elrp->elsubid.subid_ctldevtyp != ELMCNTR_6200 ) { os_std(&elrp->el_body.elmem.elmemerr.type, OS$memsyn, DD$coarsesyndrome); os_std(&elrp->el_body.elmem.elmemerr.cntl, OS$gen_short, DD$ctrlr); os_std(&elrp->el_body.elmem.elmemerr.numerr, OS$gen_tiny, DD$errcnt); } switch(elrp->elsubid.subid_ctldevtyp) { case ELMCNTR_780C: cds_ptr->subtype = DD$MEMC78_CDS; if (ini_seg(cds_ptr) == EI$FAIL) status = EI$FAIL; os_std(&elrp->el_body.elmem.elmemerr.regs[0], OS$gen_long, DD$m8cmera); os_std(&elrp->el_body.elmem.elmemerr.regs[1], OS$gen_long, DD$m8cmerb); os_std(&elrp->el_body.elmem.elmemerr.regs[2], OS$gen_long, DD$m8cmerc); break; case ELMCNTR_780E: cds_ptr->subtype = DD$MEME78_CDS; if (ini_seg(cds_ptr) == EI$FAIL) status = EI$FAIL; os_std(&elrp->el_body.elmem.elmemerr.regs[0], OS$gen_long, DD$memer0); os_std(&elrp->el_body.elmem.elmemerr.regs[1], OS$gen_long, DD$memer1); os_std(&elrp->el_body.elmem.elmemerr.regs[2], OS$gen_long, DD$memer2); os_std(&elrp->el_body.elmem.elmemerr.regs[3], OS$gen_long, DD$memer3); break; case ELMCNTR_750: case ELMCNTR_730: cds_ptr->subtype = DD$MEM750_CDS; if (ini_seg(cds_ptr) == EI$FAIL) status = EI$FAIL; os_std(&elrp->el_body.elmem.elmemerr.regs[0], OS$gen_long, DD$m5mer0); os_std(&elrp->el_body.elmem.elmemerr.regs[1], OS$gen_long, DD$m5mer1); os_std(&elrp->el_body.elmem.elmemerr.regs[2], OS$gen_long, DD$m5mer2); break; case ELMCNTR_8600: cds_ptr->subtype = DD$MEM860_CDS; if (ini_seg(cds_ptr) == EI$FAIL) status = EI$FAIL; os_std(&elrp->el_body.elmem.elmemerr.regs[0], OS$gen_long, DD$m86mdecc); os_std(&elrp->el_body.elmem.elmemerr.regs[1], OS$gen_long, DD$m86mear); os_std(&elrp->el_body.elmem.elmemerr.regs[2], OS$gen_long, DD$m86ms1); os_std(&elrp->el_body.elmem.elmemerr.regs[3], OS$gen_long, DD$m86ms2); break; case ELMCNTR_BI: /* 8200 memory controller */ cds_ptr->subtype = DD$MEM820_CDS; if (ini_seg(cds_ptr) == EI$FAIL) status = EI$FAIL; os_std(&elrp->el_body.elmem.elmemerr.regs[0], OS$gen_long, DD$m82csr0); os_std(&elrp->el_body.elmem.elmemerr.regs[1], OS$gen_long, DD$m82csr1); break; case ELMCNTR_NMI: /* 8800 memory controller */ cds_ptr->subtype = DD$MEM880_CDS; if (ini_seg(cds_ptr) == EI$FAIL) status = EI$FAIL; os_std(&elrp->el_body.elmem.elmemerr.regs[0], OS$gen_long, DD$m88csr0); os_std(&elrp->el_body.elmem.elmemerr.regs[1], OS$gen_long, DD$m88csr1); os_std(&elrp->el_body.elmem.elmemerr.regs[2], OS$gen_long, DD$m88csr2); os_std(&elrp->el_body.elmem.elmemerr.regs[3], OS$gen_long, DD$m88csr3); break; case ELMCNTR_630: case ELMCNTR_VAXSTAR: cds_ptr->subtype = DD$MEMUVAX2_CDS; if (ini_seg(cds_ptr) == EI$FAIL) status = EI$FAIL; os_std(&elrp->el_body.elmem.elmemerr.regs[0], OS$gen_long, DD$mvaxmser); os_std(&elrp->el_body.elmem.elmemerr.regs[1], OS$gen_long, DD$mvaxcaer); os_std(&elrp->el_body.elmem.elmemerr.regs[2], OS$gen_long, DD$mvaxdaer); break; case ELMCNTR_420 : cds_ptr->subtype = DD$650ESR_CDS; if (ini_seg(cds_ptr) == EI$FAIL) status = EI$FAIL; os_std(&elrp->el_body.elmem.elmemerr.regs[0], OS$gen_long, DD$esr650_cacr); os_std(&elrp->el_body.elmem.elmemerr.regs[1], OS$gen_long, DD$esr650_cadr); os_std(&elrp->el_body.elmem.elmemerr.regs[2], OS$gen_long, DD$esr650_mser); os_std(&elrp->el_body.elmem.elmemerr.regs[3], OS$gen_long, DD$mc1pap); break; case ELMCNTR_650 : case ELMCNTR_5400: cds_ptr->subtype = DD$MEMCVAX_CDS; if (ini_seg(cds_ptr) == EI$FAIL) status = EI$FAIL; if ((elrp->el_body.elmem.elmemerr.regs[0] & 0x20000000) != 0) os_std(&elrp->el_body.elmem.elmemerr.regs[0], /* bit 29 */ OS$gen_long, DD$memcsr16a); else if ((elrp->el_body.elmem.elmemerr.regs[0] & 0xC0000000) != 0) os_std(&elrp->el_body.elmem.elmemerr.regs[0], /* bit 31:30 */ OS$gen_long, DD$memcsr16b); else if ((elrp->el_body.elmem.elmemerr.regs[0] & 0x00000080) != 0) os_std(&elrp->el_body.elmem.elmemerr.regs[0], /* bit 7 */ OS$gen_long, DD$memcsr16c); else if ((elrp->el_body.elmem.elmemerr.regs[0] & 0x20000000) != 0) os_std(&elrp->el_body.elmem.elmemerr.regs[0], /* others */ OS$gen_long, DD$memcsr16d); os_std(&elrp->el_body.elmem.elmemerr.regs[1], OS$gen_long, DD$memcsr17); if ((elrp->el_body.elmem.elmemerr.regs[0] & 0xE0000080) != 0) { /* bits 31:29, 7 */ os_std(&elrp->el_body.elmem.elmemerr.regs[2], OS$gen_long, DD$memcsrn); os_std(&elrp->el_body.elmem.elmemerr.regs[3], OS$gen_long, DD$memcon); } break; case ELMCNTR_60 : cds_ptr->subtype = DD$60_CDS; if (ini_seg(cds_ptr) == EI$FAIL) status = EI$FAIL; os_std(&elrp->el_body.elmem.elmemerr.regs[0], OS$gen_long, DD$ff_eccaddr0); os_std(&elrp->el_body.elmem.elmemerr.regs[1], OS$gen_long, DD$ff_eccaddr1); os_std(&elrp->el_body.elmem.elmemerr.regs[2], OS$gen_long, DD$ff_eccsynd0); os_std(&elrp->el_body.elmem.elmemerr.regs[3], OS$gen_long, DD$ff_eccsynd1); break; case ELMCNTR_6200: case ELMCNTR_5800: cds_ptr->subtype = DD$XBI_XMA_CDS; sds_ptr->subtype = DD$XMA_SDS; ads_ptr->subtype = DD$XMA_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.el_xma.xma_node, OS$gen_long, DD$xnode); os_std(&elrp->el_body.el_xma.xma_dtype, OS$gen_long, DD$xdev); os_std(&elrp->el_body.el_xma.xma_xbe, OS$gen_long, DD$xbe); os_std(&elrp->el_body.el_xma.xma_seadr, OS$gen_long, DD$seadr); os_std(&elrp->el_body.el_xma.xma_mctl1, OS$gen_long, DD$mctl1); os_std(&elrp->el_body.el_xma.xma_mecer, OS$gen_long, DD$mecer); os_std(&elrp->el_body.el_xma.xma_mecea, OS$gen_long, DD$mecea); os_std(&elrp->el_body.el_xma.xma_mctl2, OS$gen_long, DD$mctl2); break; case ELMCNTR_KN02BA: cds_ptr->subtype = DD$MEM_KN02BA_CDS; if (ini_seg(cds_ptr) == EI$FAIL) status = EI$FAIL; if (elrp->el_body.elmem.elmemerr.regs[0]>>28 & 0x1) os_std(&elrp->el_body.elmem.elmemerr.regs[0], OS$gen_long, DD$kn02ba_mreg2); else os_std(&elrp->el_body.elmem.elmemerr.regs[0], OS$gen_long, DD$kn02ba_mreg1); 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); break; case ELMCNTR_5100: case ELMCNTR_PMAX: cds_ptr->subtype = DD$PMAX_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$pmax_mreg); 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); break; case ELMCNTR_kn02: cds_ptr->subtype = DD$MAX_ESR_CDS; if (ini_seg(cds_ptr) == EI$FAIL) status = EI$FAIL; os_std(&elrp->el_body.elmem.elmemerr.regs[1], OS$gen_long, DD$kn02csr); tmp1_long = elrp->el_body.elmem.elmemerr.regs[2]; tmp1_long &= 0x07ffffff; tmp1_long = (tmp1_long << 2); temp_long = elrp->el_body.elmem.elmemerr.regs[2]; temp_long &= 0x80000000;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -