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

📄 eribld.c

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