Annotation of cci/d/ether/buser.c, revision 1.1.1.1

1.1       root        1: 
                      2: /*     mem.h   4.9     81/04/03        */
                      3: /*     Tahoe version   Dec 1982        */
                      4: 
                      5: /*
                      6:  * Memory controller registers
                      7:  *
                      8:  */
                      9: 
                     10: 
                     11: /*
                     12:  * Some bits definition for MCR
                     13:  */
                     14: 
                     15: #define        EED     0x01            /* Enable error detection */
                     16: #define        EEC     0x02            /* Enable error correction */
                     17: #define        WMD     0x04            /* Write memory diagnostic */
                     18: #define        RMD     0x08            /* Read memory diagnostic */
                     19: #define        INT     0x20            /* Init = power on bit */
                     20: #define        CEC     0x40            /* Clear error count */
                     21: #define        CME     0x80            /* Clear memory error */
                     22: #define        CMEC    0xff00          /* Corrected memory error count (mask) */
                     23: 
                     24: /*
                     25:  * MER bits
                     26:  */
                     27: 
                     28: #define        ERRCD   0x07            /* Error code (mask) */
                     29: #define    APE 1       /* Address parity error */
                     30: #define    DPE 2       /* Data parity error */
                     31: #define    DCE 3       /* Data check error */
                     32: #define    VTO 4       /* Versabus timeout */
                     33: #define    VBE 5       /* Versabus error */
                     34: #define    NEM 6       /* Non-existent memory */
                     35: 
                     36: #define        AXE     0x08            /* Adapter external error */
                     37: #define        ERM     0x10            /* Error master (0=CPU, 1=Versabus) */
                     38: #define        IVV     0x100           /* Illegal Versabus vector */
                     39: 
                     40: /*
                     41:  * MCBR bits
                     42:  */
                     43: 
                     44: #define        MCBR    0xffff0000
                     45: #define        MEAR    0xffff0000
                     46: 
                     47: /*
                     48:  * Frame for bus error
                     49:  */
                     50: struct buserframe {
                     51:        int     which_bus;              /* primary or secondary */
                     52:        int     memerreg;               /* memory error register */
                     53:        int     trp_pc;                 /* trapped pc */
                     54:        int     trp_psl;                /* trapped psl */
                     55: };
                     56: 
                     57: extern long IOinit;
                     58: 
                     59: buserror(busef)
                     60: long *busef;
                     61: {
                     62:        register struct buserframe *frameptr;
                     63:        register long   hardreg;
                     64: 
                     65:        if (IOinit) return;
                     66:        frameptr = (struct buserframe *)busef;
                     67:        writes("\nbus error at address : "); writeh(frameptr->trp_pc);
                     68:        writes(",  PSL : "); writeh(frameptr->trp_psl);
                     69:        hardreg =  frameptr->memerreg;
                     70: 
                     71:        writes("\nMEAR = "); writeh(((hardreg&MEAR)>>16)&0xffff);
                     72:        switch (hardreg & ERRCD){
                     73:                case (APE):     writes("\tAddress parity error !! \n");
                     74:                                break;
                     75:                case (DPE):     writes("\tData parity error.\n");
                     76:                                break;
                     77:                case (DCE):     writes("\tData check error.\n");
                     78:                                break;
                     79:                case (VTO):     writes("\tVersabus timeout.\n");
                     80:                                break;
                     81:                case (VBE):     writes("\tVersabus error !! \n");
                     82:                                break;
                     83:                case (NEM):     writes("\tNon existent memory.\n");
                     84:                                break;
                     85:                default:        writes("\tUnknown error code : ");
                     86:                                        writeh(hardreg&ERRCD);
                     87:        }
                     88:        if (hardreg&AXE) writes("\tAdapter external error\n");
                     89:        writes ("\tError master : ");
                     90:        if (hardreg&ERM) writes("Versabus\n");
                     91:                else writes ("Tahoe\n");
                     92:        if (hardreg&IVV) writes("\tIllegal interrupt vector\n");
                     93: 
                     94:        hardreg = frameptr->which_bus;
                     95:        writes("\nMCBR = "); writeh(((hardreg&0x1fff)>>16)&0xffff);
                     96:        writes("\tVersabus type : "); writeh(hardreg&0xffff); writec('\n');
                     97: }
                     98: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.