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

📄 eribld.c

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 C
📖 第 1 页 / 共 5 页
字号:
            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 + -