Annotation of cci/d/ether/buser.c, revision 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.